Gosling blows lid off Jobs Java nonsense
Java daddy deprecates Apple cult leader
Steve Jobs has apparently weighed into the debate over Apple's decision to deprecate Java on the Mac, and his terse explanation was promptly deprecated by Java founder James Gosling.
According to MacRumors.com, a concerned Java developer emailed the Apple cult leader on Thursday to ask about Apple's plans for the platform, and as he's been known to do from time to time, Jobs responded.
"Sun (now Oracle) supplies Java for all other platforms," Jobs allegedly wrote. "They have their own release schedules, which are almost always different than ours, so the Java we ship is always a version behind. This may not be the best way to do it."
James Gosling's answer came via a blog post. "It simply isn't true," he said. But whatever the truth of Jobs' response, he didn't actually say what the company's plans are. It's still unclear whether Apple will actually kill Java for Mac – though this seems very likely – and he didn't say whether the company intends to help a third party build a replacement.
On Wednesday, as Apple unveiled a future version of Mac OS X and an imminent Mac App Store, the company also snuck out a brief announcement that Java had been "deprecated" on Mac OS X and that it may kill the platform altogether. "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," read the release notes from Apple's latest update to Java for Mac.
"This means that the Apple-produced runtime will not be maintained at the same level, 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."
After deprecating Java, the company also announced that applications using deprecated technologies such as Java will not be allowed in the upcoming Mac App Store.
If Steve Jobs is killing Java on the Mac – as seems likely – he's also turning his back on the untold number of Java developers who do their work on Apple laptops and desktops, which – it's worth pointing out – includes Android developers. Java development kits such as Eclipse and IntelliJ and NetBeans won't themselves run without Java. "I cannot overstate what catastrophe this is," says one coder on Apple's Java developer mailing list. "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."
Simon Phipps – the former head of open source at Sun and a current board member with the Open Source Initiative (OSI) – agrees. "This has to be a big negative for all the many developers who prefer to use a Mac than Windows to develop their Java code," reads a blog post from Phipps. "Looks like the future for Ubuntu as a developer desktop just got several degrees brighter – does Steve Jobs ignore the Ballmer Imperative at his peril?"
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.
"But I could be wrong. We'll see." ®