The Macintosh has always been unique in terms of software, ever since it came out in 1984. From the now almost disappeared ‘Resource Fork’ of MFS/HFS, the pascal slant of Mac OS releases up until the early 1990s, the multiple architectural and design transitions, the Carbon/Cocoa duality of early Mac OS X, ‘Classic’ and ‘Rosetta’, the irrelevant HIG, to the numerous, continuous self-contradicting choices that Apple has kept making throughout its development in the past twelve or so years that Jobs and Co. returned to Cupertino.
Apple has, ever since the mid-1990s had decent support for Java on its platform. For a long time the company has provided its own versions of the JRE/JDK. When Mac OS X came out the reason was simple: Sun wasn’t going to do it, it was already burdened with a number of versions and the post-bubble era was a tough time for the company, so Macintosh support was out of the question. In the early years of Mac OS, say until 2004, Java was a rising star in the OS X community; Apple was doing an relatively good job providing recent-enough versions of the JRE/JDK for its computers and most people were happy. The ‘Java bridge’ and the nascent — for Macheads that is; the technology was much older and extremely well-designed, for its time — Cocoa framework allowed beautiful, usable rich Java applications to be written for OS X, at a time when SWT was somewhat immature and Swing was, well.. Swing.
Then some people at Apple decided that Objective-C was worth a revamp, it started working on Objective-C 2.0, which gave ‘managed code’ a new meaning among Mac developers, and — in the process — dropped the Java bridge; Jobs didn’t want people to code rich Java apps with Cocoa widgets on the Mac anymore, in the same way he didn’t want anyone to keep writing (let alone start writing) applications using the Carbon framework. Cocoa and Objective-C was the way.
The end of quasi-decent Java on the Mac was heading our way at breakneck speeds, but few would expect that Apple would stop providing newer versions of Java for its computers, without someone else picking up the task of doing so. Or would they?
A Reputation for being Late
End of an era
Java on the Mac was always late and half-baked. That’s the truth. The reason is that Apple typically took what Sun provided, perhaps a little earlier than the general public in some instances, and added their own platform-specific optimisations before releasing it either as part of an system update or as its own package, at first through its Developer portal (Apple Connect) and later through Software Update. In the eight years I’ve been using Mac OS X (since the dark times of 10.0.4), I can recall at least two occasions when those depending on Java for their work, project, livelihood got pretty upset with Apple’s work. This got increasingly worse as Apple made it clear that Java was not part of their strategic plans for the platform.
Last week Apple announced that they are going to stop supporting Java on Macs. The style of the announcement is typical of Jobsian Apple: showing no interest in how the community is going to be affected and making a pompous announcement. The style of a austere, didactic parent that doesn’t engage in discussion, but does what he thinks is best for their child. Their change in policy is not necessarily bad. If anything this is the best time in the eight and a half years Mac OS X has been out to do it: Apple is enjoying a very high market share in the US, its core market, and across the world and many in the Java development community use Macs for their work. Apple has also moved once again firmly into ‘consumer’ territory neglecting its once strategic vehicle — the Mac — for its newer, mobile offerings; it makes sense for them to ditch Java support. At the same time Java, as a platform has recently been purchased by a company that is wealthier than Sun ever was, that has invested considerably in Java-based technologies and that is facing increasing threats from competing platforms. Apple is betting that Oracle will pick up Java for the Mac. It would’ve been somewhat less irritating (and thrlling) for its users if Apple gave a damn about them and tried to find a solution to this issue before dropping support, but that’s irrelevant in the grand scheme of things.
With Oracle not exactly feeling great about the open-source heritage that Sun left it, Apple accelerating away from the Enterprise — once again — to where the money is right now and the community getting ready to pick up where Oracle stops, I am confident that Java on the Macintosh will live on and chances are it’ll be better than it ever was. If anything, Apple’s announcement is yet another proof of the increasingly evident shift in the company strategy in recent years.