By Joe Barr Originally published in 1998 Java 1. technology which allows developers to write software for one platform which can run on any platform 2. an evolving technical solution to a problem of monopoly in the marketplace Java is the touchstone software of the 1990's. Just offering a definition of the term places you in one camp or the other: Microsoft's or the rest of the world. As a still evolving technology, Java is particularly vulnerable to attack by redefinition. Sun Microsystems, the developer and owner of Java, goes to great length to be precise and exact in its definition. Microsoft, the monolithic monopoly threatened by Java, goes to even further lengths to recast Java as something other than what it is. Refer to it simply as a language, no different than Visual Basic or C++, and you are speaking one line of Redmonian propaganda and giving voice to the definition Bill Gates wants the world to believe. But a language does not threaten the Microsoft empire. Java does. If you say Java is an operating system, you are giving voice to one of Microsoft's excuses for its deliberate, studied actions aimed at derailing its promise of portability. By positioning it as a replacement for its own Windows operating system, Gates and company seek to justify their criminal actions and the violence they have done to their license with Sun. But Java OS doesn't threaten to replace Windows. Java simply makes it nonessential. The threat of a world where Windows is not a requirement strikes terror into the heart of Microsoft. Like the Mafia's classic control of distribution channels, Microsoft depends on forced purchases of its products rather than product-generated attraction. Java offers a whole new world of distribution choices. For that reason, Microsoft will do anything and everything in their power to destroy it. The Java Wars will be supplying fodder for the tres duh press for years to come. For one perspective of the war, consider this. Sun Microsystems owns Java, owns its creation, and owns its future. It is theirs to define, to shape, to direct. Yet Microsoft doesn't hesitate to step in and redefine Java. Never mind that for Bill Gates to make pronouncements about what Java is and what it should be is just as absurd as Ford stepping forward to announce that Chevrolet's Corvette is a station-wagon. Never mind that the coverage given these inane remarks is as insane as Car and Driver styling such Ford comments about a Cheverolet product as a "debate." How many articles have you read that claim to get beyond "the hype about Java" and then launch into Redmonian rhetoric? How many times have you seen Java dismissed as just another uppity language with a pretence towards portability? How often do you read about the great "debate" about what it is? Or about the "choice" developers must face: to develop in a "Windows only" impure Java or pure Java? Each and every story you've seen like that is tribute to the greatest misinformation machine the world has ever seen: Microsoft. Why has Microsoft put itself in harm's way by blatantly violating its license for use, by illegally hacking Java itself, by doing everything in its power to disrupt the journey to Java's promised land? That's easy. Because Java provides the world with choice, and Microsoft depends upon the world having no such choice. During the press conference announcing their suit against Microsoft for breach of contract, trademark infringement, unfair competition, and false advertising, Peter Coffee of PC Week asked if Sun had ever made a formal statement outlining the perimeter of Java as opposed to the underlying operating systems. As a backdrop to his question, Coffee offered a comment by Microsoft spokesman Cornelius Willis which complained about having to implement another operating system on top of their own. Baratz took the opportunity to skewer the lie that Java is an operating system and to offer a general description of what it actually is: Now, I should also say that Java is not an operating system. Java is functionality that enhances any existing operating system by providing a new object oriented programming environment that is common across all operating systems. Java provides a way for developers to write code that uses the underlying OS functionality but commonly across all operating systems to achieve write once, run anywhere. Cornelius Willis is not stupid. He knows that Java is not an operating system. He was attempting to define Java as an operating system only to justify Microsoft's criminal behavior. Notice that Baratz's pointed definition of Java continues to be ignored in the trade press, who insists on calling it either simply a language or alternatively an operating system. A lot of the confusion, and of the vulnerability of Java to the deliberate disinformation from Redmond, is that it began its life as something far different than what it is today. When James Gosling and his team at Sun first created Java (known originally as Oak), it was meant to be a far different thing. Only after it failed at its original intent and through whimsy and luck became entangled with the rising star of the internet, did Sun and others begin to realize its true potential. It is that potential more than anything else that has fueled its unbelievable, meteoric climb to become the hottest development environment in the software world. While Microsoft has the world of personal computing locked up in chains with its unregulated and ever expanding Windows operating system, it has been stunningly unsuccessful in moving into the enterprise. For that reason, various flavors of Unix, the AS/400 family, and other mini/mainframe platforms continue to exist long after being pronounced dead by the Microsoftian-press. This presents problems for software developers wishing to target a particular business arena. They either have to ignore large segments that run on the platforms they are not developing for, or they have to drastically increase the cost of their software products by porting it to the others. It also presents the same problem for firms who write their own applications but have a mix of hardware platforms scattered throughout the enterprise. Java began the journey to the promised land of platform independence perched on the wings of Netscape's browser, which became "Java enabled" in 1995. That's how it caught the wave of the world wide web. At its level of maturity then, it wasn't really suited for much more than the micro-applications (applets) that began to appear everywhere on the web. At that larval stage it wasn't really a threat to Microsoft's monopoly, either. It was just a cool tool unlike anything Redmond could offer. Today Java is suitable for a lot more than applets. Slowly, with two steps forward and one step back, it is coming to market in the form of full-fledged applications. Some are not much more than "proof of concept" applications. Corel's Java office suite, for example. Big and slow and without the bells and whistles of other suites it was certainly not all that. But even in failure it showed that it could be done. To date, over 110 applications developed by more than 80 different firms have been certified as being "100 Percent Pure Java." They come from some of the world's largest software companies (IBM, Oracle, Novell) and some of the smallest. They are starting to come from everywhere. True to its roots, some are web related: servers, clients, and utilities. Others include network management services, word processors, and spreadsheets. The certification means they can run anywhere that the current level of Java can run. It is the development of serious stand-alone applications for Java that concerns Microsoft. Microsoft's success is based on a system of force-feeding its product to consumers. Choice is not an option. You must run Windows operating systems. Microsoft uses its monopoly on operating systems to create new monopoly positions in other areas. The battle raging today between the Department of Justice and Microsoft is over this very issue: the tying of Microsoft's browser to its operating system. You can't have one without the other. At least not until the courts begin to uphold anti-trust law. But Java changes all that. When Java applications become common, everything changes. Everything. Developers follow the money. They develop in and for Windows today because that's where the money is. A Java wordprocessor that is the functional equivalent of MS Word can be marketed not only to Windows users but to Unix users, OS/2 users, AS/400 users, mainframe users. Windows becomes a "so what." These are the reasons that Microsoft is trying so desperately to destroy Java. Microsoft licensed Java in 1995. Not because they wanted to participate in the great migration away from them, but so they could have a better vantage point from which to attack. As the Sun Microsystems suit against them shows, they have gone as far as to mutilate Java to ensure that applications developed on their poisoned Java platform are not compatible with the rest of the world. But Sun and its Java allies are not standing still in the critical battle for mind-share. At the recent National Retail Foundation show in New York, Sun announced its JavaPOS specification, which should assist in bringing this key set of enterprise applications more quickly to Java. Admittedly playing catch up with Microsoft's OPOS (OLE Point of Sale), the Java group gave itself a jump-start by announcing it would 'embrace and extend' OPOS. By mapping itself exactly to OPOS, Sun hopes to ease the transition from traditional Windows-only shops into Java development. Microsoft, in turn, has issued a white-paper to ridicule and belittle JPOS. The quick acceptance of JPOS by major players in the retail environment illustrates both the lure of Java and the size of the problem it presents for Microsoft. For many of the retailers and Java developers, however, the matter is not a religious one. It's simply good business. I have no doubt that fear, distrust, and disdain for Microsoft has a lot to do with Java's sudden and immense popularity. But that is background noise, not true motivation. The appeal to the enterprise, the same enterprise which has never found Windows a satisfactory replacement for its current mix of diverse hardware and software platforms, is that Java provides an acceptable solution for precisely that environment. And it doesn't tie their hands or chain them to any particular solution for the future. So what does the future hold for Sun and Java? Will they vanquish the Evil Empire and ride into the sunset as conquering heros? Hardly. Yes, they are poised to do exactly that. Yes, they have momentum and are continuing to gather support for their efforts. Yes, the negativity the world feels about Microsoft fuels their efforts. But there are still problems which must be addressed. The first is speed. The second is Sun. The third is Microsoft. It's ironic to me that Windows itself has helped prepare the world for Java. The Windows GUI and its speed penalty has most of us used to waiting on that hourglass for some mundane task to complete before we can continue working. Java biggest drawback today is that it is still slow. A lot of work remains to be done before it perform as well as, or even nearly as well as, native applications. It's even more ironic that Sun itself would be a stumbling block in Java's path. But for those intimate with Java development over the past year or so, it often looks just that way. Sun was not prepared for Java's success. As Michael Mann, a Java application development manager, says: Java is not so much something that Sun developed as it is something that happened to Sun. For Java to continue to gain ground, Sun must learn how to deal with developers and partners. Mann goes on to say that he has yet to be in a meeting with Sun where there are two Sun employees from the same division. Internal communications at Sun stinks. One hand never seems to know what the other is doing. That's not just bad for Sun, it's bad for those who are depending on them for assistance in crafting leading edge applications. Like Microsoft or hate them, you rarely find two employees from Redmond reading from different sheets of music. Microsoft. Already they have seen fit to enter into contracts they had no intention of living up to, only to give them a better position from which to strike. Now their lawyers are feverishly working to see how long they can slow down the legal process and continue to ship poisoned Java that is compatible only with Windows platforms. But that was only their opening fire. As Java matures, as more and more real Java applications reach market, as its promise begins to be fulfilled, Microsoft can be couinted on to strike out at it with much more fury. What shape those attacks will take, or when they will occur, are things we will all have to wait to see.