April 13, 2004

Gosling defends Sun's new partnership with Microsoft

Author: James Gosling

Since the announcement of Sun's settlement with Microsoft over Java, there has been a lot of rampant speculation echoing back and forth over the net. A lot of it reads like bad conspiracy-theory stuff. People have been reading between the lines and making stuff up. This echos around the rumor mill and gains the appearance of fact. I'd like to try to set the record straight on a number of points.

In Rick Ross's "Where Is Java In This Settlement?", he worries that Sun may have sold out the Java community. We didn't. We have not sold our soul to the Dark Side. We haven't overnight turned into mindless lap dogs. We've had a lot of experience with Microsoft over the years, and it has made us very cautious.

Green did not leave Sun 'in disgust'

One of his big concerns was about the departure of Rich Green, which the rumor mills say left Sun "in disgust" (as reported in The Register). This is unbelievably far from the truth. Rich Green was my boss, I was with him day after day. Rich worked very hard to make this agreement happen.

He left in relief, happy that things were settled in a way that left him with a clear conscience and a sense of closure. In fact, he (and I, and many others) felt that concluding the suit was good for Sun, good for the industry, and good for the Java community. He left for entirely independent reasons that have nothing to do with Sun and had really been hanging in to make sure that the court cases got settled right. He still has good relationships with everyone at Sun and left on a very friendly basis. He will be missed by all of us and will remain a visible presence in the industry.

Farther down in the article, Rick characterizes Microsoft as having paid off Apple to "abandon its commitment to Java compatibility." I use Apple's OS X every day, and I work with folks at Apple all the time: Their commitment to Java compatibility is very real.

One thing he says that I agree with is "How can Sun show us that it still has the strength, vision, and leadership to deserve our support and loyalty? The way they should do it, in my opinion, is by ensuring that a significant portion of the settlement proceeds will be used to benefit Java developers and strengthen independent, standards-based efforts to advance Java." This is exactly what's being done. Our investment in and commitment to Java is very strong.

Settlement a 'Very Good Thing'

We fought hard to win those court cases. And we did win. Big time. Finally getting them cleared up gives us an extra pile of cash to invest in moving forward, it stops sucking the life out of all of us who dedicated enormous amounts of time to the cause, and it frees us from all sorts of procedural entanglements that were a part of the litigation process. This settlement is a Very Good Thing.

There's a long thread of discussion on Slashdot Two Takes on the Java Dilemma that is pretty entertaining, from a wow, what are they smoking! point of view. There are voices of reason, and conspiracy nuts. There are so many comments that it's impossible to go through them all. I'll just address a couple near the top: Java is most definitely not for sale. Not to IBM, not to anyone.

There are a set of postings in that thread that aren't directly about Java, they're about Unix and x86:

Yes, Intel x86 can handle many of the tasks that only Unix machines used to be able to handle. I'd just tend to debate whether they're capable of doing these tasks as cost effectively, as reliably, and as efficiently. Well judging by the amount of people dropping their old UNIX gear, and taking up rackfulls of AMD or Intel boxes (especially the new 64bit offerings), i'd say the answer to that is a big YES.

This is a bizarre comparison because x86 is a CPU architecture, and Unix is an operating system family: they are not the same things! All the Unix flavors run perfectly well on x86. Yes: Linux is a Unix flavor. Where this relates to Java and Sun is that because such a huge fraction of customer applications that run on Sun hardware is written in Java, we can treat CPUs (and even operating systems) as commodities, in the same way we treat disk drives. We can use whatever underlying CPU technology (x86/x86-64/Sparc/...) or OS technology (Solaris/Linux/...) is most suitable for the situation at hand. We aren't constrained by the instruction set or OS interface that is baked into our customers' applications. This is hugely liberating for hardware design.

Refuting Stallman's argument

As for Richard Stallman's "Free but shackled: The Java trap," it's hard to know where to begin. He has his own rather peculiar definition of "free" that I think violates the First Law of Thermodynamics (energy is conserved): Developers put a huge amount of energy into creating software, and if they can't get that energy back in a way that balances, then the system falls apart. I've been in this discussion countless times, and I'd like to avoid landing there again. GPL software is not "free": it comes with a license that has a strong political agenda. Like GPL software, the Java platform is "free" in many senses: You don't have to pay anything for the runtime or developer's kit, and you can get the sources for everything. Unlike GPLd software, the Java sources don't come with a viral infection clause that requires you to apply the GPL to your own code. But the sources for the JDK do come with a license that has a different catch: redistribution requires compatibility testing.

This is just context for the real point I want to make: When you have platform software like Linux or the JDK, the platform interface (in the case of Java, the VM and API specifications) divides the world of developers into two groups: those who work under the interface to implement it, and those who work above the interface and build applications based on it.

These two communities have needs that conflict. In particular, a blanket freedom for developers under the interface, to do whatever they damn well please, is incredibly disruptive and damaging to developers above the interface. The catch in the Sun Java source license is all about defending the needs of developers who work above the interface. This ends up being constraining to folks who work under the interface, but in a way that is hugely beneficial to those who work above. We believe that for a developer who has built a Java application they have a right to trust that when some other developer says "I have a Java VM for you to use", that their application will work.

So yes, like the GPL, our source license does have an agenda. It's not a hidden one, and we believe it's a very beneficial one (at least, to application developers!).

There has been a big debate about implementation languages in the Gnome world. It's been all over the map, but one point of concern has been a set of formless dreads about the usability of the Java language specification. We've been very clear about this, but it seems like few have read the spec: if you look in the frontmatter, it contains an explicit statement that anyone is free to implement the specification. It goes much farther than most other specification documents: it actually includes a patent rights grant.

We're not a bunch of moronic secret subversive Microsoft lapdogs. We've worked very hard over the years to fairly balance the needs of all the various communities. Relax. Have a little faith.

Dr. James Gosling is a Sun Microsystems fellow who managed the group that created Java in the early 1990s. This article was submitted to NewsForge by the author but was originally published on his blogsite.


  • Java
Click Here!