By alexismp on août 03, 2004
What does compatible mean?
I just read this article claiming people are afraid compatibility will be broken with Tiger (JDK 5.0).
My experience so far is that existing applications run just fine with Tiger (just did another validation today with an ISV who's last Java certification was on 1.3.1 and everything just worked fine). As a matter of fact, Tiger's #1 objective is to provide quality (read Compatibility, Compatibility, Compatibility). I really think it's delivering the promise so far. The whole point here is that you can benefit from the implementation improvements (performance, tuning, management tools, etc...) by moving to a new version without having to adopt all the new features of a newer JVM and without breaking your development. I have to admit that not all parts of Java were created equal when it comes to upward compatibility and your mileage may vary.
Of course, using Tiger's new language features will require a 5.0 runtime, but this is the same as for Reflection, RMI, or EventModel in 1.1, JFC/Swing or Collections in 1.2, JNDI in 1.3, Assertions, regular expressions or NIO in 1.4, etc.... Also the article confuses MSVM (which was never really Java) migration with the adoption of the upcoming 5.0 platform. These are really separate problems : moving away from MSVM often requires rewrites (use the Java Upgrade Tool to assess), moving to Tiger just shouldn't (never say never).
There are too many good things in Tiger to ignore it.