After much anticipation, the free-as-in-freedom version of Sun's Java JDK has arrived in Debian's `main' section. There are still a few bugs in the packaging, but these will be ironed out before the lenny release. Various other useful packages still need to adapt to its presence, but many will be able to move from the `contrib' section into `main' as well.

Going forward, this makes Sun's Java platform quite attractive for developing future free software applications. There is a reasonably performant implementation now available in most distributions, that will receive security updates, has a good team of developers behind it, and already has a large community of people with skills in the language. If static versus dynamic typing becomes an issue, Jython might offer a nice competing implementation of Python. We might one day get to see what this `Groovy' thing is all about. In terms of GUI applications, Andrew Cowie's new java-gnome 4.x bindings will allow truly native integration with the rest of GNOME - or stick with plain Swing for cross-platform portability.

This also brings the Java/.NET competition to free software. Mono has been playing catch-up with both Microsoft's implementation of .NET and with Java - it has enjoyed some success with Gtk#, which has provided much more compelling rapid development than the old java-gnome bindings and gcj. MonoDevelop is trying to compete with Eclipse and NetBeans, and probably has a better-integrated GNOME UI editor. Still, if the potential for rapid application development is as great as is claimed, it can't be very long before the various successful Gtk# applications (banshee, f-spot, tomboy) have Java counterparts (unless people are happy with the C equivalents). The most difficult part of the process is finishing off any required library bindings (such as to gstreamer and libgphoto2).

It will be interesting to see whether Java free software developers bring with them the same bad habits that have been seen with many Windows-based C# free software developers. When you want to use a library, bundling a binary-only copy of an unstable version is not really the right thing to do. At least many Java .jar archives also contain source code, and there are quite a few home-grown Java hackers who might understand about how to play nicely with distributions using proper dependency-management systems.

One thing that strikes me is that, while Mono has been around for quite a few years now, I can't think of any big non-graphical applications that are built on it. (Beagle is perhaps the exception - it does make use of a Gtk# GUI, but the main program is the indexer.) Java might benefit from a network effect, as projects such as Apache Tomcat are also widely used. (Let's not mention Choob at this point.) There are a few non-GNOME graphical apps waiting in the wings (like freecol and robocode). The scaremongering over possible patent infringement in Mono (or the Windows.Forms libraries), while probably unfounded, cannot help its cause.

But of course, ruling out something catastrophic like a patent infringement suit, free software projects very rarely die - they just fade away into obscurity. Both platforms are likely to be around for some time yet.