This is one of those blogs where I’m trying to take off my editor’s hat and speak with my own voice. Usually, I do that when I plan on offending someone, so that it isn’t mistaken as being “official”.
Over on java.net, John O’Conner has posted a blog describing why he’s angry that Apple hasn’t released its Java SE 6 implementation for Mac OS X yet, despite the fact that they had an early-access program that pretty closely tracked the SE 6 betas, and that SE 6 has been final for several weeks.
Give me a reason, any reason at all, to continue using Mac OS X as my primary development platform for Java applications. Java SE 6 is available now for Windows, Linux, and Solaris platforms. Why not for Mac OS X? Don’t you dare mention that Java SE 6 is available on Mac OS X…I know about that. The available Java SE 6 implementation is stuck at build 88 and hasn’t been updated in months.
He goes on to complain that the JDK is the most important thing he uses, and his choice of operating systems prevents him from using the most current version. He’s also upset by the fact that there is no information coming from Apple as to when we might see a final SE 6 for OS X.
Well, at the risk of sounding like an apologist for Apple, the latter behavior is very much their modus operandi nowadays. This is not the company that wants all its employees blogging about their current project, their cats, or the latest Miyazaki movie. Quite the opposite: Apple jealously guards its secrets and its plans, and (all together now) “does not comment on unannounced products.”
So, yeah, you don’t know if or when SE 6 is coming from Apple, when you can count on it being on users’ machines, or your own, whether it’ll be Leopard-only or compatible with Tiger as well. Frankly, this is a case where you should apply Adamson’s First Law: All software is vapor until it ships. Meaning that any talk about an OS X implementation of SE 6 is just that — talk — until it’s out. If you count on any specifics of anyone else’s yet-to-be-released software, you do so at your own peril. After all, wasn’t Sun originally planning on mid-2006 for SE 6? They missed by six months.
SE 6 was officially released on December 11. It’s been just a month and a half since then, with the winter holidays falling in that period. Realistically, it’s been maybe six business weeks. Should all third parties that develop their own Java implementations be expected to have theirs out by now? Then I guess people who depend on the IBM JDK’s, such as AIX and Linux-on-PowerPC users, should also be furious, since IBM only just dropped its first early access release in the last week, and has given no guidance as to when it will be final. If Apple has turned their back on Java developers, then I guess IBM has too, and we should all pick up our tinkertoys and stomp back home to Windows or Linux (so long as it’s the Sun-supported distros and not something crazy… like, you know, Ubuntu or anything).
It’s easy to underestimate the difficulty of bringing Java to another platform. Apple was incapable of bringing Java 2 to the classic Mac OS and instead waited for Mac OS X, so it could work with Java’s “Latent Subtle Unixisms” more directly. By my count, Java SE 6 has 3,777 classes and interfaces… just regression testing and passing the TCK for all of this sounds like a beastly proposition, to say nothing of developing code to integrate it into your platform or to address bugs that show up on your OS.
I sound angry, but mostly I’m concerned. Concerned that the talkbacks to John’s blog have an air of entitlement that doesn’t serve us well. It’s worth remembering that the only way Java (or any technology) moves forward is if it helps people do something, specifically if it helps them make money. Cynical, but that’s pretty much the prime motivator of most of what’s going on in our industry. Nobody’s interested in charity cases, or tiresome name-calling “evangelism”, so we as Java developers need to be keenly aware of where Java provides value, and where it doesn’t. And if a major OS vendor suddenly de-emphasizes Java — I don’t think this is the case with Apple, but many others seem to — then a more useful response would be to come to an understanding of why the vendor’s self-interest would lead them to that decision. If Apple didn’t think Java were worth its time and money, then I as a Java developer would really like to know why. Maybe they know something I don’t. Maybe I’m too set in my ways. Maybe C#, Ajax, and Flash have already won. And, then again, maybe not.
If you think everything begins and ends with what serves your needs today as a Java developer, go nuts. I’m more interested in the big picture, and where things are going.