tags:

views:

108

answers:

6

I'm currently running my web application on Java1.5 codebase, running it on Tomcat 5.5 and MySql 5. Looking through the list of additions that were added into Java1.6, I have to ask the question, "Is there any compelling reason to move from 1.5 to 1.6?". There seems like an incredible lack of necessary improvements and additions. A lot of changes in Swing (not that interesting). Keep in mind the current web application is stable (-ish) and moving up a version always entails some risk.

Am I missing anything important by not moving up? Is there a good reason to move up?

+1  A: 

The newer VM is faster.

Russell Leggett
+4  A: 

Java 5 went "end of service life" in 2009.

John M
A: 

It's usually easier to keep an application up to date if you stay on the most recent version. (Not bleeding edge, but current).

The transition between 1.5 and 1.7 may require more work than if you make the shift to 1.6 first.

ScArcher2
A: 

jvisualvm in the JDK is reason enough to upgrade. Allows you to investigate and profile an already running process without any preparation.

Thorbjørn Ravn Andersen
+1  A: 

Sun (now Oracle) Java 5 has reached end-of-service-life status on October 30, 2009. That means that Oracle will not do bug- and security-fixes anymore on it, unless you pay for a "Java SE for Business" contract (see the web page for details).

Besides that, Java 6 contains a lot of performance improvements (which might or might not matter for your particular application).

Jesper
+4  A: 

Faster execution time. Better dynamic debugging. Better native look and feel in Swing (not important to web apps). Supported on Windows Vista (could become important, depending on your platform).

JavaScript integrated into the platform (could be a big deal if you update your webapp). Better scripting language support (could deploy RoR in theory, if needed). Lightweight web services platform integrated (might be useful). Better already integrated JDBC4 support.

In other words, it depends, but generally there's enough to make a compelling argument. There's also enough that you might not benefit from to make a compelling counter argument.

Eventually you will have to change. When you do, if you've made the counter argument to stay the same for too long, you wind up having to fix multiple accumulated historical issues all at once. That can overwhelm a team, so sometimes it is best to stay "just a bit behind" current, but never very out-of-date.

I'm assuming you've looked over the features page, and if you haven't, you should.

Edwin Buck
Everyone's made some good reasons, so I think I'll have to consider it seriously. The only negative - need to write more tests first, to ensure the upgrade goes well.
bluedevil2k
@bluedevil2k: java usually has very good backwards compatibility (this slows progress, but anyways). If you are not using any jvm-specific hacks (which should not happen in a web-app), transition from 1.5 jre to 1.6 jre will be seamless.
tulskiy
@bluedevil2k - *"The only negative - need to write more tests first, to ensure the upgrade goes well."* Another way of putting that is that you need to write tests that you *should* have written already, and *should* be using now for regression testing of your bug fixes and new feature rollouts.
Stephen C