Earlier this month at JavaOne, Sun made good on its pledge to release Java 2 Standard Edition as free software, a move that should mark the start of a beautiful new relationship between Linux and Java.
Until now, licensing conflicts between Sun's Java and prominent Linux distributions such as Debian or Fedora made it tough for Java to bond with Linux and its users in the same way that the LAMP triumvirate of Python, PHP and Perl do.
The GNOME community has debated for some time whether to move from C as its primary development language to a higher-level language such as Java or C#, but concerns over Java's licensing or possible future patent hostility from Microsoft have stalled those efforts.
As long as developers couldn't count on Java being built in and distributable under the same general terms as the rest of Linux, Java could never be a central part of Linux-based operating systems, or of the foundational projects--such as the GNOME desktop environment--that complement the Linux kernel.
However, even though Java's joining the big happy GPL family, there's much more work to do before we'll see the free software floodgates open for Java. The day that Sun made its JavaOne announcement, I cruised the Internet to take the temperature of Java for the Linux desktop, and I came up with some surprisingly tepid readings.
The closest thing to an "open-source desktop developers, your Java is ready" welcome mat I could find was a February 2007 tutorial from Sun on writing Java software for GNOME using the java-gnome bindings project.
GNOME boasts an array of these language bindings projects, which enable developers to build applications in their chosen tongue while plugging into GNOME's native interface elements and system services.
I searched the package repositories on my Ubuntu workstation for packages with a dependency on the java-gnome bindings, and turned up zero applications built atop the project--that's out of 21,371 packages in the Ubuntu repositories.
To compare, the same sort of search based on the equivalent GNOME bindings package for Mono, the open-source implementation of Microsoft's .Net Framework, turned up 21 packages, including the excellent Tomboy notes application that's now an official component of the GNOME desktop.
It turns out that the java-gnome bindings project is currently in a very unstable state--the version of the software that ships with Ubuntu and other Linux distributions is largely neglected and is considered incomplete.
There's a new version of the bindings in the works, but it's not yet ready for developers to use. According to the project's Web site, the new leaders of the java-gnome project are "now looking to secure the revenue necessary to fund the work to make the new Java bindings for GTK and GNOME a reality."
According to posts on GNOME's release team mailing list, there's a great deal of uncertainty within the project as to when a usable set of GNOME bindings for Java will again be available.
Granted, the sort of complete, freely licensed Java that's required to host a new generation of Java-based GNOME applications has only recently become available, but considering that Sun announced that it would be freeing Java over a year ago, and that it's been months since the company shared its choice of GPL as a license for the project, the state of limbo in which the java-gnome project finds itself is awfully puzzling.
In order for Java to become a viable language for open-source software, java-gnome stakeholders need to step forward to provide developers with the tools they need to choose Java for their works.
I can't imagine a bigger stakeholder than Sun, which calls its own GNOME desktop implementation the Java Desktop, even though the software as shipped by Sun has nearly nothing to do with Java.
Now--better late then never--seems like a good time to transform this appellation from a branding device to a reality.