A Funny Java Flavoured Look at the World

Friday, April 28, 2006

What's the difference between Java 5 and Java 1.5

We were going to ask the question in the title to people we were interviewing for a job. The amusing thing was when we asked people in the office no one knew the answer (except me because I am studying for my Java 1.5/5/Tiger exam).

It just highlights the stupid naming scheme used by Java, for a company who have a document on coding conventions to produce such a random naming structure seems odd, firstly you have the it called Java 5 and then Java 1.5 and also it is known by an animal Tiger, why do we need three names.

I could understand the lower numbers (but not both) when they were releasing dot releases but I think I read some where that they were no longer doing that. Here are the names of future releases which I got from Sun's site.

J2SE 5.0 (1.5.0) Tiger Sept 29, 2004

Future Releases
J2SE 6.0 (1.6.0) Mustang Not yet released
J2SE 7.0 (1.7.0) Dolphin Not yet released


The words, complete shambles spring to mind, why bother having two release numbering systems, does anyone else do this. I also forget they also changed the code for the development kit as well to JDK from Java 2 SDK. I heard a good joke on the Java Posse podcast they wondered if someone would one day make a new JVM which did Generics in a different way but what would they call it one of the Java Posse members asked. Java 2 was his response.

I found this document on sun's website it does have an interesting part where you can see where the release number is used.

The upcoming feature release of J2SE is version 5.0. We have changed the version of this release from 1.5.0 to 5.0 to better reflect the level of maturity, stability, scalability and security built into J2SE. (This release is also known as "Tiger".)

Platform and Product Names Use Version 5.0

Version 5.0 is used in the platform and product names -- the leading "1." was dropped. Where you might have expected to see 1.5.0, it is now 5.0 (and where it was 1.5, it is now 5). The names are now:


Full Name Abbreviation
Platform name JavaTM 2 Platform Standard Edition 5.0 J2SETM 5.0
Products delivered
under the platform
J2SETM Development Kit 5.0 JDKTM 5.0
J2SETM Runtime Environment 5.0 JRE 5.0

Due to significant popularity within the Java developer community, the development kit has reverted back to the name "JDK" from "Java 2 SDK" (or "J2SDK"), and the runtime environment has reverted back to "JRE" from "J2RE". Notice that "JDK" stands for "J2SE Development Kit". The name "Java Development Kit" has not been used since 1.1, prior to the advent of J2EE and J2ME.

As before, the "2" in Java 2 Platform Standard Edition indicates the 2nd generation Java platform, introduced with J2SE 1.2. This generation number is also used with J2EE and J2ME.

Where Is Version 1.5.0 Still Used?

J2SE also keeps the version number 1.5.0 (or 1.5) in some under-the-cover places that are visible only to developers, where the version number is parsed by programs. In these cases, 1.5.0 refers to exactly the same platform and products numbered 5.0. Version numbers 1.5.0 and 1.5 are used at:

  • java -version (among other info, returns java version "1.5.0")
  • java -fullversion (returns java full version "1.5.0-b64")
  • javac -source 1.5 (javac -source 5 also works)
  • java.version system property
  • java.vm.version system property
  • @since 1.5 tag values
  • jdk1.5.0 installation directory
  • jre1.5.0 installation directory
  • http://java.sun.com/j2se/1.5.0 website (http://java.sun.com/j2se/5.0 also works)

7 Comments:

  • Besides being able to demonstrate that you keep up with Java trivia (e.g. there is no difference), I don't see the benefit of asking something like this on an interview. It's like asking some obscure API question when most people would just go look at the JavaDoc anyway.

    By Anonymous Tony, at Fri Apr 28, 11:51:00 pm 2006  

  • There is no benefit. I only included it because it was such a confusing question. At the time I asked my friends who were Java Programmer also and only one of them actually knew the difference. I only stated it because I think it is quite wierd, why is it soo confusing. This is a fundamental piece of software which every Java developer is or will use, why is it so confusing.

    I will confess we only talked about asking the question, in reality it would offer no benefit on the persons skills whether they knew the answer or not.

    By Blogger Hosky, at Sat Apr 29, 02:31:00 am 2006  

  • By the way if u look into their naming conventions, they no longer use java2...but now their names are all in the following format...Java SE 5 instead of J2SE 5. Similarly for Java EE 5 and Java ME 5. So no J2 anywhere.

    By Blogger darshane, at Sat Apr 29, 10:57:00 am 2006  

  • While you mention Sun's coding-style guide: Have you really looked at it? It is a poorly maintained document which was obviously derived from a C-style guide.

    No modern language feature is even mentioned.

    BTW: Don't try to fuck over people in an interview, you'll get only pepole who don't care about that.

    By Anonymous Carsten Saager, at Sat Jul 15, 09:03:00 am 2006  

  • To figure out why the java naming scheme is so screwed up one need look no further than Sun's SunOS/Solaris naming confusion over the years. The moral is: keep marketing out of version decisions.

    By Anonymous ghettojava, at Sat Jul 15, 04:11:00 pm 2006  

  • Now it is no more J2SE 5.0. It is JSE5.0 :). Dont ask this question too in interview as it looks confusion.

    By Anonymous Anonymous, at Sun Jul 16, 09:03:00 am 2006  

  • I think this blog is pretty helpful, Just explaining the fact how naming conventions have changed in java and which one should be installed where, Just saved me heaps of time while a trivia problem I faced while running JDev. Thanks

    By Blogger sputmayer, at Mon May 28, 03:48:00 am 2007  

Post a Comment

Links to this post:

Create a Link

<< Home