Sun Microsystems Press Teleconference

October 7, 1997 -- Alan Baratz, president of the JavaSoft business unit of Sun Microsystems:

Good morning everyone. As you know if you've seen our press release this morning, we have filed a lawsuit against Microsoft in a United States District Court today. We have taken this action because we believe it is necessary to preserve the value of the Java technology and the value that the Java brand represents to an entire industry.

For the past more than six months, Microsoft, one of our 117 licensees of the Java technology, has publicly disputed its obligation to abide by the contract requiring it to implement the full Java Developer Kit 1.1. That dispute reached beyond the "spirit" of the law and into the "letter" of the law last Tuesday, when Microsoft began shipping a final version of Internet Explorer 4.0. By not shipping the complete JDK 1.1 in the final version of IE 4.0, Microsoft has deliberately breached its contractual obligation.

Now, you might ask why we weren't able to settle this issue with Microsoft out of court. The fact is, we worked very diligently over the past six months to resolve these issues. We have offered numerous solutions. Each time we came close to an agreement, Microsoft went in another direction.

What became abundantly clear in our negotiations is that Microsoft has no intention of honoring the contract. They have stated so publicly and have proven this based on their actions. Rather than comply with its obligations under the contract, what Microsoft has done is embarked on a deliberate course of conduct to fragment the interfaces to Java, to break cross- platform compatibility and to deliver a technology which some might think is Java but only works on Microsoft products.

As a result, we have filed suit today citing Microsoft with trademark infringement, false advertising, breach of contract and unfair competition. We are seeking an injunction against Microsoft, preventing them from using the Java Compatible logo, from issuing misleading statements proclaiming to be fully compatible with JDK 1.1, from delivering anything but fully compatible Java technology implementations and seeking damages for their efforts to undermine the value of Java and the Java brand. But let me be clear, our goal is to get Microsoft back into compliance.

Now let me give you a bit of background.

As I said, we have spent more than six months in discussion with Microsoft over its statements of intent not to remain compatible with Java. The contract specifically requires that by the time they ship a finished product that uses Java, they must be fully compatible. Microsoft has steadfastly and very publicly refused to ship two key pieces of the Java platform, the JDK. The first of these is JNI, a virtual machine interface for invoking native programming code. And the second is RMI which stands for remote method invocation which enables programs written in the Java programming environment to communicate between different computers.

Without these key interfaces, Microsoft is unable to pass the Java Compatible test suites that they are contractually obligated to pass as a part of the contract. Immediately after downloading IE 4.0 last Tuesday we began testing it for compatibility. Those tests concluded this past weekend, and as you would expect the tests failed.

These deliberate violations, especially in conjunction with Microsoft's concerted PR and marketing campaigns to "FUD" the Java technology, would be egregious enough. But what we have found in our testing of Microsoft's implementation of Java is far, far worse.

Microsoft deceptively altered key class libraries to Java and then inserted this altered version in their "SDK" development kit. Developers who invoke these Java classes will believe they are writing cross-platform Java applications, when in fact they will be writing Windows. Java developers using the altered portions of the SDK will find those applications run only on Internet Explorer 4.0.

While doing this, Microsoft has publicly stated on its web site and elsewhere that the SDK and Internet Explorer are fully compatible with JDK 1.1.

Now I would expect Microsoft to say that they have no obligation to do what we contend they must do as a part of the contract. But the fact is they have exactly that obligation.

Microsoft will also likely claim that all they were attempting to do in changing the libraries was to make Java run well on Windows. First, we encourage all our licensees to incorporate Java on their platforms. But they must clearly delineate between Java and their platform. There can be no confusion. My second point is that all licensees are also encouraged to offer improvements to the APIs and class libraries. This is done as a part of the Java community, however, not unilaterally and not secretly. Suggestions for changes within the Java API may be offered for incorporation within the core platform. This is a well established process which the entire Java community uses. Microsoft, of course, knows this very well.

They also know that by causing confusion in the market, they have a better chance of impeding or co-opting Java. We will not stand by and let that happen.

One of the key questions we would expect is "What about Netscape and others?" Have they all passed the compatibility tests? There are at the very minimum three major differences between Microsoft and Netscape in this arena.

