Time for Tiger

by Daniel H. Steinberg

In the last month or so I've been helping out with the port of a Math visualization application. Help out is a polite way of saying I've refactored a bit here or there but the other developer is doing all of the work. I've written a bunch of test code and I understand his design and I now have some fundamental questions that I'll explain in this series of blog entries.

First, I wonder whether or not we should move the project to J2SE 5.0.

This is a Java application that targets college students, professors, and professional mathematicians. There may be high school students and teachers here or there who use it as well. The application should be ready in six months to a year. What in Java 5 will make a difference to the lives of an end user?

I worry whether or not moving to Java 5 will mean that there are some people who will not be able to use this application. Tiger does not seem to benefit the end user (except for some of the threading facilities that have been added). Any thoughts on this?

Moving to Tiger will make the code much cleaner. It will be easier to understand the current codebase and it will be easier for developers to add surfaces and curves that the software will represent. As I read the current code I see places to use everything from enumerated types, to generics and annotations, to the enhanced for loop. All of these features that I fought a year ago, I'm now finding what I consider to be obvious places to apply them.

Part of it may just be laziness on my part. As I've become accustomed to some of the Tiger conventions, it's become less common for me to think about how I would work without them. One obvious place this comes up in the current application is in working with collections of points and vectors (vector as in ordered tuples representing derivatives). I take iterating without iterators and using generics when pulling an element out of a collection for granted now.

So this brings me to my questions:

(1) how do you decide it's time to move to Java 5.0 - and

(2) what are your reasons for and against doing so?

Is it time for Tiger?


2005-10-12 22:36:30
2b or !2b that is the question.
Daniel, Java 5 deliver the best VM perfornance to the end user. So, if you are targeting the end users you should have no doubt about using it. I not sure what your plans about packaging, but most of the tools just install its own JVM anyways... :-)
2005-10-13 00:25:33
The time hasn't come yet :)
java 1.5 provides fast primitives for concurrent programming, but nowadays 90% of concurrent code is encapsulated within application servers and they do not use it. So, it's not for serverside code.

On client side java 1.5 does nothing to improve swing performance, so it's not time for client apps either.

So if you like to type a lot of "<> casts" and call it genius typesafe programming, or you are marketing guy who wants to tie user to you product using custom annotations java 1.5 is right for you.

2005-10-13 09:28:41
Java 5 on the Desktop
Since Java 5 is faster and has much better WebStart and Plugin Stability there is no question that most Desktops come with 1.5 anyway.

Since you dont have to deal with exotic server hardware or commercial JavaEE Servers I dont see a reason to wait.

Personally I would use 1.5 even if I dont use the language features.