Time for Tiger
by Daniel H. Steinberg
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?
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... :-)
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.
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.