First, Netscape has never claimed to be shipping a complete, compatible version of JDK 1.1. Netscape has been very clear with developers on this point. But second, Netscape has committed to implementing the full JDK 1.1 and we are working with them to accomplish this goal. In fact, Netscape has committed to delivering a fully compatible implementation of JDK 1.1 in their next major release. Third, Netscape has a long history of demonstrated cooperation with Sun. Each time we have noted inconsistencies in their implementation of Java, they have responded and fixed the problem.

This, I might add, is the way the partnership works. As the stewards of this technology, we will go the extra mile to ensure that the licensee is able to implement a fully compatible version of Java.

Another question I would expect to be asked is what this means for Windows developers. I am happy to report that developers can still write 100% Pure Java applications and applets and be assured that they will run on Windows. They have the option of embedding Sun's Java Performance Runtime for Windows in the application, at no charge, to allow it to run on the Windows platform. In addition, Java applets can still be safely run on Netscape Navigator on Windows.

The Java brand has enormous value in the industry. When developers or end- users see the cup and steam and the word Java, they know they can expect certain things: the ability to write a program once and run it anywhere, to do so safely, and to have scalability that is unprecedented in the computer industry.

We don't embark on lawsuits without careful consideration of all the alternatives. Our history as a company will prove this.

But we also do not take lightly our responsibility to the Java community. To allow one company to so flagrantly violate the terms and conditions of the contract is a major disservice to the other 116 licensees. It is also a major disservice to the 700,000 programmers who believe in Java and expect Java programs they write to run anywhere. It is a major disservice to the thousands of companies who are implementing Java solutions within their organizations.

If you look at our web site today, or talk to any of our other licensees, you will hear a very consistent story. They believe in the value of Java as defined by the industry. They believe in Write Once, Run Anywhere, in Safe Network Delivery, in Smart Card to Supercomputer Scalability.

The industry is on our side in this matter. Each licensee would expect the same action for anyone who did not live up to their contractual obligations. The bottom line is that Microsoft has to play by the same rules as the rest of the industry. The entire industry has embraced Java as a part of its genetic code and is committed to what Java stands for. The industry trusts Sun to do the right thing and that's exactly what we're doing.

I urge you to talk to the industry about their belief in Java. The message back will, I am confident, be loud and clear.

Thanks for taking the time to listen.

Question and answer session follows.

Sun spokespeople on this call:

Alan Baratz, president of the JavaSoft division of Sun Microsystems
Mike Morris, vice president and general counsel of Sun Microsystems
George Paolini, director of corporate marketing, JavaSoft division of Sun Microsystems
Carla Schroer, engineering manager for Java compatibility, JavaSoft division of Sun Microsystems

Operator: David Banks, from the Wall Street Journal.

Banks: Hi Alan. Can you describe JNI and RMI more completely as to what they do and also the extent to which Sun supports both of those features and the extent to which Netscape supports both of those features, as well as Microsoft?

Baratz: Sure. JNI is the Java Native Method Interface. JNI is the interface through which a Java application developer can access native code: C or C++ code that lives on the operating system. In some cases this is needed because of the fact that there is functionality that has been written natively that doesn't yet exist within the Java environment and the developer for time to market reasons would like to reuse that native code. The JNI interface would allow the Java application developer to invoke native code, C or C++ code, that lives and runs on the underlying operating system.

RMI is what we called the Remote Method Invocation Interface. RMI is the mechanism that allows Java developers to write applications that communicate with other Java applications living on other computing systems. So, one Java application can invoke another Java application on another system and the two of them can communicate and work together to accomplish a task through the RMI or the remote method invocation interface.

JNI and RMI are fully implemented in the JDK 1.1 reference implementation from Sun. Any licensee that ships an implementation of JDK 1.1 is required to support these interfaces because these interfaces are required to pass the compatibility test that they are contractually obligated to pass. At this point in time Microsoft is shipping IE 4 with what they claim to be compatible JDK 1.1 but it does not pass the compatibility test specifically in the areas of JNI and RMI.

