Analysts Weigh In on Apple's Decision To Deprecate Java in Mac OS
While Apple CEO Steve Jobs was wowing the crowd last week, unveiling the latest incarnation of the Mac OS X (Lion) and the new MacBook Air at a press event, his company was quietly issuing release notes stating that, as of the release of Java for Mac OS X 10.6 Update 3, "the Java runtime ported by Apple and that ships with Mac OS X is deprecated. Developers should not rely on the Apple-supplied Java runtime being present in 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, the note read.
"Deprecating" the custom-ported Java packages for the Mac leaves them in place, but without support, and with a strong recommendation for developers to avoid it.
Jobs gave his company's reason for dumping Java on the Mac in an e-mail response to Java developer Scott Fraser, CTO of Portico Systems, that Fraser posted on Flickr. "Sun (now Oracle) supplies Java for all other platforms," Jobs 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, the father of the Java programming language, a former Sun Fellow who left his position at Oracle in April, refuted Jobs' claim on his "One a New Road" blog: "It simply isn't true that 'Sun (now Oracle) supplies Java for all other platforms," he wrote. "IBM supplies Java for IBM's platforms, HP for HP's, even Azul systems does the JVM for their systems… [T]he platform owners wanted to do the ports themselves so that they could put a lot of energy into it, and because they knew the platforms better than anyone else...."
"Apple was the same: in the early days, they were insistent on doing the port themselves," he continued. "They put terrific energy into it. They did a good job. But then, as OS X took hold and Apple was able to convince developers to target their non-portable/proprietary environment, Apple's fundamental control-freak tendency took over and they put less and less energy into Java..."
Gartner analyst Mark Driver agrees with Gosling's point: "The idea that Apple would expect Oracle or someone else to deliver a VM for their OS doesn't make any sense," Driver said. "What Jobs said about who supports the VMs is absolutely wrong. It is the expectation and the general trend in the industry that the owner of the operating system is the porter and the maintainer of the VM on that OS. That's the case in virtually every OS except Windows, and that's the exception because Microsoft made Java code written on Windows unable to run on other systems, and Sun was forced to take over the job."
IDC analyst Al Hilwa sees the decision as an unfortunate development for both Apple and Java, but not unexpected. "Steve Jobs made it clear what he thought of what he called 'translation engines' with his iOS restrictions earlier this year," Hilwa said, "which are essentially what virtual machine technologies like Java are. Now, the other shoe drops as Apple appears to be interested in taking the Mac into a walled garden environment in the mold of the iOS. While it's doubtful they will ever bring this entire strategy to completion, it's certainly taking the Mac in a more antiseptic direction, which is slowly kicking out any non-native technologies."
Redmonk analyst Michael Coté makes the point that Apple has become the successful company it is today by building a closed stack under its control, and that consumers so far seem to love them for it.
"Java is outside their control and consumes resources to get 'perfect' enough to run on OS X," Coté said. "The desktop hasn't been a top strategy for Apple, but with their new sizable minority share of the desktop market and, more importantly, their ambitions to replicate the iTunes App Store on the desktop, logic would dictate that Apple needs to lock down desktop development more. My theory is that Apple sees the Mac App Store as good bet for more revenues and a way to generate desktop sales, and wants to control as much of that stack as possible. Java is way out of their control, so under that strategy it's got to go."
What about the consequences for Java developers?
"While Java on the desktop may not be used for a huge amount of desktop applications on OS X, it is used to back most of the development tools, especially Eclipse," Coté said. "Developers have flocked to the Mac as their primary computer and development machine. Without a good, frequently updated Java runtime on the Mac, all those developers will be in trouble. It's not really that dire just yet, but it's certainly annoying for developers and the companies putting out Java-based developer tools. It creates a great opportunity for someone to come in and play good cop to Apple's jerk move here."
Hilwa agrees: "In theory anyone can try and put a JVM on the Mac and support it," he said. "Oracle, for example. But of course this is a costly endeavor and only Apple would know the intricacies of its platform to pull something like that off effectively. So this is a problematic issue for Java developers on the Mac. On the other hand, there aren't many enterprise apps on the Mac, as Java is largely an enterprise server environment at this point. Having said that, Java developers generally love Macs because they like the underlying Unix capabilities and this move will not endear them to Apple in the long run."
In fact, it's hard to imagine that this decision will do anything positive for Apple's developer community, Driver said.
"Java is far and away the most dominant development tool on the planet, and will be for at least another decade," he said. "How in the world do you drop support for Java on your operating system today and not expect that to hurt your developer community? I confess: the move baffles me."