This blog is about Mustang for the Mac, which is being developed for both PowerPC- and Intel-based Macs. That’s kind of interesting when you consider one thing:

As of yesterday, Apple doesn’t make PowerPC Macs anymore.

Soooo… why are they still working on a PowerPC version of Mustang, as evidenced by posts to the java-dev list announcing each version? Oh, sure, they don’t want to “piss off” their current Java-using audience, right?

But wait a minute: Sun doesn’t expect to declare Mustang final until October. And Apple’s release will surely fall some number of weeks or months after that (hey, we’re lucky; it used to be measured in years). So a non-trivial amount of time will have elapsed between the end of PPC Macs and the release of a final Mac Mustang.

Furthermore, how many developers need Mustang features right away? Other than Aerith, I mean? For a huge majority of developers, Java SE 5.0 will be just fine, and it still enjoys Hotspot acceleration, as my G5 reports.:

[aeris:~] cadamson% java -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-112)
Java HotSpot(TM) Client VM (build 1.5.0_06-64, mixed mode, sharing)

So by the time anyone’s shipping Mustang-dependent applications, it could easily be a year from now, meaning a year and a half since the iMacs and laptops went Intel, and a year since the tower switched. So if Mustang for PPC went cold, how much outcry would really be justified?

I have to be careful in staying out of NDA territory discussing Mac Java — the existence of the Developer Previews is public knowledge due to its posting on the java-dev list, but the nature of the VM’s remains covered by NDA agreements that anyone who clicks into connect.apple.com is stuck with. So even if I’ve played with Mustang on PPC and Intel, I can’t talk about it. Guess you’ll just have to buy two Macs and try it yourself.

But the BoFs at JavaOne are not NDA’ed, and Apple’s team talked about some interesting issues over the last few years. Chiefly, they get a big win on Intel from all the compiler work that Sun and others have done for the x86 platform. At JavaOne 2005, they talked about the C1 and C2 HotSpot compilers (are these -client and -server ?) that they already had running on Intel Macs. They didn’t inherit all this intense optimization work on the PowerPC, and had to do it themselves. That’s extra work that made sense when the PPC was what Macs ran on, but what about today?

Ultimately, Apple is in business to sell hardware. It may be the case that there is enough end-user Java software (Limewire, Moneydance, etc.) that Apple feels compelled to support Java for the sake of these applications. It may also be the case that Java support is largely a means of selling attractive laptops to developers. Sun says there are about 5 million Java developers. If having Java means that Apple could capture 1% of that audience that wouldn’t otherwise buy Macs, that’s 50,000 computers times Apple’s notoriously high margin times the price of each computer… easily enough to pay for Apple’s Java team all by itself.

And if the point of supporting Java is to sell computers, and they don’t sell PPC computers anymore, then it shouldn’t surprise anyone to see PPC support drop off the radar very fast. Particularly if most of the audience really is developers: if that’s the case, then considering most Java developers do enterprise apps, and Apple isn’t that prominent in the server space, then it’s likely all the runtime is doing on the Mac is compiling and unit-testing. If the PPC runtime gets a little less love, it may be a perfectly sensible thing for Apple to do.

In other words: if Mustang stinks on PPC, don’t be surprised. Code to Java SE 5.0, or upgrade yourself to Intel. Even my 512 MB Core Solo mini is a surprisingly adequate Java machine.