Sun's right move: GPL Java

Sun's right move: GPL Java

Today marks the rebirth of Java. Sun has announced their intent to release thesource code for Java under the GPL. If this isn't some of the bestnews in a long time, I don't know what is.

The freeing of Java

Sun isn't releasing all of the code. It seems there are partsof Java Sun doesn't own, and for which Sun hasn't been able tonegotiate releasing under the GPL. But, it appears this is a tiny bitof the code.

This is the most important announcement for free software in quite afew months. Java is a big part of many enterpriseapplications. Although the free software world has had Blackdown and Kaffe as a Java platforms, theyare not nearly as complete as the official Sun version, though bothare very good free software projects.

Now free software projects can use Java without worry or care. Coupledwith the most excellent SWTwidget set, Java isn't a bad choice for desktop applications. Theyhave provided a "classpath exception," meaning proprietary closedsoftware can include the Java libraries as they do now, without worryof GPL violation.

It will take a little while to get the source code released. Sun saysit expects a "fully buildable Java SE Development Kit (JDK) basednearly entirely on open-source code" to be released in the first halfof 2007. I'm not sure what "nearly entirely" means here, but I'mtrusting Sun on this, at least for now.

I don't question Sun's decision to free up Java. They have proven afriend to free software in the past. An inconstant friend, but afriend nonetheless. Their decision to use the GPL is pleasing andsurprising. Perhaps this signals a new direction in Sun's dedicationto software freedom.

There will be a lot of speculation that Sun is doing this in responseto C# and .Net. That may be their motivation. Or it might be that theyare finally conceding that free software is an excellent developmentmodel. It's done wonders for OpenOffice, for instance. Or it might bethey are finally giving in to those of us who have been asking themfor years to completely open up Java.

Whatever their reasons, this is a banner day. James, Jonathon, I thank you andall the others at Sun who have worked hard to release Java out intothe world. This is a contribution that will outlast any other of Sun'slegacies.



Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

First off a little comment: Blackdown isn't free software (nor open-source software if you care to be technical about the terms).

Now for the main part. I'm wondering if the GPL was the best choice, my thoughts heading towards the LGPL. From what I've heard, Java is rather prevalent in the proprietary software world. Putting Java under the GPL would prevent those proprietary vendors from using Java, and thus leave the door open for someone to create another proprietary Java. Is this what the "classpath exception" is supposed to alleviate? If not, discuss ;)

--fow is too lazy to login

Anthony Taylor's picture

Mea culpa! You are completely correct about Blackdown. Thanks for pointing that out. I had forgotten the controversy around Blackdown years ago, and didn't do proper research.

The "classpath exception" seems to imply they are creating a linking exception similar to that of gcc's libgcc, which states simply you are not required to GPL your source code if you merely link against libgcc. This should put Sun's Java implementation on par with gcc, freedom-wise.

So, that's what the "classpath exception" is supposed to alleviate. At least, from what I can glean from the various statements made by folks like Jonathon Schwartz.

Anthony Taylor's picture

So, after a little more digging, I find that Sun intends to use the GNU Classpath exception, as in the same one used for GNU/Classpath and Kaffe.

So, there you have it. It's not just another variant, it's the exact same as everyone else using the GPL for free Java.

David Sugar's picture

Historically I have avoided Java in part because of the lack of freedom, and in part one of the consequences that lack of freedom, the lack of Java being able to be properly packaged, optimized, and integrated on a free operating system. However, I have wanted a cross-platform environment for building gui/management tools and certain types of services, especially one with as rich and complete a cross-platform "standard library" as Java offers. I had hopes the existing free Java's would fill this gap, and I think they were starting to get much more usable.

I did not seriously consider Mono because it actually offered the poorest code quality, least portability, and lowest performance, of several "free" implimentations of a .net system, and because while the core language spec is "free", the some of the key libraries that would have made it a fully compatible cross-platform solution were not.

Terry Hancock's picture

I may be a little out of date on Java, but the last time I looked into it, the most popular GUI environment for Java was Swing, but there was no drop-in free software replacement (so this was a frequent reason to have to drop packages).

Is Swing included in the collection of software Sun is releasing under the GPL?

I spent about an hour following links above, but I'm not able to figure this out. I think I just don't know enough about Java (and the alphabet soup surrounding it) to know. Questions like this are essential to figuring out what packages the new release will liberate.

Anthony Taylor's picture

I was unsure when I wrote this, which was why I mentioned SWT. That, and my preference for SWT over Swing.

Their announcement said they were releasing all of J2SE eventually, which includes the Swing libraries. So, assuming they really mean the entire J2SE environment, that should include Swing, and Beans (including CORBA), and the whole 9 yards.

I haven't been able to find an entire list of the libraries and whatnot, nor even a definitive timeline. But, I infer it does include Swing.

Terry Hancock's picture

Actually I prefer Python for my own projects, so my interest is mostly in what packages will be freed by this action. So I'm more immediately interested in the popular/common dependencies being free. Since many people used Swing, it's really good news that it is (most likely) included! Of course, I've heard that SWT is very good (possibly better than Swing).

IOW, I'm mainly evaluating this in terms of benefits to end users.

On the other hand, Java's less-than-perfect licensing was a major reason for me to pass it over as a language. Now that that is no longer an obstacle, I may well give it another chance. I think there are still a lot of good technical reasons for preferring Python for my projects, but there may be some room for Java (or Java/Jython) projects in my future.

I wonder how Kaffe/Sable/etc developers feel about this? After all, a major motivation for those projects was to ‘liberate’ Java, but there's little doubt that the original Sun Java will largely replace them now that it is free (and yet, would it have been freed if they didn't exist?).

mjkaye's picture
Submitted by mjkaye on

I interviewed lead Kaffe developer, Dalibor Topic, on my "Cutting Free" blog.

His feelings on the matter are interesting, and his expertise proves rather useful.

Cutting Free - Free Software at the cutting edge

Author information

Anthony Taylor's picture


Tony Taylor was born, causing his mother great discomfort, and has lived his life ever since. He expects to die some day. Until that day, he hopes to continue writing, and living out his childhood dream of being a geek.