Friday, January 17, 2003

Java Wars: Sun vs. Microsoft

Sun Microsystems won an injunction against Microsoft on 12 Dec 2002 and the court's opinion provides some interesting insight into Microsoft competitive tactics. See SUN MICROSYSTEMS, INC. v. MICROSOFT CORPORATION Civil No. JFM-02-2739. It is important for technical leaders to understand the details of competitive strategies in the marketplace because it directly impacts the rational selection of architectures and technologies.

"Because of the competitive threat Java presented, Microsoft devised and implemented a strategy to “wrest control of Java away from Sun” and to “turn Java into just the latest, best way to write Windows applications.” (Pl.’s Ex. 21, 4/14/97 Slivka email to Gates.) In order to preserve Java’s cross-platform functionality, Sun required in all of its license and distribution agreements (including the one with Microsoft) that a licensee’s implementation of the Java platform meet a test suite demonstrating that the implementation was compatible with the core Java platform. Though pretending to embrace the goal of compatibility, Microsoft intentionally took various steps to defeat that goal.

"First, Microsoft made unauthorized modifications to the core Java class libraries. Sun Microsystems, Inc. v. Microsoft Corp., 999 F. Supp. 1301, 1309-10 (N.D. Cal. 1998).

"Second,its implementation Microsoft failed to include support for what is known as Java Native Interface, a technology designed to permit programs written in Java to draw upon the native code of an underlying operating system. (FOF 388-390, 84 F. Supp. 2d at 105-06; Sun Microsystems, Inc. v. Microsoft Corp., 21 F. Supp. 2d 1109, 1119-22 (N.D. Cal. 1998), vacated, 188 F.3d 1115 (9th Cir. 1999).

"Third, Microsoft altered its developer tools and virtual machine to recognize Microsoft-specific keywords and compiler directives that would run only on Microsoft’s implementations. FOF 394, 84 F. Supp. 2d at 106-07; Sun Microsystems, 21 F. Supp. 2d at 1122-25. This had the effect (as Sun correctly characterizes it) of changing the Java language to create a dialect only Microsoft products could understand.

"Fourth, Microsoft prevented developers from having ready access to a set of class libraries, useful for creating distributed computing applications, known as RMI (remote method 5 invocation). FOF 391-393, 84 F. Supp. 2d at 106. Instead, as found by Judge Jackson, “it buried the link in an obscure location and neglected to include an entry for it in the site’s index. Referring to RMI and any Java developers who might access Microsoft’s site looking for it, a Microsoft employee wrote to his approving manager, ‘They’ll have to stumble across it to know it’s there. . . . I’d say it’s pretty buried.’” FOF 392, 84 F. Supp. 2d at 106.

"Fifth, Microsoft intentionally deceived developers into believing the software products they were developing with Microsoft tools were cross-platform. United States v. Microsoft Corp., 253 F.3d 34, 76-77 (D.C. Cir. 2001); see also FOF 395-403, 84 F. Supp. 2d at 107-09 (explaining how Microsoft induced developers to use the Microsoft implementation rather than the Sun-compliant implementation).

"The purpose of the strategy devised and implemented by Microsoft was described in its internal documents. A November 1996 email stated: “[W]e should just quietly grow j++ [Microsoft’s incompatible developer tools] share and assume that people will take more advantage of our classes without ever realizing they are building win32-only java apps.” FOF 394, 84 F. Supp. 2d at 107. Another document was even more succinct: “Kill cross-platform Java by grow[ing] the polluted Java market.” Microsoft, 253 F.3d at 76-77 (quoting Government Ex. 259).

"While thus deliberately fragmenting the Java platform to make it less attractive for developers and users, Microsoft also successfully embarked upon a campaign to destroy Sun’s channels of distribution for Java. In May 1995, Netscape Corporation “agreed . . . to include a copy of Sun’s Java runtime environment with every copy of Navigator [Netscape’s web browser], and Navigator quickly became the principal vehicle by which Sun placed copies of its Java runtime environment on the PC systems of Windows users.” FOF 76, 84 F. Supp. 2d at 30. In order to curtail this line of distribution, Microsoft “undertook a number of anticompetitive actions that seriously impeded distribution of Navigator.” Microsoft, 253 F.3d at 75. Microsoft also entered into “First Wave Agreements” with dozens of independent software vendors that “conditioned receipt of Windows technical information upon the ISVs’ agreement to promote Microsoft’s JVM [Java Virtual Machine] exclusively.” Id. Finally, Microsoft successfully stopped Intel Corporation from cooperating with Sun and Netscape in the development of a cross-platform Java runtime environment by threatening not to distribute Intel technologies bundled with Windows and to support one of Intel’s competitors in connection with one of its products unless Intel ceased its support for Java."

It's too bad Microsoft could not live up to the vision expressed in my 1996 interview with Microsoft executives:

Sutherland, J. Microsoft and the Internet Wars: Freedom Fighters. Homepage Journal, Mar 1996.


Post a Comment

<< Home