As the Java community gears up for the JavaOne conference in San
Francisco next month, Brian Clegg gets behind the hype and
reassesses the computing phenomenon
Java is now in its sixth year, and developers from around the
world are descending on San Francisco for this year's JavaOne
conference to hear where the platform is going.
Java is rarely out of the news, but it can be difficult to pin
down the technology. Java 2's three families - Enterprise, Standard
and Micro - encompass server, desktop and small devices. And, while
Java is no longer in the running for standardisation, Sun aims to
keep its development open on its own terms - while continuing its
lawsuit with Microsoft.
Earlier this year Sun unveiled its latest version of the Java 2
platform, opening another chapter in the "write once, run anywhere"
story of cross-platform software development.
Originally designed by Sun Microsystems to run on a competitor
to the Apple Newton, Java was sidelined to a set-top box when
Newton failed. This venture also collapsed, but Java was reborn in
1995 as a vehicle for developing Web applications.
Portability
Java is a conventional programming language owing a lot to C++.
Designed for portability, Java runs in a "virtual machine",
isolating it from the computer. This makes it possible for a Java
application to run on different hardware and operating systems
without modifying the code. Such distancing from the hardware
minimises the chances that rogue code will cause damage -
accidentally, or intentionally.
Getting a clear picture of the Java world is confused by Sun's
liberal sprinkling of the name over a host of related products. The
classic desktop environment is Java 2 Standard Edition (J2SE). This
differs from Java 1 in having more bundled features, such as the
Java foundation graphics classes, and a Corba2-compliant object
broker.
There are also enhancements to the security model to give
greater flexibility. A Java 1 applet is bluntly prevented from
accessing files on the hard disc. In Java 2, certificates are used
to give authority, down to specified actions for individual
files.
J2SE is not a product, but a specification and a compatibility
suite. Real-world products are the virtual machines and development
kits, such as Sun's recently launched Java Development Kit version
1.3. The more compact Java 2 Micro Edition is being developed for
handheld devices from phones to palmtops.
And then there's Enterprise Edition - J2EE. This sits on top of
a conventional Java virtual machine, adding the functionality of a
Web application server. Like the desktop model, J2EE is a
specification, not a product - a potential competitive advantage.
Where other servers are available from a single supplier, J2EE will
be used by a range of manufacturers from the Sun/Netscape venture
iPlanet to IBM.
Yet another recipient of the Java label is Java Beans. As Sun's
Dave Pennington points out, this branding is downright confusing.
"We have Java Beans and Enterprise Java Beans. The only connection
between the two is they both have 'Java Beans' in their name."
Java Beans is, like Microsoft's ActiveX, a mechanism for
providing packaged components that can be deployed at runtime to
perform a local task. Enterprise Java Beans is a totally different,
server-side component model. It is part of J2EE and includes
technology for handling XML, directory services and dynamic Web
pages.
Church and state
Sun portrays its relationship with Java as "church and state" -
the church is Java as platform, the state is Sun's commercial
products.
Several attempts have been made to give the platform a
standards-based status. Unfortunately, it is difficult to marry the
practical world and standards bodies - a C++ standard, for example,
has existed for more than 10 years, but no products yet match
it.
After an uncomfortable time with the ISO, Sun attempted to
establish Java as a standard through the European Computer
Manufacturers' Association. However, this too stalled.
Blaming slow bureaucracy and the influence of the Microsoft, Sun
devised its own form of standardisation - community sourcing. This
makes Java source available to whoever wants it, with two provisos:
there is enforced compatibility of core software, and proprietary
extensions are allowed, provided they don't interfere with core
compatibility.
Acting as a pseudo-standards body, Sun provides the Java
Community Process, allowing anyone to submit an enhancement to
Java. It may not be true standardisation, and has irritated rivals,
but at least it lacks the inertia of a traditional approach.
The difficulty of Sun's balancing act has been highlighted by
the company's lengthy lawsuit with Microsoft. For more than half
Java's lifetime, Sun has been in dispute over Microsoft's Java
implementation, claiming that the Seattle giant introduced
incompatibilities to make Java more favourable to Windows.
Initially, Sun's suit did some damage, particularly to Internet
Explorer 4.0. However, this year's judgements have mostly gone
against Sun, and while there is a possibility of future disruption
it now looks less likely.
The position of Java has been further confused by the emergence
of XML, the extension to HTML that moves Web pages closer to
programs in their own right.
Sun sees Java and XML as partners, with Java the vehicle for
producing tightly coupled applications, and XML a binder for
applications and a gateway to data.
The company is keen to push Java into corporate developments,
makes great play of its enterprise facilities. However, while
servers based on J2EE are spreading quickly, the Java application
market has been fuelled from the bottom up. Most Java developments
remain one-person projects.
Java's position is very different, though, on computer science
courses. As John Spiers of Sun's development arm Forte points out,
"Anyone who has been doing programming in universities will be
working in Java, it's where the skills lie."
Language of choice
A straw poll of computer science students confirms this - Java
is the students' language of choice. Whether Spiers is right in
assuming this means that Java will take over the corporate world is
a different matter. In the past, educational establishments majored
on languages like Pascal without changing corporate practice.
Java is not going to go away, nor will it take over the world.
Its portability, popularity and Web-friendliness will make it a
useful part of the IT toolbox for years to come, while the J2EE
specification gives other Web application servers a run for their
money.
Links to more on Java
Forte
IBM
iPlanet
Java Site
JavaOne
Microsoft Technologies for Java
Symantec