Free Java!

You no doubt already know that Sun released parts of Java under the General Public License, with some parts released under the GPL with (what Sun is calling) the “Classpath exception.” The hotspot VM and the javac compiler are the big parts of J2SE that were released today.

As a GNU Classpath hacker, I’m of two minds of this development: first, and foremost, this is probably the best way that Sun could have done this, and I’m extremely pleased with this result. I’m almost stunned that Sun used what I think is the best license they could have chosen: pressures from other companies, whingeing about freeness for their narrow corporate goals, could have pushed an inferior license onto the code. So yes: this is probably the best outcome I could have hoped for for a Free Java from Sun.

But yes, what does this mean for GNU Classpath? The class library hasn’t been released yet, of course, but when it is, will GNU Classpath matter any more? Signs point to yes — parts of the Sun class library may be encumbered by agreements with other companies, so Sun may not be able to release those parts under a free license. The question remains though: will the parts that are opened obsolete the stuff I worked on? Crypto and TLS may not need more than one free implementation, and the version I worked on may be inferior. Certainly the work I did to try to improve our NIO implementation won’t be useful, because ours still has too many wrinkles in it. In the end it looks like a lot of my code may go to the dustbin of history, if the OpenJDK sufficiently eclipses GNU Classpath.

But, I think I’m fine with this. Even if zero lines of code I’ve written survives into the brave new Java world, I’m really pleased at this result. More free software is better for everyone, and since my skills have improved so much by hacking on Classpath, it was not a waste of time.