Another year, another JavaOne conference at San Francisco's Moscone Center. This is the fifth JavaOne I have attended. A lot has changed in five years. Sure, there's a lot of great new Java technology, lots of product announcements, lots of new partnerships. What was most interesting, though, was the overall tone of the conference. It was upbeat, an almost quiet cool. Everyone there understood where things were headed, and they appeared contented to be a part of it. I had no great expectations, but as usual, I came back believing more than ever in the future of Java.
After many years, the original goal of Java is being realized in commercial products.
The opening keynote included the dependable showmanship of John Gage, as well as the standard top-ten list by Scott McNealy. One of the big surprises was the presence of the venerable Steve Jobs. Jobs underscored the commitment by Apple Computer to ship the Java 2 Standard Edition (J2SE) with their upcoming MacOS X release later this year.
This is great news for Mac users and Java developers alike. The Mac has always supported Java, but full support for the latest versions lagged that of Windows, Solaris, and even Linux. It is about time that both Sun and Apple put serious effort into porting Java to the Mac. Hopefully, they will work together and help each other in the process. The demo of a pre-release version of Java 2 for MacOS X was impressive. There were a few glitches, but the demo got it's point across: Java runs well on the Mac and will take full advantage of the upcoming Aqua user interface.
Rely on It
The Java 2 Micro Edition (J2ME) has really taken off. The KVM can now be found in over 100 handheld and embedded devices. After many years, the original goal of Java is being realized in commercial products. Of course, a user of any of these devices might not even know they are running Java, most won't even care. The point is that software for embedded devices can finally be developed efficiently and reliably.
Bill Joy's keynote on day two underscored the importance of high-reliability software. He challenged software developers to produce dual-redundant or even triple-redundant software, similar to the redundancy used in high-reliability hardware. This is still blue sky technology, but Joy makes a strong case for reliable software.
In the future, there will be more software in more mission-critical systems than ever. As the size and complexity of modern software increases, new techniques for ensuring reliability will be needed. A bug in a flight-control system is not just a nuisance, it can be catastrophic. Who knows when Bill Joy's visions will see commercial application, but be sure that many of the key technologies in Java, such as garbage collection, strong security, and byte-code verifier will be there.
In the Cards
JavaCard technology has been licensed by the manufacturers of more than 90 percent of today's smart cards. These early adopters of non-desktop Java have taken a simple idea and built inexpensive, viable Java solutions available to everyone. Gemplus, Schlumberger, and Oberthur were all present at JavaOne, showing off their latest, greatest Java-enabled smart cards.
Each attendee was given a Schlumberger JavaCard that could be used to store a conference schedule and other information. The system was so simple and worked so well, that everyone took it for granted. Few were even impressed, they almost didn't care that Java was running on a smart card and performed a useful function. This is what Java is all about, you don't know and don't care about the software. You just know that it works and does what you need. The American Express Blue smart card is a JavaCard, but only the developers would know.
Hailing the Enterprise
Java 2 Enterprise Edition has been the sleeper platform. Although Sun originally took aim at distributed applications and embedded devices, the enterprise really vaulted Java into the mainstream. Java Server Pages, Enterprise Java Beans, and XML technologies were by far in greatest demand.
Version 1.3 of the SDK and JRE enhance performance by including the HotSpot virtual machine and improving much of the inner workings of Swing.
Allaire has further improved its JRun by supplying a powerful JSP tag library, simplifying database access, flow control, and access to JNDI resources. JRun even includes connection pooling and an EJB server, all on one install CD.
A number of vendors showed off sophisticated enterprise applications aimed at high-end businesses looking to improve efficiency. These were definitely not developer tools, these were targeted at solving specific business problems.
XML is also key to Java Enterprise strategy. One very interesting technology under development is a compiled XSL processor. A standard XSL template is compiled into Java byte-codes and executed on any JVM. This yields a processor that executes at almost native speeds, many times faster than the interpreted processors available today.
Start to Finish
With all this attention in J2ME and J2EE, one has to wonder what is happening with J2SE, or the old JDK. J2SE is more or less in maintenance mode. All of the major APIs have been developed, and focus has shifted towards performance and ease of deployment.
Sun has not abandoned Java on the client, rather they have tried to understand the issues with client-side Java and address them as best they can. The common complaints about slow startup, poor user response, and deployment challenges are being addressed with version 1.3 and Java Web Start.
Version 1.3 of the SDK and JRE enhance performance by including the HotSpot virtual machine and improving much of the inner workings of Swing. Java Web Start hopes to revive interest in client applications by deploying applications (as opposed to applets) through a Web browser.
One of the key advantages is that the correct JVM version and even vendor required by an application can be specified in an XML file. This file is used by the Java Web Start client app to determine if the correct VM is available to execute a given application. If not, it can be downloaded and installed with minimal user intervention. If multiple versions of the JVM are needed by different applications, they will all be available without stepping on each other. This takes more hard drive space, but that's better than the configuration nightmare of JVM version migration.
Applications running with Java Web Start are like applets in that they run with security restrictions. Of course, digital signatures can relax these constraints the same way applet restrictions can be lifted. There are also supplementary APIs for saving and loading information to the local hard disk under user control. This significantly reduces the need for digital signatures in most cases.
That's the big picture from the show. It was a lot to take almost total sensory overload. Upcoming articles will focus on specific technologies introduced or enhanced at JavaOne.
About the Author
Madhu Siddalingaiah is a consultant with an interest in emerging technologies, such as Java. He holds a physics degree from the University of Maryland. He is the author of Java How-to and co-author of Java API for Dummies Quick Reference. Before Java, he specialized in satellite instrumentation, communications receivers, and 3D graphics. When Madhu is not working, he may be found flying helicopters and playing drums, but not at the same time.