Number melancholy

Today is 07-07-07, "lucky sevens" day, considered fortuitous for weddings and gamblers. But for me, it was not a lucky day. I read the Java (TM) SE 6 Update Release Notes and was overcome with number melancholy.

Here is Dürer's famous engraving “Melancholia”.


On the upper right corner, you see the world's most famous magic square:


The rows, columns, and diagonals, all add up to the same value. What could be more pleasing, more regular? Yet the saturnine fellow is not happy.

I am not happy when I read this:

Changes in 1.6.0_02

The full internal version number for this update release is 1.6.0_02-b05 (where "b" means "build"). The external version number is 6u05.

What signal does this send to the outside world? I think the signal is “Java is stupid.”

Let's not dwell on the internal numbering. That's an annoyance that consumers hopefully never see. (It would be nice to have a system property that enables us to report the “external version number” to the consumer without parsing the java.version string.)

First off, I fervently hope that the correct external version number is actually 6u2 and not 6u05. I think that was just a typo in the release notes. If not, someone take me away right now...

But that's not my main gripe. Can we get rid of the crazy “u” notation and the “update” term? These are not terms that consumer will readily understand. Whenever my students go to download a Java JDK or JRE and see “update”, they think it is like a Windows service pack and hunt for the base version.

Why not call these versions 6.01 and 6.02? That's something a consumer understands.

I am so glad we finally got rid of the Java 2 version 1.x.0 nonsense. Could we now go all the way to normal, boring, meaningful version numbers? Please.