The Java Dream is Alive
A few years back some bright folks at Sun Microsystems Computer Co. were looking at a small object-oriented (OO) language that they developed to control appliances, and they saw a connected world. Java, as the language came to be known, would be able to transport its programs to any machine on the Internet, unwrap them, and execute them both safely and predictably. While the dream of the Java pioneers has not exactly come to pass, a recent U.S. District Court's preliminary injunction against Microsoft keeps the dream alive.
When Sun first brought Java to market, the company touted it as a way to create smart front-ends to web applications. Initially Java's ability to create a platform- independent graphical user interface (GUI) made a lot of people wonder if Windows was going to become unnecessary. Microsoft immediately licensed Java from Sun, released a Visual C++-derived compiler, and, more importantly, integrated a Java virtual machine (JVM) into Internet Explorer. From the first release, Visual J++ was built to take advantage of ActiveX components.
The term ActiveX is like acid in the mouth of a cross-platform Java programmer because it means Windows-only. Although Microsoft's distributed component object model (DCOM) has been partially ported to other platforms, none of those ports address ActiveX components. As soon as Sun realized Microsoft was using Sun's own language to lock people into Windows, they started talking lawsuit.
At issue in the lawsuit is Microsoft's refusal to fully implement the Java specification, leaving out support for Sun's Java Native interface. It has also been alleged that Microsoft's Visual J++ tool causes developers to create Windows-only programs from what is thought to be a cross-platform tool.
With this lawsuit, to some degree, Sun may actually be biting the hand that feeds it. The Microsoft's JVM included in Internet Explorer 4.0 is considered to be fast and robust. For example, PeopleSoft's Java-based web client offering had to drop support for Netscape due to continuing performance problems. Microsoft's latest iteration of Visual J++, while proprietary, is the easiest-to- program version of Java available. Visual J++ also has proprietary Windows extensions in the language and relies heavily on ActiveX controls for functionality.
The bottom line is that the injunction will be good for Java. Almost from the moment the language was released, developers have bemoaned the potential division of the Java standard. Now that the court has found -- preliminarily-- that Sun should be allowed control the destiny of its invention, Java programmers can finally stop worrying about how Microsoft, or anyone else, might sabotage the specification.
Microsoft has assured us that they will comply with the court's decision. On Dec. 8, 1998, Microsoft issued a press release announcing that their Java products were now in compliance with the federal court's ruling. The update is available at www.microsoft.com/java.
It's nice to know that Microsoft doesn't always win. But Sun may have won the battle only to lose the war. While Microsoft did license Java, it is now claiming that it has no obligation to support the latest revision of the specification: Java 1.2. So the most popular Java platform, Internet Explorer, could halt the progress of Java for most users.
If Microsoft stops following the Java spec into the future, Visual J++ programmers will quickly find themselves between a rock and a hard place.
For the time being, Java programmers can count on a complete implementation of the Java 1.1 specification from all licensees. While the future support of Java by Microsoft may be undecided, today may actually be the most stable point in Java's short history. --Eric Binary Anderson is a development manager at PeopleSoft's PeopleTools division (Pleasanton, Calif.) and has his own consulting business, Binary Solutions. Contact him at firstname.lastname@example.org.