Java Goes Open Source

This one has been a while in the making. In the if-you-can’t-beat-‘em category, Sun Microsystems has been slowly embracing open source for quite a while now.

They have long supported OpenOffice, the open source office suite. Now at its 2.1 release, I use OpenOffice exclusively on both Windows and Linux unless there’s a compelling reason not to (read: need to share something at work), and I can attest to it being a great product.

More recently, they launched Solaris as OpenSolaris, making the Unix based operating system free and able to run on standard x86 architecture. I haven’t tried OpenSolaris, but it is getting some great reviews, particularly for server use. They also opened the specs on their UltraSPARC T1 multicore “Niagara” processor, and released some other projects under the GPL, like GlassFish and Looking Glass.

While those things are all great, the big question from the development community was when Sun would release Java under an open source license. While OpenSolaris and OpenOffice have significant user bases, they aren’t anything like the Java user base. A lot of developers, particularly within the open source community, have held back from Java development because of licensing concerns.

Sun had some concerns about releasing Java under an open source license. One big concern was the potential for forking, or as it’s sometimes called, “Forkn’ Hell”. One of the biggest things Java has going for it is its “write once, run everywhere” virtual machine technology. When an open source project takes a turn a lot of developers don’t like, they can (and often do) fork the project into a new project and call it something else. If you end up with a bunch of Java forks, each requiring a different VM, suddenly your “write once, run everywhere” goes out the window. Another concern was the potential for embarrassment if people saw the source code because, believe me, you aren’t the only one that churns out sloppy code - proprietary software tends to have the sloppiest code of all, as the company doesn’t have to worry about anybody looking at. In addition, Java consists of about six million lines of code, and the lawyers had to go through all of it to make sure no proprietary or copyrighted bits or third-party code was in there.

In the end Sun determined the benefits far outweighed the risks and started the long process of getting Java ready to go open source, and this past November it officially happened - Java was released under the GPL. In December the first GPL’d JVM sources showed up and are fully compilable. Not only did Sun release all versions of it’s software (standard, enterprise, and micro) as open source, it didn’t try to make it’s own license to limit usage and changing. Java has been released under the GNU GPL.

I have a feeling this is going to go down as one of the bigger events in the history of open source software. In short order a development community will form around Java, and Java will rapidly improve as the community begins to submit changes and bug fixes. And, yes, the community will probably make it faster (although if your only experience of Java in a applet loaded in IE, you really don’t have a good handle on Java’s speed - it can actually be pretty darn fast). Linux distributions that have long kept Java JRE’s out of the default distributions will feel free to package it now that it’s under the GPL. Over the course of a year, I think Java usage will steadily grow.

Which leaves me with another programming language to learn. Sigh.