How come Java 2 is version 1.x?

I should know the answer to this, but… nope.

Why didn’t Sun bump the version number of Java up to 2.x when they decided to call it Java 2? Currently it’s Java 2 v. 1.4 (I think). While this does give us simpletons at work some amusement, there has to be some reason, right?

Because Java 2 sounds more advanced. That makes more people want it. But Java 2 isn’t really anything more than an incremental improvement over Java 1.1. That means they keep the 1.x to imply (mostly) compatibility.

Sun has been doing weird things with version numbers for quite some time. Sun OSes used to run 1.3, 1.4 … 2.1, 2.2, etc. Then they started calling (IIRC) SunOS 2.4 Solaris 4. (And then backwards labelled 2.3 as 3.) From then using the secondary digit(s) as the primary digit. So Solaris 9 is really SunOS 2.9. Got that? There was some lame explanation involving their windowing product and its numbering system and that Solaris is SunOS and OpenWindows together. Just marketing baloney that just confuses people. (Count me as an old fuddy-duddy for not considering a windowing environment as part of the OS.)

But notice that with Java the secondary number doesn’t correspond to the marketing number. And what are they going to do when they want to bump Java 1.x to Java 2.x?

I have a Sun Java 2 programming cert, btw, which: a. most people have never heard of, and b. puzzles many who thought Sun was still in Java 1.x versionland.

Sadly, no, unless you count “marketing people like round numbers” as a reason. When I worked at a company that produced consumer-oriented Windows software for a living, the marketing types did this stuff all the time. The engineers would refer to an update to version 8 as version 8.1, but the marketers would insist that it had to be called version 9. No one would buy an upgrade to version 8.1, they claimed.