Sun Microsystems and Microsoft each offered US District Court Judge Ronald Whyte a tutorial yesterday 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 next month in Sun's lawsuit charging Microsoft with violating its Java licensing contract.
Sun'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.
In its tutorial that followed Sun's, Microsoft emphasised what it termed the shortcomings of 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 that are 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.
Judge Whyte listened stern-faced to the presentations, occasionally interrupting to ask the presenters to expand on their explanation of technical terms, like "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 which will lie at the heart of a preliminary injunction hearing scheduled to begin here Sept. 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 drew on a slide projector, video footage and in Microsoft's case a white board, the two 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 needing to modify them for each platform.
The cross-platform capability, they told the Judge, is made possible by using a Java compiler, a tool that is used by software developers use to turn source code into Java "byte code." That byte code is then run on a Java virtual machine (JVM) -- a software program that sits on top of an operating system and executes the Java byte code, turning it into a useable Java "applet," or mini-software program, the presenters told Whyte.
Sun's Tribble told the judge Microsoft has introduced extra features into its Java products that are not included in its Java specification. These additional features result in applets built by developers using Microsoft's products only being able to run properly on its Windows operating system, he said.
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 operating system.
"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 Java classes into its source code that can only be recognised 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 code," Tribble said.
Microsoft 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 application programming interfaces 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.
"Sun's inner classes are fully supported, but a developer has the ability to add functionality where he chooses," DeMichillie said.
In a video presentation shown earlier of developers using Microsoft's tools, Sun tried to demonstrate how developers can be confused by the mode switch that turns off the Windows-specific tools in Microsoft's Java development kit.
In related news, Sun also today submitted its witness list for next week's 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. -- with the possibility of calling a fourth witness. The Sun spokeswoman added that the list may be altered somewhat depending on who Microsoft decides to call as its witnesses.