Why Open Source Java is Good News

I prepared some notes on a few topics and they weren’t used that much so I thought that I’d use them here as it’s been a while since I said anything useful on anything other than the miniutae of any particular issue.

So, Sun finally released the Java source code under the GPL. Great News. Why? Well, here follows a slightly rambled list of opinions on the topic.

I don’t use Java particularly. Not on the desktop or the server and most people don’t really care about Java applets that much any more, but Java is pretty popular on embedded devices such as your mobile phone to play games and TV set-top boxes. Which I would guess is Sun’s main source of revenue from Java and I believe will be unaffected.

The good news for the open source community is that we get a solid bunch of code that we’ve had to largely avoid in the past due to licensing and redistribution issues. We have a platform we can use at last which will be easy to install and redistribute. We can now run Java apps easily – the Azureus bit torrent client, Freemind, the Java components of Open Office.org, the Apache Tomcat server, Open Exchange which builds on Tomcat and so on. Not exactly a raft of Java applications, but then we’ve never had a Free and complete Java implementation before. Java has always been something which has been viewed with suspicion under Linux.

Not only is the Open Source and Free software community now free to install Java and Java applications, but we now have the possibility to use Java as a language and a platform properly for the first time. The Java community can now contribute optimisations and features that they’ve been waiting for, which will only make Java better and prevent it becoming obsolete on the desktop and in the server room in the face of .NET, Mono, PHP and Python. It also gives us a powerful application server engine.

One of the big cliffhangers for whether Sun would Open Source Java was whether it would be forked, leading to 2 or more incompatible, competing Java implementations. I don’t believe this to be likely in anything other than specific uses.

There are already several non-Sun Java implementations such as:

  • Blackdown
  • Kaffe
  • Classpath
  • IBM JDK
  • Others

Most people aren’t using them. The Sun implementation is the standard and reference implementation and who wants to use a non-standard version. Certainly, Blackdown and Kaffe have been around for a few years and latterly, Classpath and none have ever been complete or widely used.

The only likely scenario of a competing Java implementation being a threat to the Sun implementation is if the Sun implementation doesn’t give users what they want and who would be stupid enough to do that? Besides, this is the Open Source community, where you can submit your own features and extensions.
As I said, aside from embedded usage, server and desktop usage are Java’s other 2 main areas. Installation and redistribution have always been troublesome on Linux, as nobody can package it for you, you have to get it from Sun, run the installer script, wave goodbye to your ethics and then set up your path. Awkward and compromising. Or use an incomplete implementation or live without. Thats for your desktop, for the server, you probably can install it yourself and have your ethics wiped away by business needs or management decisions, but still these issues all made Java a more difficult choice on Linux and one which people weren’t keen to utilise or program with.

On Windows servers, you probably do everything in ASP.NET, on Linux you probably did everything in PHP, or more recently Ruby, Python or even Mono. Now we have Java too and we can use Tomcat and Jakarta. Java is at last now a viable option on the Linux desktop or for the glue in server applications.