Sunday, December 23, 2007

The day Microsoft 'embraced and extended' Java

Myths and legends It's early December 1995 and it has been a heady few days for Java. IBM and Adobe Systems have agreed to license this strange and embryonic new software that Sun Microsystems keeps telling us can be "written once and run anywhere".

Two days before, Sun and Netscape had announced JavaScript that - according to the press release - was: "Analogous to Visual Basic in that it can be used by people with little or no programming experience to quickly construct complex applications."


Now December 7 is dawning bright and blue over America's Pacific coast, and with it breaks the news that startles an industry. "Today Microsoft has announced that it has signed a letter of intent with Sun for a Java technology source license... Microsoft has agreed in principle to provide to Sun Microsoft's reference implementation of the Java virtual machine," said Java software division director of corporate marketing George Paolini.

"We are happy to be working with Microsoft on a license for the Java technology and look forward to working with them on optimizing the Java technology for Windows," Sun said in an official release.

On the same day, though, Bill Gates gave the keynote at Microsoft's Internet Strategy Workshop, an event he used to outline his company's internet strategy. It was the height of Microsoft's "embrace and extend" policy. "We will embrace all the popular internet protocols," said Gates. "Anything that a significant number of publishers are using and taking advantage of we will support. We will do some extensions to those things."

Java was a case in point. At the same moment Paolini was stating that "applications written in Java will run anywhere," Gates was making no secret of Microsoft's intention to create extensions for Windows. Microsoft later made public the full text of its March 1996 agreement, which provides for the licensee to "make, access, use, copy, view, display, modify, adapt, and create derivative works of the technology."

Microsoft was quick to deliver such extensions, presenting a design preview the following May. A press release emphasized how Java integrates with ActiveX, Windows-specific components. "Developers will be able to write Java applets that work with ActiveX Controls... developers can also use Java to create ActiveX Controls that work with ActiveX Controls written in other programming languages. All of these will run seamlessly on the Java reference implementation in Windows," Microsoft said.

Sun was soon not "happy to be working with Microsoft." Less than two years later, in October 1997, Sun sued Microsoft for breach of contract. According to Sun: "Microsoft has... embarked on a deliberate course of conduct in an attempt to fragment the standardized application programming environment established by the Java technology, to break the cross-platform compatibility of the Java programming environment, and to implement the Java technology in a manner calculated to cause software developers to create programs that will operate only on platforms that use defendant Microsoft's Win32-based operating systems."

The suit was eventually settled in January 2001, at a cost to Microsoft of $20m, but by then it was irrelevant. Microsoft had given up on Java long before, and in June 2000 announced its alternative: the .NET Framework and a new language called C#.

"December 7 is kind of a famous day", said Bill Gates during his 1995 keynote, recalling the Japanese attack on Pearl Harbor that officially pulled the United States into WW2. "The most intelligent comment that was made on that day was actually [by] Admiral Yamamoto, who observed that he feared they had awakened a sleeping giant."

Prophetic? In programming terms, a giant was stirred. The spat over Java invigorated Microsoft, which invested not only in C# and .NET, but also in XML, creating a viable alternative to Java in the enterprise. That said, there was no defeat for Java, which has become the world's most sought-after programming skill. Java and .NET have been good for each other.

Perhaps the greater surprise, twelve years later, is that Java's little brother JavaScript, the scripting language aimed at non-programmers, has bested Java in browser applications, and as adopted by Adobe in Flash, is also giving Microsoft tough competition everywhere from rich internet applications to mobile devices.®