Two MacIntel Unintended Consequences
by Chris Adamson
Two thoughts that occurred to me as I read through the Universal Binary Programming Guidelines (PDF, 1.5 MB) for making Mac apps that run on PowerPC and x86-based Macs:
Will Rosetta increase the viability of G3-based Macs? Rosetta translates PowerPC code into x86 code at runtime, in cases where the code hasn't been recompiled for MacIntel. From the docs:
Rosetta is designed to translate currently shipping applications that run on a PowerPC with a G3
processor and that are built for Mac OS X.
When you read the list of things Rosetta can't run, you start to see the point:
Code written specifically for AltiVec
Applications that require a G4 or G5 processor
It makes sense of course - the x86's don't have AltiVec, and neither does a G3.
Apple doesn't make a G3 computer anymore, having migrated the iBook to G4 last year. But there are lots of G3's out there. Since that's the baseline for Rosetta, and since AltiVec optimizations are now looking like something of a white elephant, will users get more life out of their G3's?
I'm actually betting not - Apple has been pretty blunt in using the OS upgrade as a means of driving hardware sales. Tiger has a seemingly arbitrary requirement that your machine have built-in FireWire, an interface that Apple seemed to be walking away from with the new iPods. But it's a clear way to push the first few generations of iMacs and iBooks to obsolescence. It's as if Apple thinks the right lifespan for a consumer machine is about 5 years, 6 or 7 for a pro machine. So while Rosetta may support G3's, we'll see if Leopard does.
Doesn't the adoption of PowerPC by two of the three new game consoles (XBox 360 and Revolution) prove that it's competitive? I'd argue the opposite - that the PowerPC's adoption by consoles may have dug its grave on the desktop.
Think about it: there's no need to improve the PPC used by the consoles once they ship. There's no megahertz race between different revs of a console. In fact, making any change at all is inherently risky and offers little reward. At most, a revised CPU might be able to run cooler (e.g., the "slim" PlayStation 2 redesign), but any more significant changes to a system's specs or architecture tend to be disastrous (e.g., 32X, Coleco Adam, etc.)
So imagine you're IBM. You've just signed contracts to supply millions of PowerPC CPU's over the next few years, with no incentive to change them in any way except hopefully to make them cheaper over the life of the consoles. That's not going to drive much R&D.
Now imagine you're Apple. Think of the "road-map" Steve was talking about. It may have looked like this:
2005 3.0 GHz
2006 3.0 GHz
2007 3.0 GHz
2008 3.0 GHz
Good roadmap for a console. Bad roadmap for Mac.
What other unintended consequences are lurking out there?
Please stop saying repeating the idea that Firewire is going to be phased out ("an interface that Apple seemed to be walking away from with the new iPods") just because Apple stopped shipping a Firewire cable with the iPod. As has been extensively discussed elsewhere, that was a purely economic decision - to unbundle the product so that consumers could buy what they needed and no more.
My little G3 white iBook might actually have a year or two left of life before I have to convert to Linux on it? Yeah!