I wrote this a few weeks ago for my ONJava blog, but decided against posting it… the moment had passed. Now that Leopard is out, doesn’t have JDK 6, and all the Java types are being whiny little bitches about it and posting screeds against Apple, I figured I’d reprise it here…
James Gosling has abandoned the Mac, because Java has fallen among Apple’s priorities and is now well behind the current version on Sun-supported platforms.
Legions of Java developers are posting comments, followups, and blogs in support, pillorying Apple, reminding us of how Steve Jobs once promised to make the Mac the best Java development platform. The Java evangelism machine, such as it is, is wrenching itself into action.
Will someone please tell me what of value is to be accomplished?
To me… writing from the POV of a long-time Mac and Java developer… the long sad slide of Java from Apple’s development priority list is something that Java partisans should be trying to understand, rather than snottily gainsaying. The Father Of Java moves to Solaris, admits that as a laptop OS it lacks the competence to even put the computer to sleep when the lid is closed, and the crowd cheers with support.
I’m sorry, but a hint badly needs to be taken.
Dr. Gosling writes, “as much as I love the Mac’s eye candy, it really hasn’t been keeping up as a developer’s machine.” Two points to make here. First, he didn’t used to just see the “eye candy”; years ago he wrote that he thought of OS X as “Linux with QA and Taste.” The very term “eye candy” has become something of a pejorative for dismissing the Mac, to suggest its strengths are purely visual. This despite the fact that the Mac can, by Gosling’s own admission, handle laptop power management better than Solaris.
Secondly, it’s been keeping up just fine as a developer’s machine… for those developing Mac software (or Flash, but that’s another story). Those who are playing with Core Image and QTKit and all the other neat stuff in Apple’s API’s are pretty happy with it. The missing word here is “as a Java developer’s machine”. JDK 6, which Apple develops for OS X because Sun doesn’t do a Mac version of their Java runtime, has yet to be released despite some 2006 preview releases tracking fairly closely with Sun’s previews. In absence of official information, most resigned themselves to the idea that Apple had made JDK 6 a Leopard-only feature, and then Leopard slipped by six months. There’s also the fact that Apple deprecated Java as a development language for Cocoa, which brought the predictable screeds of Apple Doesn’t Like Java, Never Has, Probably Never Will (despite developing and maintaining their own VM, because Sun wouldn’t, since the late 90′s, and including it in every copy of OS X, something you don’t see on Windows or Linux).
Well, consider this fact: while Java is going away as a Cocoa development language, Leopard will apparently add Ruby and Python as languages for developing Cocoa apps. Surely someone can use that to pillory Apple in the comments or in their own blog about how selfish or shortsighted Apple is, or what a rotten person Steve Jobs is, or whatever.
Look, people, seriously. All rational action is motivated by self-interest. If keeping up to date with Java is not in Apple’s best interest, but embracing Ruby and Python for GUI development is, then maybe it’s time to think of why that is.
In a followup to Gosling, Keith Weinberg writes, “Apple needs to get the picture on this. Not only will they miss out on the developers, they’ll also miss out on the applications they’ve developed.” Really, applications they’ve developed? Where? They’re all on the server, which is probably running Windows or Linux, and so whether a client is a Mac or Windows or an iPhone or a Wii is irrelevant. End-user Java applications? Name a few, not counting NetBeans or LimeWire, which have been the default answers for years. Flash is wiping out the last of the applets, and installation/maintenance hassles made double-clickable Java wretchedly impractical. I’ll grant you the point on missing out on the developers, but is it that big a deal? A few million Java developers, some fraction of which own Macs, makes them just another special interest group, like educators, media professionals, scientists, etc: they’ll be a factor in what’s included in the OS or default apps, but since Java developers use Macs to develop apps that are rarely if ever run on Macs, they don’t contribute to the well-being of the platform like other kinds of developers do, and are thus more like the other special interest groups.
There’s a sorry sense of entitlement in part of the Java community, and it comes off as shrill and obnoxious (don’t get me wrong: the MacHeads do the same thing, and a hell of a lot more often). The worst thing to me is that Java comes off sounding like a charity case, something Apple should embrace because bloggers are trying to guilt or insult Apple into doing so, rather than the value of supporting Java being self-evident. That kind of thing quickly becomes self-fulfilling, and the danger becomes that we’re supporting Java not because it’s the best thing out there, but because we’re desperately afraid something less deserving will win.
If you really think Apple should support Java better — that it should get the runtime and JDK out faster, keep Intel and PPC support up to snuff, talk it up to developers, etc. — then answer this question: how will doing so make more money for Apple? In what way is supporting Java going to move more Macs, iPods, and iPhones, or demand a higher price, than if corporate resources were directed elsewhere. Say, to the hardware lab where they make sure that the laptop goes to sleep when you close it.
If we as Java fans can’t answer that question, then we’ve got to accept that Java isn’t what Apple needs, and let them go their own way. And maybe that’s what James Gosling’s done too, because maybe supporting the Mac isn’t what Java needs either.