James Gosling on Open Sourcing Sun's Java Platform Implementations, Part 2

By Robert Eckstein
java.sun.com

November 2006

James Gosling, widely regarded as the father of Java technology, has been hard at work helping Sun Microsystems with its efforts to open source Sun's Java SE [ http://java.sun.com/javase/ ] (JDK) and Java ME [ http://java.sun.com/javame/ ] implementations. The Java EE [ http://java.sun.com/javaee/ ] implementation has been open sourced for over a year as Project GlassFish [ http://java.sun.com/javaee/community/glassfish/index.jsp ]. Part 1 of the interview [ http://java.sun.com/developer/technicalArticles/Interviews/gosling_os1_qa.html ] took place shortly before Sun's official announcement, and we spoke again just afterward.

Q: James, we had a pretty big announcement today. Can you tell us more about it?

A: Sure. In a nutshell, Sun is open sourcing all of its Java platform implementations under same license used by the GNU/Linux operating system: the GNU General Public License (GPL) [ http://www.gnu.org/copyleft/gpl.html ] version 2.

More specifically, we're announcing:

For the open-source JDK components, we chose the GNU General Public License (GPL) [ http://www.gnu.org/copyleft/gpl.html ] version 2 for almost all of the virtual machine, and GPL v2 with the Classpath exception for the class libraries and those parts of the virtual machine that expose public APIs. For Java ME, we went solely with GPL v2.

Q: What motivated this choice? And what exactly is the Classpath exception?

A: The nice thing about the GPL is that it's a very community-friendly, very symmetric license. And it enjoys pretty wide popularity in the open-source community.

The Classpath exception was developed by the Free Software Foundation's GNU/Classpath Project (http://www.gnu.org/software/classpath/license.html). Basically, it allows you to link an application available under any license to a library that is part of software licensed under GPL v2, without that application being subject to the GPL's requirement to be itself offered to the public under the GPL.

This is a licensing paradigm in common use within Free software communities such as GNU/Classpath and Kaffe for the components of a Java technology implementation including the virtual machine and class libraries. We consciously chose the same licensing method so that there would be no temptation to second guess our intention to make Sun's Java SE implementation available under a genuinely Free and open license.

Q: So, we've been hearing quite a bit over the past few weeks about the OpenJDK Community. What exactly is the OpenJDK Community?

A: We're establishing the OpenJDK Community for the ongoing development of Sun's open source implementation of Java SE. Basically, the OpenJDK Community is where developers will gather to collaborate on the open-source JDK code base and related projects. The OpenJDK project in which the open-source code base will "live" is part of this community. Here, developers will be able to directly influence the future of the JDK implementation, participate with their peers in an open community and help take Java technology where it hasn't been before. Sun is evolving the existing JDK Community, where developers have been working on the source code over the past two years, into a site where Sun and non-Sun developers alike can collaborate together on the implementation. The OpenJDK Community can be found at http://community.java.net/openjdk.

Q: What is the governance model for the OpenJDK projects?

A: Well, we're studying existing governance models in the open-source community, but we want to take the time to do a thorough analysis and gather more input and advice before making this decision. Our plan is to evolve the governance model to one of community involvement, with a goal of inclusive, transparent, meritocratic governance.

Q: What kinds of things can a developer do with the open-source Java SE platform pieces right away?

A: Probably the most useful thing you can do with it is look at it and learn from it. It is somewhat traditional, but I always say that the source [code] is the documentation of last resort. We have tried really hard to make sure that we have real documentation.

Of course, you've been able to read the code for a very long time as part of the JDK 6 project [ https://jdk6.dev.java.net/ ]. There will certainly be people who will be locally tweaking things just for themselves.

In the past, there have been a lot of researchers in universities using the code to do research projects. And people who are making contributions will be able to build their contribution and to make sure that all the contributions fit.

Q: How do you think this move will affect other open-source implementations of the Java programming language -- for example, Apache Harmony or GNU Classpath?

A: It's hard to know. They'll certainly be able to mine our source for stuff to incorporate into their projects.

Q: Frankly speaking: is there anything about the fact that Sun is now open-sourcing Java that keeps you up at night?

A: You know, most of the big questions that people would think of that would keep me up at night actually don't. I'm pretty happy with the way the OpenJDK is developing. I'm really happy with the way that we're approaching issues like QA and the rest of it.

I think that a lot of people out there might be a little bit nervous that it's going to make the Java platform less reliable, but I just don't think that will be the case, and I'm not losing any sleep over that.

If there's any part that causes me to lose sleep, it's the mechanics of the infrastructure: the hosting, the bug tracking, the day-to-day bits and pieces—things that all open source projects go through. But I'm sure that that it will all work out.

Copyright 2006