But there's another important point and that is that, in addition to the problems with JNI and RMI that have been discussed in the press for a number of weeks, possibly even months now, in testing IE 4 over the last week what we found is that Microsoft has modified some of the reference APIs for Java provided by Sun and has added some new APIs in a way that would trick developers into thinking they were a part of the reference from Sun. All of this not allowed under our contract because, once again, the compatibility test identifies these problems and call out the fact that the problems exist. So at this point in time Microsoft is in breach of our contract because they are delivering IE 4 with what they claim to be compatible Java, but it is not compatible because it violates our tests in the areas of JNI, RMI and the addition of some additional interfaces.

Operator: Kimball Brown, DataQuest

Brown: You didn't really expect Microsoft to fully follow all these standards. If they completely adhere to your standards, then they risk losing their franchise, right?

Baratz: Yes, we did fully expect Microsoft to honor their licensing agreement and as a result their commitment to us. We entered into this agreement with them over a year ago. They understood what the contract said. We understood what the contract said and yes, as a matter of fact, we fully expected Microsoft to honor their contractual obligation and their commitment to us and the industry.

Paolini: This is George Paolini. I'll go a step further and say we do expect. This action is to get them back into compliance and we do expect them to honor that in two contracts.

Brown: Well, my point then--lawsuit aside, that could take years. At what stage do you cut them off from Java?

Baratz: This isn't cutting them off from Java. We should be clear about that. This is not revoking their license. This is getting them to honor their license. Honor their contract.

Brown: Suppose we assume they have no intention of honoring it, when do you cut them off? This is going to take a long time to get through the courts.

Baratz: Let me try to answer that question. At this point in time, we have a lawsuit pending against Microsoft for as we said trademark infringement, false advertising, breach of contract, unfair competition, interference with prospective economic advantage and inducing breach of contract. In this period we actually will be withholding ongoing technology from Microsoft until we get this issue resolved. Our hope, though, is that we can get this resolved rapidly, get Microsoft back into compliance, so that they will once again become a contributing member of the Java community.

Operator: Eric Brown, Forester Research.

Brown: I have just a couple. First of all, are there any other vendors--or are there any vendors--who are currently shipping a 1.1 implementation that passed the test without exception or waiver?

Baratz: Yes. Borland, Symantec and IBM are all shipping JDK 1.1 compatible implementations that passed the test suite.

Brown: I would think Sun is included in that list as well.

Baratz: Of course Sun is included in that list. I thought you said any other and I interpreted that as an addition to Sun.

Brown: My other question is, is it an option for Microsoft to decide that in fact they are going to choose to use the letter J in lieu of Java, stop using the logo and part ways? Is that an acceptable outcome for you?

Baratz: At this point Microsoft has the benefit of an enormous amount of intellectual property from Sun that's been delivered to them under this licensing agreement and, you know, in return for that benefit to them they have made commitments back to us. At this point in time, our view is that Microsoft must come into compliance with the agreement.

Brown: So in that case Sun would revoke the license, right?

Baratz: Our goal is for Microsoft to come back into compliance with the contract, to honor their commitment to us and to the Java industry.

Operator: Michael McCarthy from Web Publishing Inc.

McCarthy: To what extent, if any, do you think that Sun's case could be compromised by Scott McNealy's anti-Microsoft rhetoric in which he argues Java will help damage Microsoft's hegemony over the operating system world? Baratz: This is not about rhetoric. This is not about Sun. This is purely and simply about the fact that Microsoft has clearly breached a contract.

McCarthy: So you're narrowly drawing a case. Baratz: And we have worked with Microsoft for over six months to avoid reaching this point but they have refused to come into compliance with this agreement and as a result we must take this course of action. It's about that and nothing else.

McCarthy: So you're narrowly drawing the case based on the JNI/RMI problem. Morris: We're not narrowly drawing the case. The case is as broad as it needs to be based on the contract. This is a lawsuit on the contract, and when Alan said that's all it is that's what he meant. This is a contract breach case.

Operator: Dwight Davis, Windows Watcher's Newsletter.

Davis: Good morning, Alan. I have a couple of questions relating to the contract itself. Since this contract went into effect, I believe, before JDK 1.1 was in fact a completed product or specification, that suggests that the contract itself is sort of open ended and that Microsoft has somehow committed to supporting anything and everything that comes on down the line that Sun specifies as being part of the evolving Java realm of technologies. Can you explain if in fact that is what Microsoft has committed to? And as a follow on, Microsoft is claiming that it can't in fact publicize the actual terms of the contract, that only Sun can do that and notes that Sun has in fact not published the actual contract language. Is there some reason why you are not doing that?

