Why Java Isn't Dead On Ubuntu
A deceptive headline caused a panic in the Ubuntu community. Don't worry, Java is going to be there for a long time yet.
Published 12:28, 21 December 11
There has been a certain amount of upset finally surfacing as a result of the decision Oracle took over the summer to discontinue packaging Java for Linux under the Distro License for Java. Quite a lot of people commenting on the article at OMGUbuntu this week, for example, see the news that the Java packages are no longer being maintained in the Ubuntu repository as a sign of the End Times for Java (ETJ). As I commented on Google+, I don't think this is the case. To explain why, here's a little history, necessarily abbreviated.
While there had been an implementation of Java for GNU/Linux for many years (that arose in a cloud of community mishandling in 1999), it was never licensed in a way that was compatible with the way most distributions packaged software. Consequently, there were rarely packages for Java in distribution repositories, and installing Java for Linux was something of an art. In particular, software developers targeting Linux tended to avoid it because they could not add it as a dependency in their packages.
By 2005 (when I took over as head of open source at Sun) it was clear even to the most hardened of Sun's Linux-sceptics that this was a problem. We got a project together to start fixing the problem. At the point we started, Sun hadn't committed to making Java open source, so we had to focus on what we could fix.
The clear problem was that Java realistically wasn't available to most Linux users, so we crafted a new license for Sun's Java implementation for Linux that allowed it to be packaged in Linux distributions - the Distro License for Java (DLJ) - and engaged the Debian community. Knowing we'd probably get it wrong first time, we "embedded" a staff member in the Debian community (he's still there) and asked what they thought of our new license.
We used a FAQ as the main mechanism to clarify the meaning of the license, updating it frequently as issues were raised on mailing lists and occasionally also adjusting the language in the actual DLJ when real problems were identified. Using a FAQ in this way was so effective we did it again later for OpenJDK and its maintainer has gone on to offer consulting on the subject.
The result of all this work was that, despite being a stop-gap measure to help Java adoption on Linux while we waited for the inevitable announcement of true open source Java, the DLJ was extremely successful. In particular, both Ubuntu and Debian carried the Sun Java packages from the beginning.
Success is a double-edged sword. The Sun Java packages continued to be successful even after we collaborated with the Classpath community to create a fully GPL-licensed open source Java, OpenJDK. This was partly because OpenJDK continued to be a poor cousin to the "official" Java reference implementation in some areas, and partly because the Sun Java packages sounded more official.
All the same, the inevitable gravity of OpenJDK stayed in effect, to the point where this summer Oracle announced it would actually be the reference implementation of Java 7. Once that step was taken, it seemed obvious to me that the DLJ-facilitated "official packages" would soon be history, and indeed Oracle confirmed it soon afterwards.
These things take time to ripple outwards, so when the news appeared on the Ubuntu Security list it was misrepresented in the wildly incorrect title of an article on OMGUbuntu - "Java To Be Removed from Ubuntu, Uninstalled from User Machines". While the seeds of truth can be found in the actual text, the headline was enough to panic a load of people into "typical Oracle evil" comments. For once, those are misplaced.
Java To Stay In Ubuntu
Java is not being removed from Ubuntu. OpenJDK is the open source version Java, is developed primarily by Oracle, is becoming the reference implementation and is available in Ubuntu. The Sun-Java packages under the DLJ were a temporary stop-gap we put in place before Java was liberated as GPL. Removing these packages is just housekeeping. There are some programs in the Ubuntu repository that will need to do rework on their dependencies (Minecraft in particular), but this is an entirely expected lifecycle step and actually I'm surprised it's not happened before.
Nothing to see here folks, move along.