Mac OS Java

July 9, 2008 – 6:15 am

Apple and Java are an interesting story…

A few weeks ago I got in touch with some of the people from the Apple Java Runtime team. There are all very talented and very nice people.. The only problem? there is only a handful of them… Considering the scale of their task, to adapt Sun’s Java runtime and SDK source code to a new platform, I was really shocked to find out that there is less than a dozen people. Compare that with the hundreds working at Sun (the number was given to me by a friend working for Sun as lead for one of the java.xxxx APIs). In retrospect, this small number is very coherent with how little Apple cares about Java. I still recall an interesting discussion with someone high in the development tools hierarchy at Apple who explained to me, his personal opinion mind you, how Java is threatened by irrelevance within the next 5 years.

How do you answer to something like that.. ‘duh.. where’s your brain?!’ .. ‘hello, anyone home? when’s the last time you looked outside the window of your little world?’ … instead, I just pointed out how Java has been an unprecedented success in the history of programming languages, managing to dethrone C/C++ in less time than it took either of them to even just get a stable specification, and managing to become the most likely replacement for Cobol. Then he said “that’s what I mean by irrelevant”. Then it downed on me that we were not talking about the same things at all. From his golden bubble in the silicone valley, irrelevance is simply a synonymous for un-cool, web 1.0… so all he really probably meant was despite being the most taught and maybe even used language, Java is very web 1.0, while our Objective-C which is almost as old, if not actually older, than Java, while still having less users than php or python gained in the same amount of time, is totally web 2.0… what do they call it? the millennial generation. I decided not to remind him that until they re-implement WebObjects(now that’s one very relevant technology, isn’t it) in Objective-C, Apple itself will be entirely dependent on a “soon to be irrelevant” technology for their very own survival. minor detail.

But now I do understand why Java 1.6 took so long to show up on Tiger, and even when it did, why there was so many problems with it. In retrospect, I find it almost miraculous that Apple is able to deliver a complete Java SDK, and a very decent at that, with such a small team. My biggest problem with 1.6 on Tiger was when Microsoft Office 2004 stopped working. Within a couple days I had done an update of iTunes and Tiger, and installed the latest development preview of 1.6 for Tiger. Realizing that Microsoft had announced a problem with Office, I fired the office updater only to find out… nothing. Launching any of the Office apps gave the same result. Within a couple days, my three Tiger machines were in the same state, and I had my answer as to what was going on: somehow the Java preview had disabled Rosetta… pretty difficult to miss that elephant staring at out in the narrow corridor..

Pretty ironic as I recall a comment from Bertrand Serlet about how at Apple’s systems were designed by focussing on getting the best hashing algorithms everywhere, to which I replied something to the effect that it was not always the case that it was enough to assemble the best individual components together to build the best products, and that great care should be taken to understand the nature and effects of the system’s interactions before making some decisions to optimize certain parts, prompting him to concede that a GetLastError() scheme was not necessarily the “obviously wrong design pattern” that he made it to be. I should know something about that myself.. having worked on a network stack where all the layers make the exact best decision that is possible to make for that particular layer.. and having watched the system give up transmitting network packets exactly at the time when it should start doing it: having no means to know about the other layers making similar perfect decisions, the system sometimes reaches a perfect phase inversion situation where it stops when the LOS radios are in range.

Enter this code

You must be logged in to post a comment.