Morris: This is Mike Morris. Let me address the last point. The contract includes a clause making the contract terms confidential. Accordingly, we don't have a unilateral right to publish the contract. Microsoft does not have the unilateral right to publish the contract, and we therefore filed the compliant with the contract as an exhibit but the exhibit is being kept confidential by the court. For the same reason, we are not at liberty to discuss with you the precise terms and conditions of the agreement. However, what I can say and will say is that every one of our licensing agreements is identical with respect to the fact that our licensees are committing to ongoing compatability for the life of the contract. And so, yes, upgrading to new versions of the JDK is required. Passing the new compatibility test associated with this new version of the JDK is required by all of our licensees. Under the terms and conditions of our contract.

Operator: Maureen O'Gara from Client Server News.

O'Gara: Alan, isn't Microsoft the reference implementation for Java for Windows and don't they have a right to define all the VM level interfaces such as the Native Code interface?

Baratz: No, Microsoft is not the reference implementation for Java on Windows or on any other platforms. The only company that has the right to define interfaces to the Java platform is Sun Microsystems.

O'Gara: Is Sun completely in compliance with these tests?

Baratz: Sun is completely in compliance with the compatibility tests for JDK 1.1.

Operator: Peter Coffee with PC Week.

Coffee: Good morning. Three quick questions. Microsoft's spokesperson Cornelius Willis, has said that they believe it is inappropriate for them to be required to implement in effect another entire operating system on top of the one they sell. Has Sun ever stated in any formal way what they considered to be the reasonable perimeter of what is Java technology as opposed to what functionality in the area of network services in particular should reasonably be reserved to the underlying platform?

Baratz: First of all, let me say that Microsoft like all of our licensees is contractually committed to remaining compatible with each new version of the JDK as identified by passing the compatibility test associated with that new version of the JDK. Period. End of story. The contract is very clear on that point. Now, I should also say that Java is not an operating system. Java is functionality that enhances any existing operating system by providing a new object oriented programming environment that is common across all operating systems. Java provides a way for developers to write code that uses the underlying OS functionality but commonly across all operating systems to achieve write once, run anywhere. And, yeah, every one of our licensees is contractually committed to remaining compatible with the functionality that we deliver and the interfaces that we deliver as we up level those capabilities going forward.

Paolini: This is George. Cornelius can call it whatever he wants but what we are defining as the JDK is done as an industry consortium. We are doing this as a group. This is a group of industries that is working with us, cooperating with us to define these sets of APIs. That's what defines the JDK.

Baratz: And Microsoft as a licensee had been invited to participate in all of the initiatives, to contribute to the evolution of the Java interfaces and the Java functionality.

Coffee: Okay, at what time did Microsoft come into possession of the test that IE 4 would have to pass?

Baratz: We delivered to Microsoft the reference implementation for JDK 1.1 along with the compatibility tests associated with that in February of this year.

Coffee: Thank you. The last question, your press release refers to the remedies you are seeking in terms of the injunction against use of the logo and so on. I note that you do not mention in the press release that you are seeking as a remedy specific performance of the contract. That reinforces the question that was asked before, are you really just trying to deter them from their current conduct at the risk of being cut off from the Java community or why is specific performance of their contract not listed as a remedy that you're seeking?

Baratz: At this point what we are trying to do is to get Microsoft to honor their contractual commitment in the industry and to come into compliance with JDK 1.1 by passing the compatibility test. That is our goal here.

Operator: Murphy, Earth Web.

Murphy: Good morning ladies and gentlemen. I seem to recall early in the year that Sun's license to all of its licensee had a clause in it that allowed a 60 day period of compliance, or a window of compliance. Why are you taking this measure at this time if that is indeed the case?

Baratz: There is a period of time associated with each of our licensees upleveling to the next version. That period of time has elapsed for Microsoft and as a result under the terms and conditions of the agreement, they should now be shipping a fully compatible version of JDK 1.1.

Operator: Debbie Gage, Computer Reseller News.

Gage: I'm wondering if this is the first time Microsoft has altered APIs and if there was anything like developer complaints or anything like that led you to test these or if these are just routine compatibility tests?

