So Long Apple. The Party's Over
You only have to spend a few minutes at JavaOne to know that Apple is popular with Java developers. Everywhere you look, you will see someone carrying around a shiny brushed metal MacBook Pro, or a gloss black or gloss white MacBook. Rick, Matt, and I, all have MacBook Pros. In addition, I have a dual core G5 PowerMac on my desktop, and Rick has a MacPro. Between company purchases from Apple, and our own personal purchases, we've spent tens of thousands of dollars with Apple on computer products. I think we've been quite loyal to Apple. But as of today, that's all changing for me. Today I am saying "so long Apple. The party's over."
What party do I mean? I mean the free ride that I as a Java developer have been giving Apple for way too long now. And as we have remained loyal to Apple, Apple has basically spit in our face. Not only did Leopard not ship with Java 6, but Apple, in typical fashion, apparently thinks it has no obligation to its customers to inform them about why the plans changed, and when (or even if at this point?) Apple will ever have a working copy of Java 6. Apparently, Apple has even been just deleting threads in their forums where people are complaining that Java 6 doesn't exist, rather than actually respond to them and let them know if there is any kind of time line for Java 6. But wait... It gets worse...
Java 5 on Leopard is broken out of the box. I recently tested an application I wrote that uses Java2D for image zooming. On Linux, Windows, and on Java 5 in OS X Tiger, it worked fabulously. The scaling and zooming are very smooth. On Leopard, it was not even usable. It's slow, and manages to rescale during zooming at about 1 frame every 5 seconds.
As a few people pointed out to me, it turns out, that the reason for the slow image performance is that Apple, for whatever reason, decided to stop using the Quartz pipeline as the default pipeline for Java2D rendering. You can turn it back on by setting the property apple.awt.graphics.UseQuartz=true, and that fixes the slow rendering problem. However, this is probably of little comfort to developers of desktop Java applications who are going to have to field all the support calls from customers complaining that their application stopped working correctly in Leopard. You can read more about the Java2D pipeline change in Fabrizio Giudici's Blog.
Working with IntelliJ IDEA in Leopard has been no picnic either. On a fairly regular basis, it will seem to just hang for 10 seconds or more and then start working again. I suspect the garbage collector is having problems, but once again, these are problems that did not exist in Java 5 with the previous version of OS X.
As most know by now, Apple has yanked the Java 6 developer previews. No sign or trace of them left on the ADC site. Apple gave no indication as to why it yanked them, if and when there would be new ones, etc. So effectively, we are currently left with Leopard having NO fully working version of Java available for it. You can't get Java 6, and Java 5 is so broken that parts of it are flat out unusable on Leopard. As a Java developer, this is a situation I obviously cannot live with.
As James Gosling mentioned in a blog entry a couple of weeks back, he has already given up on Apple. "As several people have noticed at my talks over the past few months, I no longer carry a Mac laptop. As much as I love the Mac's eye candy, it really hasn't been keeping up as a developer's machine - their attention has clearly been elsewhere." Gosling also says "Apple's JDK support is a part of my problem, and yes, I have their JDK6 from the ADC. I've met the folks on the JDK team and they're trying real hard. It's hard to tell what the fundamental issue is, but it keeps feeling like the big problem is that developers aren't the "Target Demographic"."
I decided to give them until they actually released Leopard before I gave up on them. Although given how silent Apple has been recently about Java on Leopard, and how their developer technology pages on Leopard prior to the release did not say even one word about Java on Leopard, I held out very little hope that Leopard would actually ship with Java 6. But I never expected that it would be so bad that Apple would have broken Java 5 on Leopard.
Now that Leopard is out though, and there is no Java 6, I'm finally giving up on Apple and putting my PowerMac up for sale. Furthermore, my MacBook Pro will become a dual boot machine, and will spend most of its time running Windows.
The lack of a fully working Java for Leopard at this point is bad enough. The fact that Apple apparently backed out on Java 6 shipping with Leopard is also bad. But once again, the part I have really had it with, is the unprecedented arrogance of Steve Jobs and company, and the fact that they seem to feel they have absolutely no obligation to communicate to their customers why they changed their plans, why they yanked software that used to be available, and when or even if they will remedy that. Well, here is my response to that attitude:
Sorry Steve Jobs, but since you've got no time for your customers, and you've got no time to explain to them why plans changed, and when or even if the situation will be remedied, I've got no time for your products anymore.
So long Apple. The party's over.
Kind Regards,
Mike Urban
mike@dzone.com