Java
July 26, 1999
One
plug-in
that was actually integrated into the browsers
almost as soon as it was released, was
Java from Sun Microsystems.
Java was a programming
language that could be used by
anyone to code add on features that would be executed
within the context of the
browser.
The browsers added Java
Virtual Machines to interpret the Java code downloaded from web
servers.
In fact, the browser became a sort've worldwide desktop upon
which application developers could distribute their own full
featured applications with high performance scaleable widgets
such as trees, grids, tables, image buttons, etc.... Consider
the following screen shot of an embedded applet that looks to be
a fancy looking
HTML
page but which is much, much more.
Java was originally developed at Sun Microsystems in 1991 to
provide a platform-independent programming language and
operating system for consumer electronics (TV sets, toasters and
VCRs).
In syntax and execution, Java is a lot like a simplified version of
C++. ("simplified" should be read in the previous sentence as "an
improved"). It is a highly robust, distributed, high performance,
object-oriented, multi-threaded language with all of the usual
features. As such, it builds upon years of C++ development, taking
the good and dispensing with the bad.
As it so happened however, Java did not make it into the
consumer electronics market. Instead it wound up in our web
browsers.
Java seemed to be a perfect fit for the web. The language itself
was extremely small (as it was built to go inside toasters and
alarm clocks with tiny amounts of memory). Thus it could quickly
be transferred over the web.
Further, Java was platform independent. That is, any computer
with a Java virtual machine can run a Java program. Programs
can be written anywhere and be run anywhere. This is crucial
because if a language can not run on any machine, it cannot be
used on the web that must service every machine, language, and
environment imaginable.
Platform independence works because Java is an interpreted
rather than a compiled language. Unlike C or C++ code, when
Java is compiled, it is not compiled into platform specific
machine code, but into platform independent byte code. This
byte code is distributed over the web and interpreted by a
virtual machine (typically built right into a web browser these
days) on whichever platform it is being run.
Thus, as a programmer, you need only concern yourself with the
generic Java programming language and compile your
applications into bytecode on whatever system you are using. You
can then be assured that your bytecode will be executed correctly
whether your clients are using Macs, PCs, Unix boxes or anything
else.
What's more, Java was a full-featured programming language
complete with a more complete collection of user interface
widgets in its
AWT
library, networking capabilities,
database
connectivity, internationalization features, and much, much more.
Though Java was sadly reduced to tickers and bouncing balls for
the first few years of its life, by now, many high quality,
production applications have been completed and are running
happily with Java served through web pages.
|
NOTE: To a certain degree, I also like to think of
client-side
Active-X components as plug-ins. Active-X technology allows
web browsers on Microsoft systems to leverage the vast resource
of Windows.
Like Java applets, Active-X components can be instantiated
within the context of the web browser itself making it appear
that the web browser is providing the functionality when in fact
the Active-X component is simply piggy-backing off the browser.
Since any COM object in Windows can be an
Active-X control, almost every Windows resource can thus
be embedded in the browser window. Controls can be as simple
as a custom stock ticker or as complex as an application like
Microsoft Excel.
Consider the following screen shot of an Excel spreadsheet
embedded directly into Windows Internet Explorer.
Of course, beware that Active-X is a Microsoft-specific
technology so it may not ever work on Netscape or on Macintosh.
|
Extending the Browser with Plug-ins
Introduction to the Web Application Development Environment (Tools)
Exposing the Browser API with Client-side Scripting
|