Baratz: This is the first time we have identified any altering of APIs by Microsoft. We identified it basically as a result of running the compatibility tests and there is one specific test in effect called the signature test that does check the APIs for compliance. It failed that test.

Gage: Is it acceptable for Microsoft to make this JNI and RMI available in some other way, like on their Website, you know, separately from their shipment?

Baratz: It would be acceptable for Microsoft to make RMI available through alternate channels, not necessarily bundled, but they must make it available. I do not say that for JNI.

Operator: Mark Crocket from MSNBC.

Crocket: One quick question. Are you seeking any damages? I don't see anything outlined. I assume you aren't.

Morris: We are seeking damages.

Crocket: How much?

Morris: We have not specified the amount.

Crocket: Can you specify how they would be calculated or what they would be based upon?

Morris: Based upon the proof of the case as it is presented to the court.

Operator: Rick Boyd Merritt from EE Times.

Merritt: Can you specify any specific APIs that Microsoft has put into any of their products and what incompatibles they might cause?

Baratz: There are a set of--on the order of 40--additions or modifications but maybe I could just give you an example of the type of thing that we found. There's an interface within Java that allows a developer to query to find out a piece of information like what color is currently painted at some point on the screen. The kind of thing that Microsoft has done is alter that interface so that when you query you have the ability to query for additional information but in altering the interface if all you want to do is query for the color at the point on the screen, you have to use the extended version of the interface to get the answer. And so they've just changed the interface that the developer would need to use to be able to get the functionality which means code written to run on IE 4 using that interface would not run on all the other compatible versions of Java and code written to run on the other compatible versions of Java would not run on IE 4.

Operator: Anne Thomas, Patricia Seybold Group.

Thomas: Actually my question is a continuation of the last one. You said they've added new classes. Have they actually added new classes with the prefix of Java?

Baratz: Let me let Carla Schroer answer that question.

Schroer: Actually what they've done is added methods and fields onto Java classes in the Java hierarchy so these are classes identified as Java classes in the AWT package, the LANG package and the IO package. What they have done is add about 50 methods and about 50 fields into our public API.

Baratz: That's really the crux of the matter here because the Java class hierarchy is the place where developers go to find the reference interfaces. Additions can be made but they need to be made outside of the class hierarchy. In this case Microsoft has made them within the Java class hierarchy and so this tricks developers into believing that these interfaces are part of the reference standard for Java.

Operator: John Markoff from The New York Times.

Markoff: Quick follow up on David Beck's question. He specifically asked about Netscape and whether they were in compliance. I noticed when you mentioned the three companies you did not mention Netscape. What's Netscape's standing?

Baratz: If you recall in my opening remarks I alluded to the fact that Netscape is not yet shipping their 1.1 and they have not said to the world that they are shipping their 1.1, however, they have committed that when they do ship their 1.1 it will be fully compatible and pass the test suite, and they have committed that will happen in the next major release. It's a timing window here. Microsoft came out first with what they claim to be their JDK 1.1 compatible implementation. Netscape will be coming out a little later and the problem we've got is that in the Microsoft implementation that they claim to be 1.1 compatible, they are just not compatible. They do not pass the test and so they are in breach of the contract.

The problem here is that Netscape has every intent and has made a commitment that when they ship they will ship compatible 1.1. Microsoft has shipped and it is not compatible, despite the fact that they're saying it is.

Operator: Joe Barr, DweebSpeak

Barr: I've got two quick questions. Number one, it sounds as if the contract terms may not be the same for all licensees. I'm guessing that's the reason for the confidentiality. If that's true, does that mean that the compatibility testing would be different from one licensee to the next?

Baratz: The contract terms and conditions are substantially the same for every licensee; however, each contract because these are source code licenses with rather complete intellectual property clauses, every one of the licenses is negotiated individually with the licensees. So there are minor differences between the individual contracts. However, they are substantially the same and with respect to the need to continually uplevel and with respect to the need to always pass the compatibility test when you ship a new version of the product, they are the same.

Barr: One other question. Would you please clarify exactly what your injunction is asking?

Morris: We are asking the court to enjoin Microsoft from use of the Java compatible logo until such time as they are shipping compatible product.

Operator: Ted Bowen, InfoWorld.

