Why Mac Developers are Concerned About the J2SE 5.0 Wait
With Tiger released for the systems that Sun cares about - Windows, Linux and Solaris - it was only a few hours before the where's the OS X version posts started appearing. Some immediately called this "whining", but history shows there's good reason for Mac developers to be concerned.
The following table summarizes the lag times between releases of JDK's (later called J2SE SDK's and JRE's) and their Mac equivalents.
|1.0||Jan 1996||May 1996||4 months||Legend has it Sun had only one person doing the Mac port|
|1.1||Feb 1997||Dec 1997||10 months||Apple tossed MacJDK's AWT implementation|
|1.2||Dec 1998||never||N/A||Put off Java2 until Mac OS X, which was years late|
|1.3||May 2000||March 2001||11 months||See above. With the delay of Mac OS X, could jump straight to 1.3.1|
|1.4||May 2001*||March 2003||23 months*||Rewrote Carbon-based UI layer in Cocoa|
|Note that 1.0 and 1.1 were only available on Mac OS (System 7.5 - 9.2), while 1.3 and beyond were only on Mac OS X
* - this is incorrect, see discussion in talkbacks
So, over time, the lag time between a JDK release and its corresponding Mac version has gotten much, much worse. If you were to extrapolate a trend from this, you might think Tiger wouldn't reach Mac OS X for 2-3 years. Of course that's ridiculous, since 10.4 is already known to have some amount of Java support, but still, the track record here is not a timely one.
"And why's it such a big deal," you might ask, "nobody expects an insta-port of something as big as Java." Good point - after all, where are the bloggers demanding that IBM immediately deliver Java 1.5 for AIX, or for their Linux and Windows JVM's for that matter?
I think there's some fear that being able to do your Java development on a Mac is a tenuous situation. In my last blog, I mentioned that there seemed to be more of an audience for Java development on the Mac than Java deployment, and wondered if that was really enough of a market to justify Apple's investment in Java. I got some pretty angry talkbacks - the threading has been lost in the move to Movable Type - but one thing to notice: the last four talkbacks are all "I wouldn't have a Mac if it weren't for being able to develop Java on it", which was exactly my point.
Because now, if a project in your company moves to J2SE 5.0, being on a Mac is suddenly very difficult. Some IDE's may support compiling 5.0 code from a non-5.0 environment (someone enlighten me with a talkback, s'il vous plait), but you still won't be able to unit test without running on another box of the Win/Lin variety.
And from practical experience, there are probably a lot of co-workers who would love to see the Macs go away. The Windows Bigot Java Programmer seems like it should be a contradiction in terms - if you like Windows so much, why not program in Active X or .NET or whatever Redmond's flavor of the month is - but in reality, I think this actually accounts for a massive percentage of Java programmers. Certainly half the developers I've ever worked with. Grep some source code sometime and see if you don't find
java.io.Files constructed with
C: at the beginning of the path, or with a complete path that uses
\ for the separators, or ties to native code that are only implemented with Win32 versions, or other Latent Subtle Windowsisms
It's a pathology, one that I don't claim to understand beyond the annoying habits of confirmism, thuggish tech evangelism, or perhaps what Ayn Rand called "the hatred of the good for being good." At any rate, these people don't like the Mac, and would be perfectly happy to advance a project to J2SE 5.0 not just because of its intrinsic benefits, but because hosing the Mac developers is a happy side-effect.
So that's why I think so many Mac developers are so concerned, and won't feel safe until Mac OS X 10.4 ships. Of course, at some point, there will be a new version of Java and the cycle will repeat.