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.
Posted: 13 Jul 2008 00:00 |
On Thursday and Friday, I took time off work to visit Bristol for the GNU Hackers' Meeting 2008. Around 20 people attended - obviously these were all people contributing to GNU, but (surprisingly) I didn't feel too much like I was surrounded by giants. Instead, it was all quite relaxed; most people there seemed rather like me - with a mild caffeine addiction, permanently short of spare time, and just trying to improve their small projects as best they could.
The impression I have of the GNU project after this meeting is one of a disparate organization with many small contributors; it is clear we have massive communication problems, both internally and externally. From the outside, I suppose GNU looks like a monolithic, perhaps US-centric project, with the strong leadership at the top controlling the direction of all these sub-projects. In reality, these sub-projects are more or less autonomous. There may be some checking at the centre that no two GNU programs are directly competing to solve the same problem, but the maintainers are largely on their own, struggling to build up whatever community of contributors they can. The feeling of isolation is much greater than in Debian, for instance - there, although package maintainers generally have some sort of authority over "their" packages, you will get bug reports filed if you are not following Debian policy, and you are expected to observe common freeze periods around releases. There are no real equivalents in GNU.
So naturally, considering the amount we had in common, this meeting was always going to be a success. It was very well run by Brian Gough, and there was just the right amount of structure versus "corridor time" (although everything took place in a single room, except for lunch/pub). There were a few talks from people about the projects they were working on - for instance, a nice game called GNU FreeDink, although I need to fix a segmentation fault to progress any further in level 2, and a very impressive sound generation program called Psycosynth.
It was suggested that a UK-only GNU hackers' meeting could be organised sometime, which I think would also work very well. Simply meeting up like this every once in a while was quite inspiring; I much prefer developer-oriented meetings over user-oriented meetings, and this was one of the best.
Posted: 13 Jul 2008 00:00 |