Over a million developers have joined DZone.
Platinum Partner

Apple Shuns Java in Mac OS X

· Java Zone

The Java Zone is brought to you in partnership with ZeroTurnaround. Discover how you can skip the build and redeploy process by using JRebel by ZeroTurnaround.

Apple continues to drive away Java developers and the Java platform itself today as news has come in that they will deprecate Java on Mac OS X.  Apple's Java runtime for Mac OS X 10.6 (Snow Leopard) update 3 and OS X 10.5 (Leopard) update 8 are deprecated, which means they won't be maintained at the same level as before.

It also seems likely that Apple will remove their Java runtime completely from the upcoming Mac OS X 10.7 (Lion) release and future releases.  However, the Java runtime that ships with Leopard and Snow Leopard will be supported and maintained until the end of their support cycles.  Apple's OS X 10.6 update brings the Java version up to 1.6.0_22.

The release notes give users instructions for installing third-party VMs, indicating that Apple is going to leave it to OpenJDK ports such as SoyLatte to make Java runtime builds for the Mac OS.  


In the next year or two, we may not see Eclipse on Macs anymore.  This slow death could begin if Apple doesn't ship a JVM in Lion.  The other major IDEs, NetBeans and IntelliJ IDEA, will have an even tougher time staying on the OS because they rely directly on AWT and Swing.  A port of OpenJDK might use X11 instead of native OSX windowing components.

Alex Blewitt explains the Eclipse issues in more detail:

One of the key problems is that the OSX implementation of Java provides a number of Cocoa-specific bindings and hooks. Whilst Eclipse is based on top of SWT, and SWT uses the native widget set directly (rather than AWT and Swing which render their own), there are a number of hooks into the Cocoa layer to provide application-level services. Some of these have been extended in the redesigned eAWT package to permit Java applications to opt into user events (including the “sudden termination” which enables faster OS shutdown).  --Alex Blewitt

The Writing Has Been on the Wall

We saw Apple's declining enthusiasm for Java back in 2007 when Leopard was being released and PPC users were left with an old version of Java when 64-bit JVM development was halted.  It was a major shift from 2001 when Steve Jobs said Mac OS X was the best platform for Java development.

There was an article on Javalobby about the 2007 Java-Mac OS X events and at that time, Java Father James Gosling had already given up on Macs:

"As several people have noticed at my talks over the past few months, I no longer carry a Mac laptop. As much as I love the Mac's eye candy, it really hasn't been keeping up as a developer's machine - their attention has clearly been elsewhere.  Apple's JDK support is a part of my problem, and yes, I have their JDK6 from the ADC. I've met the folks on the JDK team and they're trying real hard. It's hard to tell what the fundamental issue is, but it keeps feeling like the big problem is that developers aren't the "Target Demographic"."  --James Gosling

While Apple hasn't explained its motivation for deprecating Java, possibilities might include problems with security, Apple's preference toward its own technologies, or what Gosling mentioned: demographics.  Today's news probably won't have a significant impact on Apple's sales, but there will probably be a number of Java developers looking to use another OS.

Does anyone use Mac for Java development?  How does this news affect you?

The Java Zone is brought to you in partnership with ZeroTurnaround. Discover how you can skip the build and redeploy process by using JRebel by ZeroTurnaround.


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}