The mainstream press handled the recent Microsoft and Apple partnership as a story about Steve Jobs and Bill Gates. The real story is about the future of Java
The tiny island nation of Montserrat is sinking into the sea as the Soufriere Hills volcano gradually consumes it. This event and several others over the past summer have some people in the Java community remembering the island of Atlantis. In legend, Atlantis was a civilization of scientists, artists, and philosophers who created a utopian society that was lost to the depths of an enveloping sea. Current theories ascribe the legend to distant memories of the Minoan civilization on Crete or a lost culture from the Greek Island of San Torini. Regardless of historical fact, Atlantis has become a prominent feature in popular culture. It has become the worldโs icon for lost opportunities.
So too with Java?
When Steve Jobs announced Appleโs partnership with Microsoft at Macworld in Boston just last August, many in the Java community had the definite sensation of cold waves surging around their feet. The two main aspects of the agreement are: Microsoftโs Internet Explorer will become the default browser on the Macintosh; and the two companies are committed to collaborating to โensure that thereโs compatibility between our virtual machines.โ The mainstream press used this news as an opportunity either to write about Steve Jobs and Bill Gates, or to discuss the economic impact for Apple.
They mostly missed the point.
The true story was not lost on the Java community. The announcement was more about the future of Java than about anything else. It provided the culmination of a series of developments this summer that included:
A raft of JavaSoft, Oracle, IBM, and Netscape (JOIN) collaborations on Java technology and products
The momentum that Sunโs 100% Pure Java certification program gained by mid-year
Microsoftโs announcement that it will ship its own Application Foundation Classes (AFC) with Internet Explorer 4.0 โ not the Java Foundation Classes (JFC) or Java Native Interface (JNI) that are considered โthe standardโ
- Sunโs announcement of its WebTop initiative and its intent to develop a direct sales force
Together these agreements demonstrate the emergence of two informal Java keiretsus โ JOIN and Microsoft. Somehow, perhaps in spite of themselves, these two groups will determine the future of Java.
The real issue involves the formal definition of Java: not simply who can use the word, but what the word means. The industryโs only definition of what is and isnโt Java is found in the 100% Pure Java initiative. It is intended to be a comprehensive definition designed to maximize portability. For Java applets and applications, five major elements make up this definition:
- Written in 100% Pure Java
- Contain no native method calls
- Use the Core Java API specifications
- Donโt alter the Core Java API
- Use pure libraries
An applet passes specific tests only if the test driver runs to completion on two unique Java platforms (of the developerโs choice) with the following two qualifications: the operating systems must not be the same, and the two browsers used must be from different vendors โ the โtwo-plus-twoโ test.
The 5 Java requirements + Microsoft + Apple = ?
Microsoftโs moves with IE 4.0 and the Application Foundation Classes are at the heart of the Apple deal. It probably violates all five of the 100% Pure Java specifications, leading some to believe that the criteria were designed to highlight this issue. Working with Apple doesnโt help. Windows, MacOS, and Solaris are the qualifying operating systems, however Navigator, Internet Explorer, and HotJava are the reference browsers. Therefore, the Apple deal gives Microsoftโs virtual machine a โtwo-plus-oneโ response to the โtwo-plus-twoโ test.
Defining Java turns out to be a difficult process. Microsoft will argue that the 100% Pure Java specification is anti-competitive. It puts the definition solely in Sunโs hands, and it provides no room for innovation. While clearly this is a disingenuous position for Microsoft to take, it is also partially correct. In addition, there appears to be some definition creep around the core of Java. No doubt many other vendors would question the 100% initiative if Microsoft were not using it as a lever to undermine Java overall.
One fact is clear, however: Sun owns Java. Microsoft has licensed it from the JavaSoft division, and has recognized significant financial gain from the license (through both product sales and PR). Microsoft has the installed base, but this is Sunโs game to lose. The current impasse permits several opportunities for closure:
Wait and hope the user community will force Microsoft to move toward a 100% Pure Java standard.
Agree to a compromise standard. From Microsoftโs perspective this will only happen if the Core Java API is defined tightly without further creep. From the industryโs perspective, this can only happen if Microsoft decides to ship the JFC libraries. This strategy would enable a two-tier certification standard โ 100% Pure Java and a new definition of official Java extensions for specific platforms. In other words, the Java definition could start to look like the SQL standard. Of course the question is, if there is any place for โapprovedโ native method calls, whatโs in it for Sun and how much of โwrite once, use anywhereโ is at risk?
Go to court. Both Apple and Microsoft have been reticent about disclosing the exact details of their formal agreement, so any discussion here is speculative. However, legal action is surely possible. Since Microsoft has already gained financially from the Java license, its principal argument must revolve around the definition of the Core Java API. How many and which class libraries can be included in a โcore API,โ and which are optional? This is definitely an option, but it is not in Sunโs interest.
Divest JavaSoft as a separate entity with shared ownership by its license holders. This is possible but unlikely. This type of approach has certainly been tried. Remember the Open Software Foundation (OSF)? Unix history indicates that while this kind of action is good for PR, it tends to create a technology abyss. In an open letter to Sun executives in early September, Intel, Microsoft, Digital, and Compaq asked Sun to cede control of Java to an international standards-setting organization. This could happen, but the companies who made this request look an awful lot like a consortium of Windows/NT supporters.
- Have IBM or Novell invest in the JavaSoft subsidiary and execute a keiretsu strategy. Combinations in the software industry are inevitable. There is a significant possibility that Novell will partner with another company in the next year or so. Under the right circumstances, a Novell-led consortium could become a good home for Java. If it combines with IBM, the merged company would provide Sun with a potentially winning keiretsu in the โJava Wars.โ
One way or the other, itโs time to lead, follow, or get out of the way.
Whatever the final details, a true cross-platform Java is rapidly turning out to be in every vendorโs self-interest. That includes Microsoft. The user community, particularly in the corporate world, is restless. Echoing the sentiments of many in the corporate world, Alan Nugent, the outspoken CIO of American Re-insurance, recently said โEither Sun and Microsoft will define a true cross-platform standard for Java, or we will.โ
Settle, sue, divest, or form an official keiretsu: Sun ultimately will have to bring peace to the Java Wars. In the meantime, the Java community will just have to learn how to swim.


