I Think I Figured Out Apple's Java 6 Strategy
Apple has been really negligent with Java: First there wasn't a Java 6 for ages, then it only ran on 64 bit machines. And while all current Macs are 64bit, this excludes a lot of Intel Macs. Thus, targetting Java 6 on the Mac was not practical. Fortunately, one of the WWDC 2009 sessions was “Java 6 on Snow Leopard”:
As Snow Leopard moves to Java 6, learn modern techniques for the best possible Mac experience while maintaining cross-platform compatibility using the latest version of Java. Find out how Mac OS X continues to build on its strong Java support with new UI enhancements, new APIs, and a next-generation Java Applet browser plug-in.
Now I think I understand Apple's Java 6 strategy:
- Don't support PowerPC, ever.
- Initially support Java 6 as quickly as possible on currently sold Macs (with the limited resources Apple has allocated to Java). This meant support for 64bit Intel only.
- Eventually support all Intel Macs. Well, at least I don't see any other way of interpreting the WWDC session (if Java 6 is standard on Snow Leopard and Snow Leopard runs on all Intel Macs...).
And while I'm still underwhelmed, this is acceptable. What is not acceptable is not having communicated this strategy for years.
From http://2ality.blogspot.com
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)






Comments
Felix Martin replied on Mon, 2009/06/22 - 2:52am
Snow Leopard doesn't run on all Intel Macs. From http://www.apple.com/es/macosx/specs.html:
64-bit support
requires a Mac with a 64-bit processor.
Axel Rauschmayer replied on Mon, 2009/06/22 - 3:50am
If I read the page correctly, it is the feature "64-bit support" that "requires a Mac with a 64-bit processor", not Snow Leopard per se.
Jeff Martin replied on Mon, 2009/06/22 - 8:53am
Axel Rauschmayer replied on Mon, 2009/06/22 - 9:28am
in response to:
Jeff Martin
There must be some kind of deal between the two companies. Do you know the details or are you guessing? It could be anywhere between Sun saying that if Apple doesn't do it, they won't. Or Apple saying that nobody should touch their system. Either way, I blame both companies for not finding a more developer-friendly solution. And again I have to wonder why there is no public statement that explains the situation.
Trevor Leach replied on Mon, 2009/06/22 - 9:41am
Carl Antaki replied on Mon, 2009/06/22 - 11:01am
Mike P(Okidoky) replied on Mon, 2009/06/22 - 1:09pm
I can't understand for the life of me why Sun employees happily flaunt around their arrogant Apple MacBooks.
Ubuntu is cooler, more "hip", and *much* better for Java development.
Screw Apple, for about 3+ years now.
Zart Colwin replied on Mon, 2009/06/22 - 1:35pm
Apple have no interrest in java at all, their prefered language is ObjectiveC period.
I have been a fervent Macintosh developer for about 20 years (since 1984 up to 2004), but I had to abandon the Macintosh out of anger when it finally became obvious that java would never ever be a first class citizen on the Macintosh in order to not challenge the prefered Objective-C language.
At that time, I have been told by an insider (From the Apple Developer Support) that Sun often attempt to convince Apple to let them implement the JVM for the Macintosh but Apple has always refused because they (Apple) didn't want to reveal some technologies implemented within, the then new born, MacOSX.
Since then, Sun, which didn't need the tiny Apple marketshare (less than 3% around that time) to assure the success of Java, just said "f**k you Apple".
Java had the success we know it had: thanks to its technological power.
Apple had the success we know it had: thanks to its marketing power.
But Java on Macintosh is the failure we know it is: thanks to ... technologist does not go along with marketer.
ZartC.
Keith Fry replied on Mon, 2009/06/22 - 4:35pm
It's interesting that the title of this article is "Apple's Java 6 Strategy".
IMO this is really Sun's failure to recognize that the Mac OS is a player in the desktop/development space. Since they didn't support Mac OS early on due to its perceived limited market share the result is no consistent solution and they now cannot afford to play catch up by developing it from scratch as they don't have the $$ to do it themselves. Apple doesn't have a vested interest in keeping it up to date because Apple is more interested in expanding their "cutting edge" solutions and developing iPhone tooling. (OK, I admit, "cutting edge" isn't entirely accurate but you get the idea).
I don't consider this as Apple holding back, instead it's just not Apple's priority until they see a benefit that outweighs the efforts they currently have underway for Mac OS X and the iPhone. Until they see this benefit, Java will be lacking on the Mac OS. How do we as motivated developers make them see the benefit? That in itself would be an interesting article, to whomever figures it out...
Sun either needs to take the reigns and drive the solution, or sit back and accept that they get what they paid for due to their lack of vision. And in reality it is not Sun's problem any more - it is now Larry Ellison's problem.
Mike P(Okidoky) replied on Mon, 2009/06/22 - 9:58pm
One possible solution is to make Java2D completely OpenGL based, if that's possible. Then take the open source version of Java, and use it.
That's what the problem is, right? Good performing graphics and UI's?
Thierry Milard replied on Tue, 2009/06/23 - 2:58am
For me, if Apple and sun have a strategy in common (I really have no time to choose who's fault it is ... I mean yes there has been long standing issues on Mac), there will-or-should quickly have a jre version of the java-6-update-10 so that we developpers can publish Applets on the Mac-Apple platform.
for example I do 2D stuffs and 3D. I also would like to do javaFx things. Because it is visual stuffs, at least 30% of my customer ask me for a Macintosh Apple version of the Applet. And of course it just can't do it [I use specific things of the update 10 jre].
Jason Kilgrow replied on Tue, 2009/06/23 - 7:52am
@Jeff Martin:
"Sun is responsible for this mess."
I would agree if it not for the fact that Apple will not allow SUN to write a JVM for the Mac. One reason Apple is always behind is because it takes them forever to "get around to" building a SUN JVM that works with their OS.
Sorry. I don't usually say this, but, you are dead wrong.
Zart Colwin replied on Wed, 2009/06/24 - 6:11am
in response to:
Keith Fry
@kfry:
Now that the JDK (version 6 and 7) is open sourced, isn't it interresting to think about why is there still no version developed for MacOSX ?Is it because of:
ZartC
Osvaldo Doederlein replied on Wed, 2009/06/24 - 7:30am
This thread is so full of misinformation (or trolling) that it's incredible, I wonder if I am being victim of some DNS attack... but well, let's go...
1) Sun doesn't produce the Mac JRE because Apple doesn't want it. This was widely discussed by official sources (at least from Sun - Apple's engineers probably can't talk about anything). Some years ago, when that was decided and Apple did a pretty good port of Java 5, it even looked like a good idea - and I think it was at that time that Sun people started to buy MacBooks wholesale. But then, Apple changed their priorities due to the success of OSX and iPhone platforms.
2) There is a open source, comunity driven OSX port of Java 6, based on OpenJDK: SoyLatte. It's a relatively new port with limitations like only supporting X11 as its GUI foundation. Perhaps the Mac lovers should start a campaign to push Apple to open source their OSX-specific enhancements, just like we all pushed Sun for years until they started OpenJDK.
3) Sun's Java2D implementation already has a OpenGL back-end, so it's completely accelerated in platforms like Solaris and Linux. That's been true for several years already, although the quality of the OGL pipeline is much better in Java 6 (D3D was obviously the priotity when they started to accelerate J2D years ago). I don't know if Apple's JRE is based on OGL or in OSX-specific APIs (Quartz stuff), but the OGL should certainly work fine as Apple supports OGL2 very well AFAIK. Although use of OSX-specific APIs should be necessary for the best integration with Mac's desktop and unique features.
Les Stroud replied on Thu, 2009/06/25 - 5:57pm
_mindMeld
sub online replied on Fri, 2009/06/26 - 2:34am