The Saga Called Java and the Mac.
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?
»
Java development on OS X. Things that need to be done.
Part of my development efforts in the past few months has been based on Java and since MacOS X is the operating system of choice for me I usually use it for Java development.
On the C/C++ and of course Objective-C front, MacOS X is doing alright, despite the largely obsolete development tools involved. It has, not only due to Apple’s engineering efforts, a top-notch (albeit not the fastest one) compiler, gcc, a good debugger, gdb and an excellent RAD API, Cocoa. So, on this front I have no reason to ditch OS X and choose another platform for my development. OS X is as great as an OS a developer could ask. And with the advent of XCode, things can just get better — although maybe not as good as they could.
On the Java front, however, things are less rosy than this. Sun does not officially support Java on the OS X platform. Instead, due to a (very good!) relationship between the two companies, Apple gets to optimise Sun’s JVM for OS X usually releasing a J2SDK/JRE some months late. This is not just Apple’s fault. Apple shipped Web Start in 10.1, it also included support for Cocoa development in its development tools. Apple supported Java from the first moment, when Microsoft dropped support whatsoever in Windows XP. Apple is definitely trying.
»


