Is Java The Secret Weapon That Apple Ignores?
That was one of two original titles that I was considering for this article. The other one was "Why I Am Giving up On Apple." They were based both on Steve Jobs comments, "No one cares about Java anymore," and also on the fact that just when we thought Apple was starting to do a good job keeping up with current versions of Java, they are back to their same old selves again, of being way behind the curve when it comes to having a recent JVM. There was a little bit of good Java news that came out at WWDC however, but also a fair amount of bad news. First the good news: At WWDC, there was a session entitled "Discover Java on Mac OS X Leopard". Not only will Java 6 be 64 bit on Leopard, but it will also take advantage of some of the new features in Leopard, such as resolution independence. So it seems that perhaps the fact that once again, Apple has fallen way behind on keeping Java up to date on OS X, may be justified by the new features and the 64 bit conversion. They probably have a lot of work to do on Java 6, but perhaps it will be worth the wait. Also, Apple has *finally* released an updated preview of Java 6 for OS X. But now, for the several pieces of bad news: First of all, the updated preview of Java 6 requires the absolute latest version of Leopard preview. If you can't find the latest version of Leopard preview, you aren't alone. Only people who attended WWDC were able to get it. Even members of ADC who shell out a significant amount of money each year for benefits such as early access to preview versions of software, cannot get the latest Leopard preview. Leave it to Apple and their culture of secrecy to once again alienate their developers--even the ones who pay good money to be members of ADC. When is it going to end? It's not enough to pay a $500 tax to access Apple's "secret" resources anymore? Now we have to shell out to go make a trip to WWDC? Second, the fact that Java 6 will take advantage of new features only available in Leopard and the fact that the latest Java 6 preview requires the absolute latest Leopard preview confirms the suspicions many have had: First, Java 6 will not be released for OS X until Leopard ships. Second, Apple is going to continue its trend of forcing you to upgrade to the latest version of OS X if you want to use the latest version of Java. As if this weren't enough, Apple also announced that Carbon will not be updated to 64 bit, so there will be no 64 bit Carbon on Leopard. This is certainly not the best news for SWT, which relies on Carbon instead of Cocoa. It is very likely, it shows the writing is on the wall that Apple intends to deprecate Carbon. I've discussed, with Daniel, one of our editors at EclipseZone, what this means for SWT on a 64 bit JVM on Leopard, and neither one of us is really sure at this point. But, there would seem to be a worst and best case scenario that can be discussed: Worst case scenario: If it is not possible to call 32 bit native code from 64 bit Java using JNI (I don't know if it is or not), than SWT will not work at all on Leopard under the 64 bit JVM. Best case scenario: It works, but suffers a performance hit because of conversions that have to be done between 32 bit and 64 bit. Combine that with the fact that the 64 bit JVM basically has to drop into 32 bit mode to do anything involving SWT, and thus cannot take advantage of any of the potential benefits of the 64 bit PowerPC G5 and Intel CoreDuo processors. Unfortunately, there are several major technical issues with porting SWT to Cocoa that make it unlikely to happen anytime soon. I guess, as far as Carbon goes, I can't really blame Apple for not updating it to 64 bit. Carbon was never really intended to be more than a transition API that allowed developers to write applications that would run on both OS 9 and OS X. But given that OS 9 is basically obsolete as far as anyone wanting to write applications that can still run on it, it probably makes sense to deprecate Carbon. Is Java the secret weapon that Apple ignores? Well, it seems they aren't completely ignoring it. but neither are they giving it the attention it needs. And that is a huge mistake in my opinion. Apple can not rely on getting people to buy into writing native applications for a platform that has been losing market share, and right now, only has around 2% world market share. Apple already has a hard enough time attracting developers who are willing to make the substantial investment needed to learn an entirely new set of tools, an entirely new API, and an entirely new language (not many developers know Objective-C), in order to supply applications for a platform with very limited profit potential. Even when I develop hobby applications on my own time that are open source, I never develop specifically for Mac. I want my applications to be usable to as many people as possible. So it only makes sense for me to either target Microsoft Windows specifically, or use Java to support multiple platforms. But if Apple continues its current trend of requiring their users to have the absolute latest version of the OS to run the newer versions of Java, and of keeping everything a secret even from their own developers, we may see a time where even many Java applications will not run on Mac. The bottom line, is that Apple needs to stop treating their developers so poorly, or pretty soon, many of their developers will simply decide it is not a platform worth targeting anymore. But for some reason, Apple just doesn't seem to get it. Until next time, Mike Urban murban@javalobby.org |