There was recently an article that Steve Anglin linked to touting Java’s performance on Windows Vista. Toward the end of the article, the author mentioned that the platform of choice for Vista is going to be the soon to be released Java 1.6. 1.5 will also be supported on Vista (it will work), and the article said the 1.4 will work, but it’s not a big priority. On Macs, there’s a whole different calculus of which version of Java to use because anything lower than 10.4 will not support 1.5. Without getting into the details about the installed user base, and the economics of the particular business application I’m building i tell you the decision tree I went through to chose the base level VM version for a client application that needs to be released in the middle of ‘07:
* 1.6 was ruled out, it’s too risky. I mean that’s not to say that it isn’t something that will work out of the gates, but I tend to give Sun a few months to work out the kinks in any new VM release. Plus, I can’t expect to dictate that people upgrade to 1.6 when I’m not sure what sort of support 1.6 will have on existing platforms. Again, this isn’t FUD (you Sun employees don’t need to start a flamewar). But, 1.6 is not the right choice for a widely distributed retail client application yet.
* 1.4 was ruled out, it’s likely to see support end in the next two years (my assumption). Plus, it’s going to work on Windows Vista, but I’m going to have to expect that the support of 1.4 is going to stop sooner rather than later. Plus, how old is 1.4 now? Many years. From a business perspective, building on 1.4 is somewhat risky because of what I read on that Vista blog entry - people at Sun are not focused on getting 1.4 to work on Vista, if it isn’t getting the same level of attention, it’s more likely to be something that will remain unpatched when 1.6 and 1.5 are the priorities.
* 1.5 was selected. It is going to work on everything OSX 10.4 and up, it’s going to work on (at least) Windows XP and up. It is sufficiently mature and stable. and, the real reason…. I can’t program without both annotations and generics. Plus, all the fancy stuff I want to write about uses 1.5 anyway.
The only place I could see myself using 1.6 is in a server-side application that needed the new support for dynamic languages. In that case, I’m not sending bytecode out into the wild, and I have full control over the operating environment.
Share your own thoughts and experiences?
Please post a comment if you have your own thoughts on this. Especially if you have any “inside” knowledge of support plans. :-) It would be interesting for everybody to see what the current thinking is on which version people are building applications for? I’ve assumed 1.4 and up, but I’m sure there are still people doing battle with 1.2, out there.