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

By Robert Eckstein

October 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/index.jsp ] 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/ ]. We caught up with Gosling recently to get his take on how things are going.

Q: Rich Green, executive vice president of software at Sun, announced at the JavaOne conference in June 2006 that it was not a question of "whether" but a question of "how" Sun would open source the Java platform. And now things are in high gear in Santa Clara. Why is Sun open sourcing its Java platform implementation?

A: In a sense, we've been very close to being open source for a very long time. The difference between what we do now and open source has mostly been around the license. Fortunately, many of the problematic issues that we had in the past have gone away. The landscape is a lot clearer, and we're eager to be even more interactive with the community.

Traditionally, we've done a lot with the community through things like java.net and lots of private contributions and endless amounts of debates on forums and all the rest of that. Now we hope -- through a combination of having a newer license as well as having a development process that exposes source code as it's being edited -- to foster a new relationship with the community.

Timing: Why Now?

Q: What issues prevented Sun from doing this earlier or, for that matter, five years in the future?

A: One of the big issues -- tragically -- has been the litigation.

Q: You're referring to the lawsuit with Microsoft?

A: Yes, and that's sufficiently in the past. The things that were causing us problems are gone, and nobody's worried about that anymore. Oddly enough, some of the big preventers have been things such as how we view source-code management.

From a pragmatic engineering point of view, the open-source tools like CVS (Concurrent Versioning System) don't work well for large-scale projects. Internally, we use a tool called Teamware, but for various reasons, it didn't make sense to export that to the rest of the world. So one of the big changes over the last year has been that there's a new source-code management tool called Mercurial [ http://www.selenic.com/mercurial/wiki/index.cgi ], and that's made everyone in engineering very happy.

Q: What does Sun hope to accomplish by open sourcing the JDK?

A: We want better conversations with the developer community, a more collaborative relationship. We want to have better relationships with many of the Linux distributions, and a lot of the Linux distributions are very sensitive about precisely which license one uses. We want to have better relationships with the open-source community, which leads to better distribution and makes it easy for people to collaborate with us to evolve the platform, to use it in even more interesting ways and in more interesting areas.

The Results: What Will Happen?

Q: Whenever a corporation looks at open sourcing something, the reaction goes one of two ways. One side says, "If Sun open sources Java, it'll be the best thing that ever happened to it." On the other hand, there's an inevitable concern that others will fork and resell the intellectual property. What about compatibility? Isn't this move toward open source just going to fracture the Java platform?

A: The source code is being open sourced, but the process of defining the spec is still the Java Community Process [ http://jcp.org/en/home/ ]. In addition, there are massive test suites, and we will do an immense amount of testing. We expect that people who care about reliability and compatibility with the spec will use our version. 

You know, most people in the open-source world who use open-source software don't actually do builds themselves -- those people just download the binaries. And so we expect that the big enterprise people will just do that, and we will certainly be providing binaries that have been through full industrial-strength QA, that have been through all the conformance testing.

So it shouldn't give anybody any concerns as far as fragmentation. We're not just going to let random people check random code in. Just like every other open-source project, we will end up with a set of rules for who's allowed to check in a lot. Everything will get checked and rechecked and debugged.

Q: How does Sun plan to make money on Java technologies once they are open sourced?

A: You know, these days most of the money is higher up the stack. It's in services. It's in support. We've made quite tidy income in various parts of those areas and various parts of the technologies, and that's going to continue.

From a financial point of view, the Java platform has been free to all of these enterprises and such since day one. And so from that point of view, this really isn't going to have an effect on our financial situation.

The Developer Community's Contribution

Q: Why would any Java technology developer working on an open-source project want to contribute to Java source code?

A: There are different kinds of contributions. For instance, all programs have bugs. And if there's some problem you care about, you can go fix it and contribute it. That's one area where tens of thousands of contributions form over the years. But that's also somewhat problematic because sometimes you can fix one bug and create three. So we're going to end up with some kind of mechanism to make sure that the code that people do check in gets extensive testing.

The other category is adding new features. If there's a method missing from the string package that you really want, you can add that and contribute it, so long as it passes through the community evaluations. There's a track to get it through the community process. And then there are whole new packages, similar to what happens with the JCP expert groups. Those are all different kinds of things that you can do.

Opportunities for the Java Platform

Q: What opportunities do you think this will open up for the Java platform itself?

A: We will be able to evolve faster, although we're currently evolving pretty darned fast. You know, we're always interested in people using Java technology in different ways and in different kinds of environments. 

Certainly one of the biggest areas we're hopeful about is the various Linux distributions. Being open source makes it much more possible for us to get distributed with them.

We've made the Java platform [ http://java.sun.com/javase/downloads/ ] available on our web site for a very long time. But the various Linux distributions have chosen to not include it in their releases -- primarily over our license issues.

Q: As the inventor of Java technology, where do you see the open-source Java implementations going in the next five years? Are Adam Savage and Jamie Heinemann going to be using Java technology to control their next compressed-air cylinder rockets to go through cinderblock walls?

A: It's hard to tell. The Mythbusters [ http://dsc.discovery.com/fansites/mythbusters/about/about.html?clik=fanmain_leftnav ] are pretty cool guys, but it's kind of hard to imagine Adam and Jamie using any of this stuff because they don't do bytes. They just do mechanics. They're very mechanical kind of guys.

Q: Final question: Is emacs [ http://www.emacswiki.org/cgi-bin/wiki ] still your favorite integrated development environment (IDE)?

A: Oh, no. I switched over to the NetBeans [ http://www.netbeans.org/ ] IDE long ago.

Q: Thank you, James. We'll be sure to talk again to get your thoughts after Sun has made an official announcement.

Copyright 2006