What the blazes is going on with software version numbers? Sun have just announced that the next version of Java is going to be branded as Java 5 and not Java 2. So instead of J2SE 1.5 and J2EE 1.5—I'm ignoring the Micro Edition because my mobile phone doesn't have a JVM—we're going to have J2SE 5 and J2EE 5.
R-i-g-h-t. So that's Java 2 Enterprise Edition, version five, or if you prefer, the fifth version of Java 2. Java 1.2 was rebranded as the Java 2 Platform because it tripled the size of the platform (from 504 classes to 1520 according to my copy of Java In A Nutshell). So Java 1.3 must have been the second version of Java 2, 1.4 was the third version and now 1.5 is the fourth…oh damn, it's all gone wrong. If Sun were to follow what they did previously, then surely it would become the Java 3 Platform, but I guess there's no fun to be had there.
How many Java programmers who are fully au fait with the intricacies of generics will now fail the HR filter because they are “only” certified for the Java 2 platform and not Java 5? People are going to get confused. Heck, I'm confused and I know how to use a Struts Multibox!
Of course it's not just Sun who are guilty of manipulating version numbers for marketing purposes. All of the major software companies do it. Last week I upgraded from Oracle JDeveloper 9.0.3 to 9.0.4 and was surprised to see that it was actually JDeveloper 10g:
Fantastic! Now I can use all those great grid computing features that Oracle have added to JDeveloper. Then I checked the about box:
—Oh my! I've been conned, it's only a 9i release and who wants that now that 10g is out? An Oracle employee tried to rationalise it to me by saying that the software is part of the 10g suite, but I wasn't convinced. I thought I'd installed an IDE, not a bathroom. Does anybody understand Oracle version numbers? I find it hard enough getting to grips with the fact that Oracle offer multiple versions of the same software for download, but that's to do with trying to keep the development environment and application server in step.
Microsoft are past masters of the version number lottery. Who can forget when Word jumped from version 2.0 to version 6.0. Now there were a lot of new features in Word 6.0, and they were proper features, not just the enterprise or collaboration tinsel that we've been getting since Word 97. I think the real reason for the change was to enable WinWord to catch up with Mac Word, which did have the intervening versions.
Windows NT launched at version 3.1, the official reason being synergy with Windows 3.1, the cynical reason being because everybody knows that Microsoft software generally isn't very good until the third version. However, Microsoft's master stroke was the rebranding of Windows 4.0 (Chicago) to Windows 95, thus instantly ensuring that you were a nobody if you were running last year's Windows. Unfortunately, they soon discovered that Windows 95 became last year's Windows and users became confused because they were waiting for Windows 96 or Windows 97. I have actually heard someone tell a help desk person that they were running Windows 97. I didn't have the heart to intervene and point out that they were using Office 4.2 on Windows 95. I bet you thought I was going to say Office 97 then, didn't you? I'm sticking to how it actually was.
Now we've ended up at Windows XP via the naff-sounding Windows 2000. I actually like the name Windows XP and it avoids the model year problem. I think that truly the most fascinating thing about Windows Longhorn just might be the name. I hope Microsoft come up with a good one.
Look, version numbers really aren't difficult. You increment the major version for a major new release and the minor version for a less significant or maintenance release. One of the odd things about odd numbered versions is that oddly, they're often viewed with the odd amount of affection. Windows 3.0 broke Windows—in so many ways—and Windows 5.0 a.k.a Windows 2000 is widely regarded as a good version. Delphi programmers love Delphi 3.0 and Delphi 5.0. You have to be careful not to go too high with your numbers though, because although that implies maturity, it also implies bloat. For years Borland JBuilder was the Java IDE to have, but as soon as the version number started climbing, its reputation waned. Maybe that was because Borland brought out a new JBuilder seemingly every fortnight, whilst my beloved Delphi was left to wither on the vine.
When the version number gets too high you have to switch to letters. “XP” has been the preferred combination for a while now, but it's recently become passe. The latest buzzword is “tiger”. Apple's pre-emptive strike against Windows Longhorn is codenamed Mac OS X Tiger, and who can forget that Java 1.5—I'm so sorry, Java 5—was also a tiger. What will they think of next?