2005-02-01

Java's multiple personality disorder

I've always felt that Sun's regular Java renamings/renumberings were pointless and stupid, but I've never noticed before how harmful they are. As a Java programmer, I know the terms Java, JDK, JRE, J2EE, and J2SE. I know that they're more or less interchangeable, modulo the lack of a compiler in the JRE. I know that the 2 in J2SE is bogus, and I know that the version numbers went 1.0, 1.1, 1.2, 1.3, 1.4, 5.0. I also know that in most contexts, 5.0 is still known as 1.5.

All this is unfortunate because it helps non-Java developers feel justified in their ignorant opinions that Java is just marketing-driven bullshit. Because, hey, look: some of it is!

But I now realize that it's a worse problem than just that: I have some idea of just how confusing it is to outsiders.

The two-tone lilac exterior of the "Popular Downloads" box on java.sun.com hides a dark and pernicious heart. In the past couple of weeks, I've had to explain to a C++ developer that "J2SE 5.0" is the link if you want the 1.5.0 SDK. And I've had to explain to testers – people who use a wide range of operating systems on a daily basis and who may well be able to tell you the latest stable and development Linux kernel version numbers – that the prominent "J2SE 1.4.2 SDK" link doesn't mean that 1.4.2 is the latest version of the JDK.

These are people – computer people, if not Java people – who've gone looking for Java 1.5.0, and failed to find it. So they've stuck with 1.4.2. And if I hadn't called them all sorts of names (and explained that J2SE isn't "Server Edition", and the 2 doesn't mean anything, and, yes, that is actually the link you want for JDK 1.5.0), they probably wouldn't have looked again until 1.6.0.

At which point they'd doubtless be confused by the offer of J3XE 2007, or some other new marketing nonsense.

I'm also told that if you have JRE 1.4.2 installed, it'll prod you to download new updates to 1.4.2, but won't mention that there is a 1.5.0 available. I can perhaps understand why you'd have such an option as a sop to corporate control freaks, but it seems like the wrong default.

Either Sun don't really care about making it easy for new people to join in, or they too have been slowly boiled alive in this acronym soup, and don't realize just how daunting and unintelligible it can be.

[My friend Chris Reece reminds me that this is a long-standing Sun tradition. Is it Solaris 9, Solaris 2.9, or SunOS 5.9?]