If Apple Won’t Build It, The Community Will

The average Mac user is probably unaware of the smoldering controversy surrounding Apple’s lack of support for Java 6. In fact, I’ll hazard a guess that the average Mac user may not even know or care that Java is installed at all, but continued, first-class support for Sun’s flagship, cross-platform development and run-time environment is critical to the future of OS X — both desktop and server — in many institutions/organizations.

Not a Straight Path

The road to Java on OS X has been rocky at best. Eric Burke has created a definitive timeline comparing Sun’s Java releases with Apple’s Java releases and does an admirable job justifying Apple’s release strategy to-date, but the fact remains that Java on OS X has lagged behind its Windows, Linux and Solaris counterparts. It may be prettier and better integrated with the desktop experience, but it has suffered — at times — from performance issues and lack of features that have fostered many heated threads in the Java community.

It’s About the Developers

Even with these issues, you can find hundreds of well-maintained Java apps that take advantage of OS X on Apple’s download site, Version Tracker and MacUpdate (as well as other aggregate listing sites). Why? — because Java has a huge developer following, is used as the primary teaching language in a large percentage of schools and (anticipates much feedback in the comments as I write this) is much easier to develop programs in than other languages.

It’s no secret that Apple has touted Objective-C as the language de rigueur for OS X, and I suspect that part of the reason for the lack of Java 6 support in Leopard is due to the focus on enhancements in Objective-C (including some that make it more Java-like), Xcode and the inclusion of new debugging and performance analysis tools. However, Java 6 has some enhancements of its own, including major performance improvements, GUI toolkit updates and the ability to interface with the same debugging/performance back-end Apple is utilizing. In fact, Java 6 seemed like a no-brainer to be included in Leopard, or at least shortly thereafter. Developers who have been focusing on taking advantage of these latest improvements in the Java platform are more likely to keep focusing their efforts there since they then have the ability to deploy the results of those efforts on multiple platforms (except, of course, Apple’s).

It’s About the Enterprise

Lack of Apple-backed support for Java 6 will also slow or halt the adoption of OS X in the enterprise. While PHP and Ruby are all the rage with the Web 2.0 intelligentsia, Java remains the backbone of corporate web application development. If Apple wants to ensure continued adoption of OS X server (and desktop) at businesses they must show a commitment to the full Java roadmap and keep current with platform releases. Any sign of wavering support will kill current adoption and prevent further investment — at least in the short term — in Apple technologies for Java applications.

It’s About the Community

The education/research community has been adopting OS X since the early releases and Apple itself showcased scientific development on OS X at the 2007 WWDC. It’s extremely important to ensure that OS X meets the needs of this group of users and yet Apple has not made one of the core components available to them.

Thankfully, rather than abandon the platform completely, the community — led by Landon Fuller — has done what Apple has failed to and is set to release an open source, independently built version, based on the BSD port of Java 6, in the near future (preview releases are available now). The GUI won’t be as integrated as Apple’s official releases have been and there will be some rough spots as they work out all the kinks, but it’s great to see developers take the initiative and do what Apple will not.

This work is only possible due to the open source underpinnings of OS X and the hard work of a number of very smart people dedicated to running their applications on Apple technologies. Apple should take heed from this community effort and finalize their Java 6 release as soon as possible, then get to work on adding Java support for the iPhone (one of the easiest ways to enable secure/sandboxed application development/deployment).