Gosling blows lid off Jobs Java nonsense

Java daddy deprecates Apple cult leader

The word from the Jobsian mountain top

Steve Jobs says that Apple is pulling its Java implementation because Snoracle handles Java development for all other platforms and Apple runs behind Snoracle's release schedule. It goes without saying that there's a delay when Apple does the work rather than Snoracle, but Gosling was quick to point out that the first bit is rubbish.

"It simply isn't true that 'Sun (now Oracle) supplies Java for all other platforms,'" Gosling says. "IBM supplies Java for IBM's platforms, HP for HP's, even Azul systems does the JVM for their systems (admittedly, these all start with code from Snorcle - but then, so does Apple).

"In the beginning, Microsoft provided Java for Windows - but Sun took over when Microsoft violated their contract and made Java code written on Windows unable to run on other systems. Sun also provided the VM for Linux because there was no one else to do it." According to Gosling, Sun allowed Apple to do its own port – as it allowed others – because the company insisted on it.

Gosling adds that there has long been talk of the community taken over development on Java on Mac, there are some notable obstacles to such a handover. "One was that a lot of Apple's web sites (MobileMe, iTunes, the app store) were Java apps and they were nervous about not doing the QA themselves," he writes.

"The point became somewhat moot because Apple ended up using a lot of Sun hardware (yes!). But the biggest obstacle was their use of secret APIs. Yes, OS X has piles of secret APIs. Just like the ones that Microsoft had that contributed to their antitrust problems. The big area (that I'm aware of) where these are used is in graphics rendering."

Many have tried to downplay Apple's move, saying that Oracle or some other third party can come along and pick up the slack. But it isn't that simple. "It’s hard to see how this can be recovered unless Oracle can sweet-talk Apple the way Sun used to each time someone screwed up," Phipps says.

As Phipps and Gosling points out, Apple's Java requires a certain amount of expertise unavailable to the outside world. "The Java port in use includes a lot of Apple know-how that is not generally available (such as private interfaces) to make Java integrate well rather than using just X11," Phipps says. There's a port of the open source OpenJDK for the Mac, but it's not exactly complete. It's limited to the X11 windows system, and there's no support for native Mac GUIs.

Plus, Apple hasn't said whether it plans to help out with a third-party implementation or even share its code. "[Java for Mac] belongs to Apple, so Oracle would either have to receive a copy of Apple’s implementation or start again with all the UI and platform native code," Phipps continues. He also points out that keeping updated will be more difficult for a third-party, and he questions how much a third-party will be motivated to maintain the platform given that Apple's Mac App Store bans Java apps.

Jon Abbey, a Java developer at the University of Texas at Austin would welcome a "first class" Mac Java port from Oracle, but like Phipps, he questions whether this will actually happen. "Whatever Oracle thinks, lots of talented Java developers have fled Oracle since they bought Sun, and it's not clear to me that Oracle has the means to put out a meaningful new release of Java in a timely manner on any platform, let alone on the ones they support now plus the Mac," he says.