MS offered us poison pills, says Java guru

Gosling's cross examination concludes with him largely undented

Microsoft's knife, and poison pills, added drama to the evidence of Dr James Gosling, Java inventor and Sun VP. Gosling had been hanging around Washington for a week while Farber was giving his evidence, waiting to be called again, and for this reason did not know that the new version of Java had been called 2.0 rather than 1.2. The inability of senior IT staff to use email when on the move is a constant source of wonder to The Register. Tom Burt, Microsoft's associate general counsel, continued his cross-examination. JavaScript was discussed, and Gosling's view was that Netscape "was trying to shoehorn a bunch of disparate piles of stuff into the same container and it's looking more like Frankenstein's monster than a coherent whole". These revelations as to what the major players in the industry think about each other and their products are becoming a fascinating sidelight of the trial. Burt continued endlessly to examine the minutiae of Java, but Gosling gave no ground at all. There was certainly no technical point that Burt could win against him. Burt led himself into trouble several times by seizing some quotation. For example Gosling saying that he was aware that Microsoft takes the position that there are "technical reasons" for making IE and the Microsoft JVM part of Windows 98. Burt then taunted Gosling that he wasn't privy to the "technical reasons". Gosling replied that Microsoft had made a blanket assertion, and that it was a business decision, not a technical one, that Microsoft had taken. When Burt finally asked the odd question about Gosling's testimony - particularly the ways in which Microsoft had harmed Java - he won no points. Gosling had said in his written testimony that Microsoft extended Java unilaterally, adding support for incompatible keywords or additional Java instructions; Microsoft added compiler directives (to support calls to Windows-only APIs); and consequently programs cannot run on non-Microsoft JVMs. Microsoft also omitted the standard Java JNI (Java native interface) and substituted RNI, J/Direct and COM. Nor does Microsoft support RMI, a method of sharing software components, and uses only COM. Finally, until recently, Microsoft included modified public class libraries that made it impossible to run the resulting code on a non-Microsoft JVM. Burt whinged that Microsoft had not been invited to join a discussion group about the native code interface. Gosling told him that Microsoft had previously indicated that it was not interested in cross-platform issues. Microsoft tried to convince Sun to support COM by means of a single model, in which case Microsoft would support JavaBeans, but Sun was firm that it would not do anything to compromise the cross-platform capabilities of Java. Burt showed his ignorance by suggesting that JavaBeans was similar to COM: Gosling told him COM was closer to JNI (Java native interface). Burt complained that Sun was putting pressure on Microsoft to support JNI, because of its contractual obligation to do so, but he moaned that Netscape was not forced to be compliant. Gosling forthrightly told Burt that the difference was that Netscape wanted to be compliant and had been discussing this with Sun. The outcome was an agreement whereby Netscape would provide an interface into which any compliant JVM could be plugged. Netscape's problems had started when Microsoft decided not to charge for IE, resulting in financial difficulties for Netscape. Netscape was the primary distributor of the JVM until Microsoft signed up. With Microsoft shipping a non-standard JVM and Netscape's market share declining, the problem of distributing a pure JVM was becoming a serious problem for Sun. This particular reason for Microsoft going for Netscape has not been widely reported. Burt continued his tricks of producing articles using them as proof of dates. A January 1998 issue of Byte gave Burt the lead that "As late as January 1998..." but the reality was the article was probably written in September or October at the latest, and distributed in late November. He was not at all anxious to recognise that Java had improved substantially from release to release, and kept quoting out-of-date incidents that, when attacked, did not reflect well on his case. Burt's technical knowledge was frequently insufficient, for example when he claimed that Sun Java products would not pass Sun's Java test suite. Gosling patiently explained that a hot Java browser does not need to pass the JNI tests because it is not a JVM. Burt tried to claim that developers could test programs with the Microsoft JVM, but Gosling quickly pointed out that this would not test whether the code ran on other platforms. Although Microsoft had told Sun that it wanted to make Java applications able to access Windows API before Microsoft signed the licensing agreement, Gosling said there was no problem with "Microsoft adding ways to access the underlying platform facilities... [but] there never was any intention... to allow Microsoft to change the language and violate the specifications." Gosling added that Microsoft could have achieved this without violating the specification, and could have come to Sun with a proposal. "We generally assumed people were being honourable," Gosling added rather pointedly. Then came the martial arts: "Microsoft was, as the one email said, holding out their hand to us. But our view is that often when Microsoft was holding out their hand, there was a knife in their hand, and they were expecting us to grab the blade... we kept feeling like we were put in this position where Microsoft was saying, 'here, adopt this technology' and we were saying, 'but this technology, while it solves the problem for the Microsoft VM on the Microsoft operating system, doesn't solve the problem for any of our other licensees, and so it sort of fails the test of interoperability and cross-platform portability'. "And this happened on several occasions. It happened with COM. It happened with the packaging format where Microsoft wanted us to adopt the jar format. It happened with their debug API where they wanted us to adopt something that really only worked with the Microsoft VM. We were feeling very frustrated. On the one hand, we really, really wanted to co-operate with Microsoft, if only Microsoft was making offers to us that actually met sort of our number-one goal of interoperability and portability." Foolishly, Burt introduced an internal Intel email that said "As part of rewriting the Java VM, Microsoft has completely changed the internal object model to accommodate COM. We think they have not told Sun, and this may be an issue for Sun." Burt became very cross when Gosling pointed out that the necessary steps to make the Microsoft's Java implementations standard, as ordered by the San Jose court in its preliminary injunction, had only taken Microsoft a few weeks. Burt raged that Gosling did not know how many man hours of work it had taken. David Boies' redirect examination for the Department of Justice reinforced Gosling's solid innings, at the end of which his wicket was intact. Boies picked up one of Microsoft's exhibits and noted that Burt had not asked Gosling to comment on a passage that said: "Java gives Sun a chance to break away from Microsoft monopoly". A Microsoft document introduced by Boies said that "NC and Java are platform challenges" and continued to discuss "possible emergence of a set of APIs and underlying system software that lead to lesser or no role for Windows." The continuing Microsoft concern about Netscape was seen again in an email from Paul Maritz to Bill Gates on 14 July 1997: "If we look further at Java JFC being our major threat, then Netscape is the major distribution vehicle." Another jolly Microsoft stratagem was: "Strategic objective: kill cross-platform Java by growing the polluted Java market." Gosling noted that the pollution took the form of making things easy for Microsoft, and difficult for everybody else. Boies drew Gosling out to explain how Microsoft had approached Sun to use Microsoft's CAB format instead a JAR (Java archive) file. Of course it would only work on the Windows platform. He went on: "It was sort of like their version of friendship was just take what we give you, and all of these things are essentially poison pills that break cross-platform portability." Boies gained another highly-credible expert opinion when he asked Gosling if there was any plausible technical reason to design Windows 98 in a way that makes it difficult to remove IE. Gosling: "I sure can't think of one." Many times Judge Jackson asked his own questions, and thereby demonstrated that he has grasped the technical fundamentals necessary for him to decide the case. At one point he wanted to know what "middleware" was, and Gosling replied rather wisely that it "tends to be a term that's used in various people's marketing brochures". He also asked Gosling whether it was the case that Microsoft produced more quickly a better version of what Sun was doing. It is interesting that many reports before the transcript was available have characterised this last exchange as a criticism of Sun's Java. However, it was clear that the judge was really seeking an elucidation. Gosling appeared to satisfy the judge when he explained that Microsoft's Java was not better because it was tied to the Windows platform, and deliberately prevented interoperability, and that Sun's work involved consultation across the industry. Gosling then said that "this whole community process, I think, leads to something that is better in some long-term technical sense, better in terms of community involvement, and it still lives within the whole principle of being cross-platformed" was very important. ® Complete Register trial coverage

Sponsored: Designing and building an open ITOA architecture