A judge has ordered Microsoft to make it easy for Sun's popular programming language to work with Windows. But the remedy may be too little, too late.
Jan 21, 2003 | One Sunday in September 1996, Adam Bosworth, a respected Microsoft software engineer who headed the company's Internet Explorer division, wrote a long memo to several company executives, including Bill Gates. Bosworth knew that Gates, then the company's CEO, was about to go on one of his "Think Weeks" -- the monkish retreats during which he pondered Microsoft's long-term business strategies. In preparation for the week, Bosworth wanted to alert Gates to an emerging danger.
The threat, as Bosworth saw it, was Java, a programming language created by Sun Microsystems that allowed programmers to write code one time and run it on a number of different operating systems -- and securely over the Web -- without customizing it for each configuration of computer hardware and OS. "I think it is important to understand that Java is not just a language," Bosworth began. "If it were just a language, it would not be a threat to us. We would and could easily just build the best implementation of this language and be done. It is, however, much more. It is an alternative to COM" -- which happens to be the programming model on which Windows is based.
In the course of a thousand words or so, Bosworth explained how easy it was to program in Java. Doing many tasks in the Windows-Com model, using the C++ programming language, required "quite a lot of hard code" that was more cumbersome to write "than the Java equivalent," he wrote. There were some ways that Microsoft could fight Java, Bosworth surmised; one of them was to "quietly offer 'extensions'" to Java that would have the effect of making Java programs work better on Windows, or not at all on other platforms. He cautioned that this should be done "in ways that seduce rather than collide." Above all, Bosworth wrote, Microsoft had to realize the power of Java: "We must acknowledge that Java competes with COM in order to understand what to do about it, not just put our heads in the sand."
Bosworth's memo alarmed Gates. "This scares the hell out of me," he wrote the next day -- words that turned out to be embarrassing when they were eventually presented in the Justice Department's antitrust trial against Microsoft. (The e-mail thread is available in PDF format.) "It is very unclear to me what our [operating system] will offer to Java client applications code that will make them unique enough to preserve our market position. Understanding this is so important that it deserves top priority."
And so began Microsoft's effort to stifle Java. Details of its plan have since been exposed in three court cases, though specific conclusions regarding the legality of Microsoft's actions have yet to be reached. The latest scene is a federal district court in Maryland, where several companies are suing Microsoft for alleged damages stemming from its violation of antitrust laws. Ruling on a preliminary motion in that case in December, U.S. District Judge J. Frederick Motz ordered Microsoft to include a copy of Sun's Java "runtime environment" -- the software that allows a computer to run programs written in Java -- on "any product containing .Net," the nascent programming platform from Microsoft that is seen as a logical competitor to Java. On Wednesday, Motz gave Microsoft 120 days to begin shipping Sun's Java runtime in Windows. Microsoft says it will appeal the order.
Perhaps because it came during the holidays, and several years after the fight between Sun and Microsoft seemed relevant, response to the order was muted. Much of what was said about it reflected the dull he-said, she-said nature of complex corporate disputes; nobody in the industry expected Java to experience an explosion in popularity as a result of the ruling, nor for Microsoft to be brought to its knees. But if it holds, the ruling could mark a salutary event in the world of software -- the beginning of real competition between two pretty good programming schemes, each theoretically capable of running on multiple platforms. But it's also possible that the damage may already be done -- that Microsoft's early moves against Java sealed the fate of Sun's programming language and paved the way for Microsoft to take over yet another software market, with .Net.
Since its inception, Java has had mixed success. Not long after it was released, amid a storm of boom-era hype, Java was criticized for running very slowly on Windows, and -- because of Microsoft's actions, Sun contends -- the software still carries the burden of that first impression. But Java has made gains in non-Windows environments. The language is, according to some, the most widely used language for network servers and mobile devices. Sun estimates there are about 3 million Java developers, and Java has become a primary language taught in college computer science courses. There are no firm numbers, but Java could be the most popular programming language in the world. In other words, if Java -- a new, improved, fast version of Java -- finds itself on every copy of Windows, there won't be a shortage of developers to build Java-based Windows programs.
As the court documents show, Microsoft understands the threat from Java -- that's why it has prepared an alternative to Java called C# (pronounced "C sharp"). Part of the .Net Framework programming model, the C# language looks much like Java; Microsoft even says that, like Java, C# can run on non-Windows machines. To that end, the company has managed to get ECMA, a European standards body, to bless the language as being "open" and out of Microsoft's direct control. "You really are seeing a different way of working, from Microsoft's perspective," Anders Hejlsberg, the chief architect of C# at Microsoft, said last year.
Critics of Microsoft are not inclined to believe that the company has reformed; it's not in Microsoft's interest to see cross-platform languages flourish, and its past behavior proves it. But the beauty of Motz's decision is that the company itself may now be irrelevant. If Sun's Java and Microsoft's .Net are both supported on future versions of Windows, programmers will have the freedom to use whichever language fits their needs and not have to worry about whether users will have the software to run it. There may finally be a level playing field, and in that respect Motz's decision may be the first Microsoft antitrust ruling of any practical importance. Even if Java doesn't bring down Windows -- which might have been Sun's initial goal -- it might at least provide some competition to .Net. And in the world of Windows programming, competition would be a truly novel thing.
Get Salon in your mailbox!