Apple threatens Java with death on the Mac
World of Android devs face Jobsian boot
Apple has "deprecated" Java on Mac OS X, meaning it will pay even less attention to upkeep of the platform, and it may kill the platform entirely on a future version of its operating system.
Many seem to think this is minor news. But if Steve Jobs is booting Java from the Mac, he's also booting Java developers, including all those coders building apps for a certain Google mobile operating system.
On Wednesday, as Apple cult leader Steve Jobs unveiled a future Mac OS incarnation dubbed "Lion" and a new Mac App Store, the company released a Java update for Mac OS X 10.6 — and the release notes revealed that the platform isn't long for Jobs' world. "As of the release of Java for Mac OS X 10.6 Update 3, the version of Java that is ported by Apple, and that ships with Mac OS X, is deprecated," the notes read.
"This means that the Apple-produced runtime will not be maintained at the same level," the note continued, "and may be removed from future versions of Mac OS X. The Java runtime shipping in Mac OS X 10.6 Snow Leopard, and Mac OS X 10.5 Leopard, will continue to be supported and maintained through the standard support cycles of those products."
In an obviously related move, Jobs also banned Java apps from the upcoming Mac App Store. "Apps that use deprecated or optionally installed technologies (e.g., Java, Rosetta) will be rejected," the store's developer guidelines say.
So, in one day, Apple deprecated Java and announced that applications using deprecated technologies such as Java won't be allowed in its official Mac Apps Store.
Apple's interest in desktop Java has steadily waned over the years. Updates became less and less frequent, and the Java-Cocoa bridge was knocked down in 2006. But if the company completely kills the platform on the Mac, that's something else entirely.
It would appear that Apple intends to stop shipping Java for Mac on a future version of the OS — mostly likely "Lion." And the further implication is that it will halt all development of Java for Mac. If this happens, it will be left for someone else to provide a viable version of the platform for Macs. And if Apple doesn't open source its existing work, that's no easy task.
"Others may be able to take up that slack," says Jon Abbey, a Mac-using Java developer at the University of Texas at Austin, "but it would require significant development work to reproduce what Apple currently ships, mostly because the Mac uses such a different graphical programming model from Linux or Windows, and because Apple has done a comparatively good job of making the standard Java GUI system look and work as well on the Mac as it does."
For what it's worth, with its latest Java update, Apple has allowed for third-party Java VMs to be installed alongside its own.
For the average user, no Java on Mac isn't that much of a problem. We stand by our claim that if Java suddenly disappeared from all desktops, relatively few people would actually notice. But those few include Java developers, which includes, well, Android developers.
'Like the iPhone/Flash thing'
Some end-user desktop apps still require Java, but this is hardly a list of marquee names. OpenOffice requires Java for "full functionality," but it will run without it. There's also the Mac-happy answer to OpenOffice, NeoOffice, the infamous P2P file-sharer LimeWire, and games such as Minecraft and Football Manager. But that's it for the semi-big names.
The worst you can say is that Jobs may murder an untold number of business desktop apps that require Java. "Yes, Java applications are few and far between in terms of public-facing desktop apps," Jon Abbey continues. "But internal to organizations, Java apps are quite common, because writing for Java is one of the easiest ways to get applications running across platforms."
There's also server-side Java to think about. But Mac OS X isn't exactly the world's most popular server OS. The real issue here is Java development. "There are a whole hell of a lot of Java developers toting around MacBooks at the moment," says Abbey. And this view is supported by multiple posts to Apple's official Java for Mac developer mailing list.
"Wow. Really? Really? Has Apple ever counted the number of Java developers using Mac laptops at Dev conferences all over the world, solely because it runs Java?" says another coder on the list. "My non-scientific, anecdotal estimate is around 50%."
If you don't have Java on the Mac, you can't run Java development tools such as Eclipse, IntelliJ, and NetBeans. And though there is a port of OpenJDK for the Mac, it's not quite complete. It's limited to the X11 windows system, and there's no support for native Mac GUIs.
"With a majority of Java development," Abbey says, "you need to have Java support on the desktop in order to do it properly."
The other salient point here is that if you don't have Java on the Mac, you can't use Google's Android SDK. Most Android development is done on Eclipse, and though Eclipse isn't required by the SDK, the Java environment is. "I guess Steve really, really doesn't like Android, does he?" Abbey says.
So, Steve Jobs never gave Java a chance on the iPhone or the iPad. He's now threatening to kill it on the Mac. And in so doing, he's shoving a world of Java developers off his desktops and laptops, including Android coders. "I cannot overstate what catastrophe this is," says one coder." If the future of Java on Mac is in doubt, then I have no other choice than going the Linux way...all the work I've done trying to get all developers converting to Mac is undone."
The question, as ever, is whether such a move will come back to haunt the company. "This definitely reminds one of the whole iPhone/Flash thing," says another coder. "It is certainly no accident that the app store announcement and Java deprecation happened on the very same day.
"I understand wanting to provide kick ass software to consumers. However, alienating developers on a grand scale will bite Apple in the ass eventually. Apple never promised the world to do no evil, but ... Oh well. It's clearly no angel." ®