Bowen: Have you identified any of the other 116 licensees who have made claims violating the contract?

Baratz: I'm sorry I'm not sure I understand the question.

Bowen: Whether you have identified any of the other 116 licensees who have made claims for --

Baratz: If what you're asking is whether any of the other 116 licensees are in breach of the agreement, then the answer to that is that at this point in time, no.

Operator: Sarah Stirland, Wall Street & Technology Magazine.

Stirland: I was just wondering, in light of the fact that Netscape is going to be coming out with a fully compatible JDK browser, why don't you just let the market decide which browser is better and just let Microsoft fall on their face rather than just taking this extra step?

Baratz: This is not about which browser is better. The Java technology was designed and delivered to the marketplace with one very clear value proposition: Write Once, Run Anywhere. Java is all about finally giving developers the ability to write applications without worrying about which platform they are going to deploy them on. The technology was designed to support this. The licensing agreements were all established to support this. This is about Microsoft breaching their contract with us to deliver a compatible implementation of Java and preserve the Write Once, Run Anywhere value proposition in Java.

Operator: Maureen O'Gara. Go ahead with your follow up question.

O'Gara: You said before you're going to withhold IP at a certain point. Can you tell us exactly when that point is and whether you're not concerned about getting into the same problem that Intel got into when it tried to do that against DEC? Claims of antitrust.

Morris: The short answer is that point has been reached and in answer to your second question, no.

O'Gara: So what are you withholding from them, exactly?

Baratz: Remember, on an ongoing basis we are adding new functionality to the Java platform, new interface to the Java platform that yield new versions of the Java platform. For example, we have just delivered to our licensees an alpha version of what we call the Hot Spot technology. That is, a new very high performance virtual machine that allows Java applications to run at the same speed as natively compiled C++ code. That is an example of something that until this dispute is resolved, we would not make available to Microsoft.

O'Gara: Are you going to move very rapidly on this logo injunction?

Mitchell: As rapidly as the court allows.

Operator: Dwight Davis, please go ahead with your follow up question.

Davis: One thing that Microsoft has constantly claimed is that there are a large number of people out there who would like to work with the Java language but write specifically to the Windows platform and by extension, specifically to other native operating system platforms. Can you just give us Sun's stance on that claim. Is that something that you would say within the context of Java that is not permitted?

Baratz: No, that's the reason for the native method interface. The Java native method interface allows Java application developers to write Java applications that can invoke and utilize underlying native codes.

Paolini: Every developer has to make a choice. If a piece of functionality they believe is not available in Java and they want it and it's available on a platform specifically on that platform, they have to decide whether they want to make the trade-off. Do they want the functionality or do they want the cross platform capability of Java. The point here is that that's a decision a developer should make consciously, not unconsciously or unwittingly. That's the issue here around the hidden field and method we've been talking about.

Davis: And in fact if Microsoft comes forward with its own technology, namely JDirect which is not based on JNI to use Java to write to Windows, that, in fact, would be out of compliance with their contract.

Baratz: No, I think we should be clear here. All of our licensees do have the ability to extend the Java platform. We have no problem with Microsoft adding their own native method interface and they've added one called RNI. Or to introducing JDirect. The problem we have here is first of all, that Microsoft is not including functionality that we have specified is a part of the platform, so they've deleted some things like JNI. We'd be happy for them to support JNI and RNI and JDirect but at a minimum, under the agreement with them, they must support JNI. They must pass the test sweeps associated with JNI and they have chosen not to do that.

Secondly, the problem we have with the things Microsoft has added is the way in which they've been added. It's okay for Microsoft to add a new interface if they make it clear to developers that this is a Microsoft-specific new interface. Unfortunately, what Microsoft has done by adding new interfaces into the Java code package is that they are tricking developers into thinking that these modifications are a part of the reference and as a result, supported on all platforms. They're tricking developers into thinking it's safe to use them in their actual runs across platform when in fact they won't. So the problem on the additions is in the way they did the addition.

Operator: Jeff Hinosky, Bestmer Trust Company.

Hinosky: Just want to make one thing clear. Is Microsoft shipping an SDK in non compliance today or are we just talking about IE 4.0?

Baratz: We are talking about both IE 4.0 and the Microsoft SDK for Java in beta form today.