In 2004 Eric Raymond wrote an open letter to Sun Microsystems' then chief executive officer Scott McNealy demanding Sun open up their core Java intellectual property and allow anyone do whatever they damn well please with it.
That other pillar of open source, and creator of the GNU Project Richard Stallman, meanwhile, became one of Java's loudest opponents - sternly advising people not to install the closed-source evil that was Java, and giving Java as a dire example of corporate lock-in.
Sun also released Java Standard Edition (Java SE) for the desktop, Java Mobile Edition (Java ME) for mobile devices and Glassfish - Sun's implementation of Java Enterprise Edition (Java EE) - under GNU General Public License v2 (GPLv2). Sun said GPLv2 would achieve the objectives of "driving more volume and adoption for Java and maintaining the 'write once run anywhere compatibility' promise."
Sun has spent much of the intervening period talking about how OpenJDK would make it easier to distribute Java with Linux, putting Java into new markets and on platforms, and into the hands of new developers. Stallman, himself, was sufficiently impressed by the move.
Two years on, has Sun's move changed anything other than end the shouting war over whether to open-source Java?
Sun's chief open-source officer Simon Phipps told The Reg that OpenJDK is doing "at least as well as I hoped." Sun could hardly have done any worse.
But has the move improved the life of Joe the Programmer, the everyday coder? "If you're an everyday developer programming under Windows writing everyday programs, you'll probably see no visible differences. But a tools developer will see a huge difference, as their market has suddenly grown hugely," Phipps said.
In other words, their tools will now be easily available on Linux as well as Windows.
Java goes further
The addressable market is certainly bigger. OpenJDK is now included in the top four FOSS GNU Linux distributions - Fedora 10, the Ubuntu main repository starting with version 8.10, OpenSUSE 11, and the planned Lenny version of Debian. It's also available in Red Hat Enterprise Linux (RHEL5) and CentOS 5. Sun, meanwhile, claims success by download on Glassfish: eight million downloads and 250,000 "product registrations" in the last 12 months.
OK, so OpenJDK ships with top Linux distros - job done? Not quite. Java might ship with certain distros, but there is no single version of Java, or set of Java APIs or libraries, certified as 100-per-cent Linux compatible. That makes the job of installing it and administering Java on Linux a headache and creates portability hurdles for application developers writing software for different Linuxes.
Running a locked-down distribution in a bank? That's OK, until you need to install new APIs to run your particular application. Details of where and how to install Java can vary greatly from distribution to distribution and between different Java implementations. And with so many Java updates, the question next becomes which version do you install - the latest or most widely used?
Until now, Java has been supported by distros on a case-by-case basis through lobbying by Sun. It's lacked a single-industry wide impetus - something that could help standardize what you adopt, how it's installed and what you certify against.