Apple Prefers Hot Cocoa, Java Not so Much

“When it comes to the future, there are three kinds of people: those who let it happen, those who make it happen, and those who wonder what happened.”

—John M. Richardson, Jr.

The recent decision by Apple to deprecate Java on Mac OS X seems, at first, like a disaster for the science and enterprise communities. Upon further reflection, that may not be the case. Here are my current thoughts, as always, subject to further refinement.

There is no question that the Java language and all of its variants, JSE, JEE, JME, have a firm foundation in the enterprise, higher education and science. While the U.S. Government has tended to prefer C++ in many cases for realtime work and in some sectors has been slow to adopt Java, it’s not universal. There are perhaps a few billion lines of code of Java running today on Linux, Windows and some on Mac. But mostly on enterprise servers.

However, when you look at the desktop Mac from a development perspective, there isn’t a whole lot going on in the Java space when compared to Cocoa. I am sure that Apple, which has likely done a survey, found that 1 in N commercial applications have been written in Java for the Mac, and I estimate N is between 200 and 500. It may be true that the number one activity for Java on the Mac, these days, is Android development. Precisely 0 of 300,000 iOS apps are in Java because, of course, it’s not an option on iOS. (Catch-22.)

Maintaining Java on the Mac isn’t just laziness on Apple’s part. I know that the company is growing rapidly, and it’s easy to argue that because Apple’s management structure hasn’t changed from the days when the company’s annual revenues were US$6B a decade ago, Apple is overloaded. We know that Mr. Jobs likes to keep things minimalist, aggressive, and he likes to keep a start-up atmosphere. It would be an easy shot to suggest that Apple engineers are overworked, unable to keep up, that management and financial resources are artificially constrained, and that the solution to a problem was to dump the management of Java on Oracle. That would lead to an outcry by the science and enterprise communities.

I don’t think that’s the case. At least not the greater part of it.

Java in the Balance

There are some plusses when it comes to cleaning the Mac OS X house. When it first came out, in March 2001, a necessary goal was to cater to the Unix community. As a science and technology marketing manager at Apple in those days, I spent a lot of time promoting the UNIX nature of Mac OS X to scientists. As an immature OS, the UNIX underpinnings of Mac OS X were a linchpin to gain a foothold in science, engineering and education.

However, in the last ten years, while Apple has grown and the iPhone and iPad have taken off, Windows and Linux have continued to be the primary platforms for Java development, especially on the server side. While many companies and universities love Java development on the Mac desktop, it isn’t a force in the Apple community.

What is a force is Cocoa and iOS. There are 300,000 iOS apps. Developers are jumping on the Cocoa and iOS bandwagon. Apple is integrating new iOS technologies back into Mac OS X, as described by Mr. Jobs during the October 20, “Back to the Mac” event. When I visit Barnes and Noble and Borders in Denver, I see a boatload of books on how to develop apps for the Mac and iPhone/iPad/iPod touch with Cocoa and Xcode. Few if any on Java development for the Mac. That’s a bellwether for the future.

The sad truth is that only a relative handful of specialized people are developing for Mac with NetBeans, Eclipse and Java. Worse, as James Gosling described it, Apple has to support private API’s to make Java work nicely on the Mac. I suspect Apple didn’t mind doing that for Java as a development language itself, but may feel that its hands would be tied moving forward if those APIs were folded into the rest. So there’s one reason for Apple to fret about the state of Java on the Mac.

Another problem is that a significant number of security problems are related to Java, and these are outside Apple’s direct control. As Roughly Drafted points out, when stones are cast at Mac OS X security issues, Java problems are conveniently lumped in, to Apple’s detriment.

Gotta Move Forward

Finally, I suspect that as part of the process of merging iOS and Mac OS X in a fashion that’s not yet clear, Java is in the way. For example, the forthcoming Mac App Store requires apps to download and run without installing or depending on third party frameworks. While Mac users will certainly continue to run Mac OS X as a desktop UNIX OS for Java development, they may have to branch off in the near future and live in a slightly different technology universe. Meanwhile, Apple, never happy to live in the past, will move forward.

I always worry that Steve Jobs is in too big a hurry to make Windows and PCs obsolete. He only has a few years left to complete his work, and by racing into the future furiously, Apple risks offending all the people who have consumed Apple’s Kool-Aid, bought off on the vision of the moment, and invested heavily in Java development. However, I haven’t seen much of that hue and cry. For example, I didn’t see the sky falling at

I have said before that I think if the “problem” of Java on the Mac becomes a significant issue, the Apple/Java community will rally, work with Oracle, and push for the necessary measures. I used my network to ask someone at Oracle if they’d like to say anything on the record, and that person declined. I don’t take that as a bad sign. Rather, I’ll guess that Oracle just hasn’t decided what, if anything, they want to say in the record right now, especially since Apple has said they will continue to support the current versions of Java for Leopard and Snow Leopard.

If Apple developers had seized on Java as the premiere method for developing Mac OS X apps, then the situation may be different today. But that didn’t happen. As a result, Apple has to do what’s best for itself as it moves relentlessly forward. The explosive success of Apple, its plans for hardware in the future and Lion all make it appear that Apple is full steam ahead into the 21st century, and Apple just hates being tied down to legacy things that don’t have a massive ROI. That’s the way we roll in the Apple world.

Discussion is Good

My readers know that I was up to my ears in UNIX at the Oak Ridge National Laboratory, Lockheed Martin and Apple. That brought me into the Java world. My wife is a professional Java developer for a defense contractor. There’s a warm place in my heart for Java.

So. I will admit to this. This is how things seem to me so far, and I am heavily read on the matter. If there are organizations out there who feel that Apple’s decision, in light of all I’ve said above, remains way out of line, feel free to contact me. We’ll continue the discussion, I hope profitably, for years to come.


Postscript.  Here’s an idea.  Keep your big screen Mac.  Load up Parallels Desktop or VMware Fusion and install, say, Red Hat or Fedora Linux, and do your Java development there.  But the Mac OS X is right there too for all the Mac things you prefer to do.