Since the big meow on Friday, lot of unhappy people had been talking and blogging about how terrible and unacceptable is the absence of the Java 6 from the Leopard. Some post were sounding very dramatic "I would not buy Mac if I only knew ..." - which is a bit silly. The Leopard's 300 new features were posted and touted and hyped for two weeks. Some of the "great" improvements were actually fairly modest improvements - so it was OBVIOUS that Java 6 is not going to be included because it would definitely make the list. QED.
So what happened since Friday October 26th that made an extremly popular Java development platform (Mac) suddenly so awfully inadequate and such a bad choice ? I mean - when you were reading the Java related blogs during last year, majority of the screenshots from Netbeans or Eclipse were coming from the good looking and polished Tiger UI. How come that it did not matter then that it did only run Java 5 and in even lower version ?
I agree that it would be much better if Mac would contain the Java 6 and that Apple should do much better job in outlining the plans and the roadmap for supporting new Java versions. But is it really such a big deal if we have to wait few more months ? Not from my point of view - which may be shared with some more developers in enterprise world. The thing is that industry does not move as quickly as we developers do and like. Many of our clients are still on 1.4, some even on 1.3 version - and have no rush to move up. Nobody from them is really asking for Java 6, the upgrades are being performed to Java 5 in the best case. There must be a really good business case to justify the upgrade - because you cannot just recompile server side application from Java 1.3 to Java 5 or 6. Not in real world of J2EE.
Should the transition be between Java 1.4 and Java 5 and should we be prevented to use Java 5 - yes, that would be a big deal. Language enhancements between these two releases were very important from developer's point of view. Java 5 was a great upgrade, similar in scope to jump from C# 1.0 to 2.0. But the upgrade to version 6 is much less dramatic. There are performance gains and optimizations - yes, but in most cases Java 5 or even 1.4 is fast enough, so unless you have performance issue this is not the key. It has better interoperability between .NET and Java web services - if you are in heterogeneous environment, these may come handy. There are also many improvements in version 6 that will make developer's life easier (debugging enhancements, scripting and dynamic languages) but from application's business owner's point of view these are not really that important, certainly not showstoppers or must have's. Many of these can be achieved either using tools or enhancements outside of the JDK.
It is sad that Java does not seem to be a top priority for Apple - but delivering major software creation is always a juggling act between time and resources available and final featureset - as we have seen in 5 years delay of the other major OS with same story of silent dropping of features. What makes it harder to digest for Java developers is that Apple seemingly did not have enough resources and enough time to finish Java 6 for Leopard release - even one year later after it was available on other platforms - and to add insult to injury, there somehow was time enough and resources available to get in much more recent advancements from some competitive technologies - such as Ruby on Rails.
I think that - as often before - the general perception is influenced by the loudest unhappy voices, while the more reasonable are not so articulate and less notable. I believe there will be several major Leopard updates coming in next few months - like fixing the bugs and adding read/write to ZFS functionality (which is to certain degree available now) - and hope that one of these updates will bring Java 6. In the mean time, I will happily use Java 5 knowing that it can do everything my Java projects need.
Lack of Java 6 on one of the three major client platforms can be seen from two angles: you can say "I am not going to use OS X because it does not have Java 6". Or you can say "I am not going to use Java 6 until it is available on all major platforms".
Or you can play an optimist and try to find something positive in lack of Java 6 on Leopard: we all know that SDK for iPhone /iPod touch is coming in February 2008. One of the reasons why the SDK is delayed is security concerns - Steve Jobs said the company is trying to do two things at once -- provide an open platform to developers while protecting iPhone users from viruses, Trojans and other malware. Hmmm - does not this sound like providing a sandbox - something that Java is excellent at ? Is it too good to be true that delay of Java 6 may be a good news ?