Bud Tribble and Greg DeMichillie put slide projector, video footage, and white board to use in making their cases before Ronald Whyte August 31, 1998 — In San Jose, CA, today Sun Microsystems Inc. and Microsoft Corp. each offered US District Court Judge Ronald Whyte a tutorial on Java technology, and in the process presented contrasting opinions about what Java is and how it should best be used.The two-hour presentations were designed to bring Whyte up to speed on Java in advance of legal hearings set to begin this month in Sun’s lawsuit charging Microsoft with violating its Java licensing contract.Sun’s point of viewSun’s presentation stressed the importance of developing Java products that comply with specifications laid out by Sun in its Java licensing contract. Microsoft has released products that do not conform to those standards, compromising Java’s ability to create programs that run on any operating system, Bud Tribble, vice president of architecture and technology for Sun’s embedded systems group, told the court. Microsoft’s turnIn its tutorial, Microsoft emphasized what it characterized as shortcomings in Sun’s Java technology, and defended its right to enhance its products in a way that allows developers to put more functionality into the Java programs they build.“The picture is correct, but not complete,” Greg DeMichillie, program manager for Microsoft’s Visual J++ Java development tool, said of Tribble’s presentation.Sun’s Java specification allows software developers to take advantage only of features common to all operating systems, DeMichillie said. The enhancements Microsoft has made to Visual J++ allow developers to make use of advanced features in Windows — like its support for numerous fonts or for playing DVDs (digital video disks), he said. The details of Visual J++ and JNIMicrosoft’s demonstration today is designed to show that Visual J++ is not a threat to Java’s cross-platform development capabilities.Visual J++ works in two modes: one that allows developers to build Java applets that run on any operating system, and another mode for creating applets that take advantage of features specific to Windows operating systems, such as its multiple font types and support for certain hardware products, Nielsen said.Nielsen acknowledged that applets built using J++ in Windows-specific mode will not run on other operating systems. “If you’re using Windows-specific features, (the applet) won’t run on another platform,” he said. But because developers can use the same tool kit to build a cross-platform version of the applet, it does not threaten Java’s cross-platform ability, Nielson said.Microsoft supports Java’s cross-platform compatibility, and expects developers to use the software tool to create both “generic” and Windows-specific applets, he said.Sun has filed for a preliminary injunction requiring Microsoft to alter the Java products it ships so that they comply with its specifications for Java. Hearings about the that injunction are set to begin September 8. Microsoft says all the Java products it ships and that were specified by Sun in its Java licensing agreement pass muster with Sun’s Java compatibility tests. Windows 98 will run Java applets built using Sun’s own Java tools, and Microsoft’s Java tools can be used to develop applets that will run on any operating system that has a Java virtual machine that conforms to Sun’s specifications.At issue in the case is whether the technology in Microsoft’s developer kit that allows developers to build Windows-specific applications is required to fall into line with Sun’s specifications laid out in its licensing contract, Nielson said.That technology is called a Java Native Interface (JNI) — a software layer that sits between a Java applet and the operating system which allows the applet to “tunnel down” and take advantage of functionality native to that particular platform, Nielson said. “All the hooplah about whether Microsoft’s Java is cross-platform compatible has gone by the wayside,” he said. “Now everything is about native interfaces.”Sun offers its own JNI for Windows, but Microsoft says its own JNI, called Direct/J, is better, because it allows users to take fuller advantage of the features in Windows.Microsoft says the JNI was not specified in the licensing agreement it signed with Sun, and Sun should not be able to dictate how Microsoft’s JNI works. So long as Microsoft provides in Visual J++ the ability for software developers to build “pure” Java applications — those that do not employ a JNI — it should be free to include its own JNI that allows developers to take advantage of the Windows-specific features, Nielson said.“Tell it to the judge!”Judge Whyte listened stern-faced to the presentations, occasionally interrupting to ask the presenters to expand on their explanation of technical terms, such as API (application programming interface).Neither Sun nor Microsoft addressed the issue of whether Microsoft’s implementation of Java constitutes an illegal breach of its licensing contract, an issue that will lie at the heart of a preliminary injunction hearing scheduled to begin in San Jose September 8. But the tutorials offered to Judge Whyte clearly were designed to buttress arguments the two sides have indicated they will make at those hearings.In separate presentations that incorporated a slide projector, video footage, and, in Microsoft’s case, a whiteboard, the two representative speakers — Tribble and DeMichillie — both said Java has the potential to save developers time and money by allowing them to write certain software programs that will run on multiple operating systems without modifying them to suit each platform.The cross-platform capability, they told the judge, is made possible by using a Java compiler, a tool that software developers use to turn source code into Java “bytecode.” That bytecode is then run on a Java virtual machine (JVM) — a software program that sits on top of an operating system and executes the Java bytecode, turning it into a usable Java “applet,” or mini-software program, the presenters told Whyte. Tribble tells it like it isSun’s VP told the judge that Microsoft has introduced into its Java products extra features that are not included in Sun’s Java specification. Tribble pointed out that these additional features result in applets being built by developers who are using Microsoft’s products — and that are able to run properly only on the MS Windows operating system.In particular, Tribble said, Microsoft has developed its own Java Native Interface (JNI) — a technology that allows a Java applet to tunnel down and interface with a system’s operating system in order to take advantage of features native to that platform.“It’s a lack of compatibility at the native interface level,” Tribble told the court. Sun has designed a JNI for Windows that conforms to its recipe for Java and which Microsoft could use in its products alongside its own JNI if it chose to, Tribble said. But Microsoft has chosen not to do so, he told Judge Whyte.Also, Microsoft has introduced additional keywords and compiler directives into Visual J++ that can only be recognized by Microsoft’s Java virtual machine, Tribble said. “Microsoft has included a sequence of characters that, if the programmer puts them in (the source code), it will alter the behavior of the compiled program,” Tribble said.DeMichillie’s denouncementsMicrosoft countered that its Java tools allow developers to build two types of applets — those that are specific to Windows, and those that conform to Sun’s specifications and can run on any operating system. Microsoft took this path because Sun’s Java technology contains only a limited number of Java classes — or prewritten packages of code that allow a software developer to easily insert, say, a table or a button into a Java applet, Microsoft’s DeMichillie said.Those Java classes represent a “lowest common denominator” of functionality, in the sense that they only include basic functions that are common to all operating systems. “Not all operating systems include a joystick, for example,” he said.To allow developers to take advantage of more sophisticated features in its Windows operating system, Microsoft included APIs in its Java products that allow developers to access those additional features, DeMichillie said. But he insisted that those enhancements are optional and can be switched on and off by the developer using a mode switch. Microsoft’s Visual J++ can be used to create Java applets that will run on any operating system and are not tied to Windows, he said.In a video presentation shown earlier of developers using Microsoft’s tools, Sun tried to demonstrate how developers can easily be confused by the mode switch that turns off the Windows-specific tools in Microsoft’s Java development kit.In other news…In related news, Sun also submitted its witness list for the September 8 hearing. According to a Sun spokeswoman, the company plans to call three people — Alan Baratz, president of Sun’s Java Software Division; Sun Vice President James Gosling, the main creative force behind Java; and Lee Patch, a Sun lawyer. Sun may also call a fourth witness. The Sun spokeswoman added that the list may be altered somewhat depending on who Microsoft decides to call as its witnesses. JavaTechnology Industry