Apple has done Java a favor, or would have
I read the news today, oh boy:
“As of the release of Java for Mac OS X 10.6 Update 3, the Java runtime ported by Apple and that ships with Mac OS X is deprecated. Developers should not rely on the Apple-supplied Java runtime being present in future versions of Mac OS X.”
This implies that on OSX 10.7 or later, the Java runtime will not be part of OSX, and developers and users will have to … horrors! … download and update it themselves.
This is not a bad thing, on a number of levels.
For one thing, it’s what Windows and Linux and BSD (and HP/UX, and…) users do already. Solaris users get a Java runtime along with the OS, and while I haven’t run AIX for a long time, I imagine AIX users get an IBM VM supplied with AIX as well.
The vast majority of developers and users get to install it themselves; welcome to the club, OSX users. You get to pull up your pants one leg at a time just like everyone else.
For another, it actually helps the Java ecosystem, assuming some benevolent things happen: it means that the standard JVM that everyone else has to suffer with becomes the standard JVM that OSX users have to suffer with, too. Steve Jobs made this statement to Portico Systems, as written up on MacRumors.com:
“Sun (now Oracle) supplies Java for all other platforms. They have their own release schedules, which are almost always different than ours, so the Java we ship is always a version behind. This may not be the best way to do it.”
The only problem is that it moves reliance from one despotic overlord (Apple) to another (Oracle). Apple’s a great dictator as long as you’re in their camp; it inspires fanatical loyalty to its hardware and software platforms, not entirely unjustifiably. Once you step outside of the well-ordered marching lines, things get more difficult: the AppStore is a good example of Apple retaining control with an iron fist, ironic when you consider Apple’s iconic 1984 commercial, which introduced the Macintosh.
Oracle, on the other hand, is a great dictator under very few conditions at all. While they have some impressive products, Oracle’s primary goal is to make money, with loyalty being an aftereffect of the “nobody got fired for buying Oracle” principle.
This means that Oracle’s dedication to the Java-on-Mac community is not easily determined from an external view.
Oracle may be ready to jump into action, creating a Mac port of the JVM in no time flat, and saying “OSX users, we are here for you!”
On the other hand, Oracle could look at OSX, and say “Nobody pays for the stock JVM, why should we commit effort to it?” and now you have to hope that someone modifies OpenJDK independently to run on OSX.
So on one hand, it’s possible that Apple’s decision to deprecate Java on OSX is a cruel blow to Apple users and the Java community. On the other hand, it opens the possibility that Oracle could earn some positive karma from OSX users… while also making it possible that Oracle could quite literally kill Java on the Mac through inaction.
Which outcome is best? It’s clear that the best remaining outcome is for Oracle to supply a JVM for Mac, one that leverages the Cocoa look and feel in Swing. As long as Oracle holds Java in a tight grip, as they seem to be doing through the JCP and other channels, there is no other hope; if Oracle should ever set Java free (as James Gosling and others have advocated), then this might be the best thing that’s ever happened for Java on OSX.