For anybody that’s ever tried to install Sun’s JRE on the Linux platform, it’s been readily apparent that one of the major issues with Java on the Linux platform has always been the installation. Due to some rather absurd provisions within the license that governed the JRE, Linux distributions both community and commerical have been unable to include Java as another runtime. So as I’ve been telling various parties within Sun for some time, when Java goes to battle it out with the likes of Mono, Perl, PHP, or Ruby, it’s consistently been fighting with one hand tied behind its back. Sun’s Dave Johnson noted this a little over a year ago, saying “Wouldn’t it be awesome if you could just apt-get, pkg-get or emerge Java on your favorite open source *nix platform?” I concurred, describing the difficulty of installing Java on Gentoo thusly:
If it’s not clear to you, here’s what he means. Gentoo users such as myself use the command emerge to install new packages; typically, I simply type something like ‘emerge mozilla-firefox’ and Gentoo goes out, downloads the necessary components, checks the dependencies, and installs the software. No fuss, no muss. Here’s what happens when I try to emerge the J2SE:
!!! dev-java/sun-jre-bin-1.4.2.08 has fetch restriction turned on.
!!! This probably means that this ebuild’s files must be downloaded
!!! manually. See the comments in the ebuild for more information.
* Please download j2re-1_4_2_08-linux-i586.bin from:
* (select the “Linux self-extracting file” package format of the JRE
* and move it to /usr/portage/distfiles
Slightly less convenient, I think we can all agree. Why it has to be this way is part licensing and part ideology, but either way it’s not an ideal experience from either the developer or user perspectives.
Well, guess what? Sun’s got good news for you, because they – with help from the Debian & Ubuntu communities – have taken the time to fix the license for Java and the distros have noticed. According to Simon, who told the assembled crowd here at DebConf about this yesterday, Debian, Ubuntu and my own Gentoo will all be picking up the JRE and including it within their package libraries. I can’t verify that it works as promised just yet, because the JRE hasn’t hit the Gentoo libraries and my Ubuntu box at home (via SSH) seems unable to find it, but I’m sure it’ll be just as Simon outlined. apt-get install sun-java5-jre? You got it.
So what has the general reaction been? Well, the man behind Debian seems to think it’s a pretty good plan, though he has doubts about the distros shipping it by default as they do with Perl and Python. The reaction amongst the Debian folks I’ve spoken with down here? Mostly positive, although I can’t say that anyone’s jumping up and down excited.
It seems clear to me that only the most ardent Sun critics will perceive this change as a negative, as it’s more or less an unalloyed good – regardless of what one thinks of the Java language and platform. For all that, it will undoubtedly leave some wanting in that it stops short of actually open sourcing Java. While I personally have reservations about the prospect of that happening – compatability must be preserved at all costs, in my view – there are many who are desperately hoping that Sun makes that next step. For folks that count themselves as members of that camp, there’s hope yet. According to Tim Bray, the two people one presumes have the most say as to whether Java goes open source – Sun’s new CEO Jonathan Schwartz and new head of software Rich Green – both sound amenable to the idea. Publically, at least.
What I’m interested in seeing, as mentioned previously, is whether or not the licensing change leads to a lessened interest in open source Java. While there are obvious advantages to an open source Java, the licensing restriction was one of the more significant and obvious drawbacks. As one very intelligent individual reminded me this morning, however, the lack of an open source Java still imposes roadblocks. Within Ubuntu, for example, Java will be marked as non-free and therefore will reside in a different repository from the majority of applications; as a result, installation will require an extra click. A small point, but no less relevant for that.
Some of you may be convinced at this point that the other “job” referred to in the title of this entry is in fact open sourcing Java, but you’d be mistaken. There are many people I know that will shudder to hear this, but I’m actually not terribly concerned about whether Java is open sourced. Would it solve some problems? Unquestionably. Would it introduce some new ones? Potentially. I think there are problems – logistical, technical, and political/people – that need to be solved before it gets there, and I’m not optimistic that they’ll be addressed in the short term.
If not Java, however, what might I be referring to? To answer that, consider where I’ve been for the past three days, and ask yourself what the world would look like if Linux and Solaris could compete on kernel features, while consolidating the architecture above the kernel. Imagine, if you will, a world in which Debian’s package management system formed the underpinnings not just for Debian or its Linux derivatives such as Ubuntu, but for the Solaris family of applications. Many will ask whether that’s even technically possible; one need look no further than Nexenta to answer that. Is is possible in practical terms? Unclear.
Solaris is clearly in need of such features, and Simon’s talk from Sunday indicates that the walls between Linux and Solaris lands are thinner than they used to be. Sun could make it even more interesting for the folks from Debian if they decided to dual license and port a piece of their technology in return – something like, say, ZFS. But will the two groups – each of whom has a reputation for being obstinate at times – seek common ground in this area? Tough to say.
But just in case any of the folks from Sun are listening, and are looking for other problems to solve, let me humbly suggest they start with the package management problem, and they consider Debian’s approach as a potential solution (whether the actual tools are ported or not). The potential solution. There’s a reason I’m blowing away Solaris 10 on our V20Z and replacing it with Nexenta, after all. In doing so, Sun could potentially make the largest Linux community on the planet quite happy, while giving their Solaris customers an inexpressably useful new feature. Why not make Debian’s tools an industry – and cross-OS – standard for application/package management. Why not, indeed, build traction for the Debian packaging format as a standard for the OSDL, LSB or other Linux standards body to rally around. Maybe it would even be worthwhile for Sun to have a chat with Ubuntu’s Gustavo about using Smart Package Manager as a means of leveraging the considerable assets currently located in the Blastwave repositories.
I mean, how hard could this all really be?
Disclaimer: Of the mentioned firms, only Sun is a client. I use Gentoo, Debian and Ubuntu on a regular basis, and have plans to install Nexenta, but none of those distros are clients.