What a difference a day makes. Two days ago, Microsoft officials painted Java as Sun Microsystems' weapon for "killing" their company.
But yesterday in court in week seven of the U.S. vs. Microsoft antitrust trial, the software giant was intent on portraying Java as the programming language that will never match its promise.
James Gosling, creator of the Java cross-platform programming language, acknowledged in court during the Microsoft antitrust trial that there were problems with Sun's claim that Java is a "write once, run anywhere" developer's tool.
Microsoft Corp. attorney Tom Burt spent the morning attacking Sun's marketing claim. And in a sense Gosling faced a trial by news media, as Burt introduced a series of articles and test studies by computer
publications that were critical of Sun's claims for Java.
The tactic suggested to David Boies, the lead government attorney, that Microsoft is changing strategy. He said Microsoft's cross-examination "seems to suggest that Java really wasn't much of a threat."
Microsoft's argument, said Boies outside the courtroom, is that Java would have died anyway, "is a little bit like saying if somebody shoots you they can defend it by saying that you have cancer."
But Tod Nielsen, general manager of developer relations at Microsoft, also speaking outside the courtroom here said that in1996 the company at first viewed Java as a threat to its operating system, "but it turned out that the promises were bigger than the facts."
Nielsen said Java's cross-platform promise "is technically impossible and is not going to be delivered upon," he said. "The Java platform is not a threat to Microsoft."
The U.S. Department of Justice (DOJ) is trying to show that Microsoft's attempt to distribute a version of Java incompatible with Sun's own arose out of its fear that Java's growing popularity would weaken Microsoft's monopoly on the operating system market. Sun is currently pursuing a lawsuit against Microsoft charging that it violated the terms of its Java licensing agreement by distributing incompatible implementations of Java.
The issue goes to the heart of Sun's allegations that Microsoft's version of Java threatened to make the most widely distributed version of Java technologies incompatible with the standard Java language developed by Sun -- thus undermining Sun's efforts to allow Java-based applications to run
on a wide variety of operating systems.
On the witness stand, Gosling disputed some of the testing results in the magazine articles, and Boies questioned the reliability of some of the tests, saying they weren't done by scientific review.
Burt, however, said that the articles were extremely relevant because Microsoft and Sun were in a "competition for the hearts and minds of developers."
Gosling said repeatedly on the stand that there were problems with the initial versions of the Java Developers Kit (JDK). "This issue of compatibility is a function of time ... it is getting better," he said.
Gosling also took issue with some of the test data presented by different articles. In response to one article that tested the compatibility of different Java applets, he said, "I think that's completely false. I don't
where they got their test data, I don't know how they performed the test."
Microsoft is claiming that Sun has greatly overstated Java's capabilities and that the programming language can only achieve portability unless there are significant trade-offs in performance and functionality. Microsoft has been arguing that its specific implementation is better and preferred by
And to show the claims by Sun are not unique, and that previous efforts to develop cross-platform languages have failed, Burt turned the clock back to 1978 and cited a textbook on the C programming language in which the authors had claimed that C was a portable language. Many of the claims made
in the book are similar to what Sun has said about Java.
But Gosling said the situation is considerably more complicated. He said C was "an incredibly powerful example of how standards get twisted."
As C language compilers were implemented for different operating systems dramatic variations between them emerged. Gosling said he conceived of Java in part "from the scars that I acquired in doing C porting."
"One of my goals in building Java was not to live through that fragmentation again," he said.
Gosling said that Sun was "working very hard" to improve Java's cross platform capability. "One of the main reasons why we started our lawsuit in San Jose was to make sure that this problem got better, not worse."
Two weeks ago, Sun was granted a preliminary injunction by a U.S. district court in its Java technology lawsuit against Microsoft Corp. Judge Ronald Whyte of the U.S. District Court in San Jose, Northern District of California, ruled that Sun is likely to prevail in the case, and ordered Microsoft to make changes to its products so that they include an implementation of Java that will pass Sun's Java compatibility test suite.
(Patrick Thibodeau is a senior writer for Computerworld.)