news.com.com.com.com.com.com.com said it first, so they’re the ones wiping egg off their face if it’s wrong. But let’s assume that Steve comes out to the WWDC crowd on Monday and says “hey kids, you’re all writing Intel code now”.
Not… I repeat… not a problem. Not a cause to be “be surprised, amazed and concerned”, as the analyst in the news.com.com.com.com.com.com article says. Does it make sense? Jason Snell doesn’t think so. I’m more optimistic.
Everyone talks about Apple’s great transition from 680×0 to PowerPC in the 90’s and credits the remarkably stable 680×0 emulator. But have people already forgotten “fat binaries”? These were applications that contained both 680×0 and PowerPC code, so they could work on either architecture. Surely, with the well thought-out structure of the bundle, there’s a place for PowerPC code, and a place for x86 code. If XCode starts supporting cross-compilation for the two architectures on Monday, we could all be shipping compatible applications long before an x86-based Mac hits the market, and not even know it.
Consider this too: with the 680×0 to PowerPC transition, there were a lot of applications that were basically “done” - they were widely deployed but not undergoing active development. These had to be emulated, because they couldn’t/wouldn’t be recompiled. But widespread interest in Mac OS X only really picked up a few years ago with the launch of Mac OS X 10.2 (Jaguar)… a pretty short time for a codebase to be abandoned. It’s hard to think of anyone who’s shipped OS X apps and then dumped them. OK, Samsung printer drivers, but their stuff sucks anyways, and they won’t be missed. Anyways, my point being, the apps we all use are still under active development, and with cross-compilation tools made available early, it could be trivial to support a new architecture. It would obviously behoove Apple to see to it that this is the case.
And who said it had to be x86? Maybe it’s something else. If there’s an issue that I’m interested in seeing an answer for, it’s endianness: the Mac CPU’s have always been big-endian, x86 is little-endian. Or is it? Many modern processors are flexible about endianness (before G5, PowerPC’s could run little-endian too, which made VirtualPC work well until the G5), so maybe whatever goes in this new hardware will appear big-endian to the developer.
Who knows - maybe they’ll keep PowerPC in the portables, where its low heat and modest power consumption is a big win, and just use x86 in the desktops, where it has long since humiliated PowerPC’s performance. This strategy makes sense: with a processor-agnostic OS, Apple can further optimize hardware for the best user experience.
Blind optimism, or does fortune favor the bold?