I’m trying to figure out what to call the new version of Java when it comes out this fall. Will Java 5 catch on, or will everyone except Sun and maybe book publishers call it Java 1.5?

I initially thought 1.5 would win, thinking the 5 was a marketing name, like when “Java 2” came out in 1998. But maybe Sun is taking the 5 more seriously as a true version number. Here’s why this might be the case.

The official name of the new Java, as unveiled last month at JavaOne, will be “Java 2 Platform Standard Edition 5.0.” See that? It’s Java 2 5.0, not Java 5. It’s the dot (full-stop, period, or whatever you call it) after the 5 that’s making me think the name might be a real version number rather than a marketing name.

Before Sun released Java 1.2 on Dec. 8, 1998, it had re-branded the name as “Java 2” and called it something like the “Java 2 Platform, Standard Edition.” But I don’t think Sun ever said Java 1.2 would be called Java **2.0</b>. Then, when versions 1.3 and 1.4 came out, the name was still Java 2 Platform Standard Edition, but with the version numbers attached. </p>

With Java 1.5, Sun seems to be pushing the “5.0” brand as a version number, as if the next release will be 5.1. And it looks like they have to, because they’re still using the “Java 2” brand in the name. I.e. this next version (Tiger) won’t be called “Java 5 Standard Edition” version 1.5. It’s Java 2, 5.0.

Anyone have any scoop on this from Sun? Is 5.0 a real version number rather than a marketing name? If you look at the J2SE page at Sun, there’s a mixture of calling the new version of Java “5” and “5.0” — i.e. a marketing name and a [marketing mame that sounds like a?] version number. The download for the beta is called “J2SE 5.0 Beta 2,” so the “5.0” is sure starting to look like a version number. But then the URL to the “J2SE 5.0 Beta 2” page has 1.5.0 in it, http://java.sun.com/j2se/1.5.0/index.jsp.

So far, though, the beta versions of the JDK are still calling themselves 1.5. If you run this code with the 1.5 beta:

public class VersionInfo {
public static void main(String[] args) {
System.out.println(
"java.version=" +
System.getProperty("java.version")
);
System.out.println(
"java.vm.specification.version=" +
System.getProperty("java.vm.specification.version")
);
System.out.println(
"java.vm.version=" +
System.getProperty("java.vm.version")
);
System.out.println(
"java.specification.version=" +
System.getProperty("java.specification.version")
);
}
}

you get:

java.version=1.5.0-beta3
java.vm.specification.version=1.0
java.vm.version=1.5.0-beta3-b57
java.specification.version=1.5

So is 5.0 a version number or a brand name? Will the final release of Tiger show java.specification.version=5.0?