IV. THE MIDDLEWARE THREATS
68. Middleware technologies, as previously noted, have the potential to weaken the applications barrier to entry. Microsoft was apprehensive that the APIs exposed by middleware technologies would attract so much developer interest, and would become so numerous and varied, that there would arise a substantial and growing number of full-featured applications that relied largely, or even wholly, on middleware APIs. The applications relying largely on middleware APIs would potentially be relatively easy to port from one operating system to another. The applications relying exclusively on middleware APIs would run, as written, on any operating system hosting the requisite middleware. So the more popular middleware became and the more APIs it exposed, the more the positive feedback loop that sustains the applications barrier to entry would dissipate. Microsoft was concerned with middleware as a category of software; each type of middleware contributed to the threat posed by the entire category. At the same time, Microsoft focused its antipathy on two incarnations of middleware that, working together, had the potential to weaken the applications barrier severely without the assistance of any other middleware. These were Netscape's Web browser and Sun's implementation of the Java technologies.
A. The Netscape Web browser
69. Netscape Navigator possesses three key middleware attributes that endow it with the potential to diminish the applications barrier to entry. First, in contrast to non-Microsoft, Intel-compatible PC operating systems, which few users would want to use on the same PC systems that carry their copies of Windows, a browser can gain widespread use based on its value as a complement to Windows. Second, because Navigator exposes a set (albeit a limited one) of APIs, it can serve as a platform for other software used by consumers. A browser product is particularly well positioned to serve as a platform for network-centric applications that run in association with Web pages. Finally, Navigator has been ported to more than fifteen different operating systems. Thus, if a developer writes an application that relies solely on the APIs exposed by Navigator, that application will, without any porting, run on many different operating systems.
70. Adding to Navigator's potential to weaken the applications barrier to entry is the fact that the Internet has become both a major inducement for consumers to buy PCs for the first time and a major occupier of the time and attention of current PCs users. For any firm looking to turn its browser product into an applications platform such to rival Windows, the intense consumer interest in all things Internet-related is a great boon.
71. Microsoft knew in the fall of 1994 that Netscape was developing versions of a Web browser to run on different operating systems. It did not yet know, however, that Netscape would employ Navigator to generate revenue directly, much less that the product would evolve in such a way as to threaten Microsoft. In fact, in late December 1994, Netscape's chairman and chief executive officer ("CEO"), Jim Clark, told a Microsoft executive that the focus of Netscape's business would be applications running on servers and that Netscape did not intend to succeed at Microsoft's expense.
72. As soon as Netscape released Navigator on December 15, 1994, the product began to enjoy dramatic acceptance by the public; shortly after its release, consumers were already using Navigator far more than any other browser product. This alarmed Microsoft, which feared that Navigator's enthusiastic reception could embolden Netscape to develop Navigator into an alternative platform for applications development. In late May 1995, Bill Gates, the chairman and CEO of Microsoft, sent a memorandum entitled "The Internet Tidal Wave" to Microsoft's executives describing Netscape as a "new competitor ‘born’ on the Internet." He warned his colleagues within Microsoft that Netscape was "pursuing a multi-platform strategy where they move the key API into the client to commoditize the underlying operating system." By the late spring of 1995, the executives responsible for setting Microsoft's corporate strategy were deeply concerned that Netscape was moving its business in a direction that could diminish the applications barrier to entry.
B. Sun's Implementation of the Java Technologies
73. The term "Java" refers to four interlocking elements. First, there is a Java programming language with which developers can write applications. Second, there is a set of programs written in Java that expose APIs on which developers writing in Java can rely. These programs are called the "Java class libraries." The third element is the Java compiler, which translates the code written by the developer into Java "bytecode." Finally, there are programs called "Java virtual machines," or "JVMs," which translate Java bytecode into instructions comprehensible to the underlying operating system. If the Java class libraries and a JVM are present on a PC system, the system is said to carry a "Java runtime environment."
74. The inventors of Java at Sun Microsystems intended the technology to enable applications written in the Java language to run on a variety of platforms with minimal porting. A program written in Java and relying only on APIs exposed by the Java class libraries will run on any PC system containing a JVM that has itself been ported to the resident operating system. Therefore, Java developers need to port their applications only to the extent that those applications rely directly on the APIs exposed by a particular operating system. The more an application written in Java relies on APIs exposed by the Java class libraries, the less work its developer will need to do to port the application to different operating systems. The easier it is for developers to port their applications to different operating systems, the more applications will be written for operating systems other than Windows. To date, the Java class libraries do not expose enough APIs to support the development of full-featured applications that will run well on multiple operating systems without the need for porting; however, they do allow relatively simple, network-centric applications to be written cross-platform. It is Sun's ultimate ambition to expand the class libraries to such an extent that many full-featured, end-user-oriented applications will be written cross-platform. The closer Sun gets to this goal of "write once, run anywhere," the more the applications barrier to entry will erode.
75. Sun announced in May 1995 that it had developed the Java programming language. Mid-level executives at Microsoft began to express concern about Sun's Java vision in the fall of that year, and by late spring of 1996, senior Microsoft executives were deeply worried about the potential of Sun's Java technologies to diminish the applications barrier to entry.
76. Sun's strategy could only succeed if a Java runtime environment that complied with Sun's standards found its way onto PC systems running Windows. Sun could not count on Microsoft to ship with Windows an implementation of the Java runtime environment that threatened the applications barrier to entry. Fortunately for Sun, Netscape agreed in May 1995 to include a copy of Sun's Java runtime environment with every copy of Navigator, and Navigator quickly became the principal vehicle by which Sun placed copies of its Java runtime environment on the PC systems of Windows users.
77. The combined efforts of Netscape and Sun threatened to hasten the demise of the applications barrier to entry, opening the way for non-Microsoft operating systems to emerge as acceptable substitutes for Windows. By stimulating the development of network-centric Java applications accessible to users through browser products, the collaboration of Netscape and Sun also heralded the day when vendors of information appliances and network computers could present users with viable alternatives to PCs themselves. Nevertheless, these middleware technologies have a long way to go before they might imperil the applications barrier to entry. Windows 98 exposes nearly ten thousand APIs, whereas the combined APIs of Navigator and the Java class libraries, together representing the greatest hope for proponents of middleware, total less than a thousand. Decision-makers at Microsoft are apprehensive of potential as well as present threats, though, and in 1995 the implications of the symbiosis between Navigator and Sun's Java implementation were not lost on executives at Microsoft, who viewed Netscape's cooperation with Sun as a further reason to dread the increasing use of Navigator.
C. Other Middleware Threats
78. Although they have been the most prominent, Netscape's Navigator and Sun's Java implementation are not the only manifestations of middleware that Microsoft has perceived as having the potential to weaken the applications barrier to entry. Starting in 1994, Microsoft exhibited considerable concern over the software product Notes, distributed first by Lotus and then by IBM. Microsoft worried about Notes for several reasons: It presented a graphical interface that was common across multiple operating systems; it also exposed a set of APIs to developers; and, like Navigator, it served as a distribution vehicle for Sun's Java runtime environment. Then in 1995, Microsoft reacted with alarm to Intel's Native Signal Processing software, which interacted with the microprocessor independently of the operating system and exposed APIs directly to developers of multimedia content. Finally, in 1997 Microsoft noted the dangers of Apple's and RealNetworks’ multimedia playback technologies, which ran on several platforms (including the Mac OS and Windows) and similarly exposed APIs to content developers. Microsoft feared all of these technologies because they facilitated the development of user-oriented software that would be indifferent to the identity of the underlying operating system.