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.
A few months ago 1.4.1_01 for MacOS X was released by Apple. At the time the latest official version was 1.4.1_02. Unfortunately 1.4.1 itself had several problems, and added to that list. Now, 1.4.2 is out. And MacOS X is stuck with 1.4.1_01.
My development efforts on Java are based on Jetbrains’ IntelliJ IDEA and on the IBM donated Eclipse platform. Both underperform when used on MacOS X, despite the occassional comment by an Apple or Sun executive/engineer that OS X ‘screams’ with Java. Especially IntelliJ IDEA is severely hindered under OS X. Lately I used IDEA and Eclipse under Linux, one of the platforms officially supported by Sun and thus running Sun’s own Java 1.4.2. The differences were astounding. Both in terms of execution speed of the programs involved and display thereof on the screen, the Linux version beat the OS X one on every count. Now, considering the performance advantage of modern x86 processors against the PowerPC G4 series, I’d like to state that the machines used were a dual 1GHz PowerMac G4 (QS2002) with 1.5GB of PC133 RAM and a 2001 Athlon 1GHz with 512MB of RAM (PC100), so the x86 shouldn’t have *any* advantage. Contacting the IDEA developers with specific bugs and problems with their product, they responded that they were in contact wth Apple regarding the several problems of the JVM in OS X.
Consequently, I am forced to “switch” — at least temporarily — to Linux for my Java development efforts and frequently double-check that the things I wrote on the Mac work well with Sun’s 1.4.2.
With Apple obsessed with keeping control of every single angle of OS X application development, and entering Sun’s domain by releasing very powerful and affordable machines I can see how, despite their efforts, they will neglect or fall behind other platforms when it comes to Java. Hopefully, 1.4.2 for OS X will be out soon and will have, on top of the 4000+ bugs that Sun’s 1.4.2 fixed, resolved several of the Apple specific issues. I am looking forward to Sun working closer with Apple and creating an ‘official’ version of Java for the Mac. This would free Apple resources to do other things while upgrading the Mac to the ‘officially supported’ platform status that it deserves, hopefully providing a higher quality JVM for Java developers out there, including myself.