Some nice comments on Mustang compatibility

; Date: Sat Feb 18 2006

Tags: Java

Weiqi Gao has ( a blog posting with early impressions on Mustang, a.k.a. Java SE 6. In all it's very positive talking about several applications he tried which worked fine.

He talks a little about the adoption rate for Java 1.5 (a.k.a. Tiger), and says "I have a feeling that the lack of a 5.1 version has really hurt the adoption of JDK 5".

I want to mention that, what would have been "5.1" are the update releases. If you go to the JDK 5.0 download page at ( you see it saying "JDK 5.0 Update 6". Yes, there have been six updates to JDK 5.0 since the FCS, and the releases happen approximately every 2 months. The fixes in these update releases are the same sort that had previously gone into 1.4.1, 1.4.2.

If you're one who says "never trust version x.0 of anything", well, Tiger is past version 5.0 and is at version 5.0_06, and that "_06" on the end makes a world of difference. By our current release policy you're never going to see a version x.1 again, because we're relying on these update releases to fix those sort of bugs.

And, while I'm here, I want to again mention the regression contest. Weiqi Gao is talking about compatibility, the ability to take an application that works fine against a previous Java release and to have it continue working on the next Java release. ( Patrick Curran is working on the compatibility side of Java, and is now writing on his blog about it. Compatibility is a big part of our work with Java, and that's not just an empty promise mouthed by our management.

One of the ways we measure compatibility is in regressions, which are features which worked in a previous release and no longer work. A rule we follow in determining whether a given release is ready to ship (as FCS) is whether there are regressions. If there are regressions we will not ship. But, let me make that clear, those are known regressions, because if we don't know about the regression then we can't do anything about them.

This is where you come in. I've said this before, where compatibility is really measured is when you run your application against the new Java release. Does the application continue to work? If not it may be a regression in Java. The sooner you tell us about any regressions you see, the greater likelihood it will be fixed in the Mustang FCS. If you do find a Mustang regression, visit the ( contest web site and enter.

Source: (



Given the history of JDK naming and release cycle management, the "By our current release policy you're never going to see a version x.1 again" (bold by me) just made me smile.

Posted by: kirillcool on February 18, 2006 at 12:56 PM

Grin, no comment ;-)

Posted by: robogeek on February 18, 2006 at 01:33 PM

Why beeing stubborn, why not be smart and call 1.5.0_03 1.5.1 and so on. Then 1.5.0_06 can be 1.5.2... Smart, but not as corrrect. Smart is better, IMHO.

What would Microsoft do? Are they successful? ;)

Cheers, Mikael Grev

Posted by: mgrev on February 18, 2006 at 04:56 PM

hrmm... weird. I don't know why someone would update to a version of Java if it had another number behind a number. After reading the blog, it appears to be based off of a 'feeling', not an argument. Oh, well. :) leouser

Posted by: leouser on February 20, 2006 at 07:05 AM

About the Author(s)

David Herron : David Herron is a writer and software engineer focusing on the wise use of technology. He is especially interested in clean energy technologies like solar power, wind power, and electric cars. David worked for nearly 30 years in Silicon Valley on software ranging from electronic mail systems, to video streaming, to the Java programming language, and has published several books on Node.js programming and electric vehicles.