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".
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.