The move to Intel

So we’re moving to Intel. If it means more powerful computers then I’m all for it. But I wince when I think about how painful the transition is going to be… It won’t be painful for me as a developer; yes, I’ll have to fork out the $999 for the Developer Transition Kit and spend some time making sure that everything works on both PowerPC and Intel but I think I’ll survive. But it will be painful for me as an end user.

All those apps which I’ve grown accustomed to using won’t necessarily be there for me when I make the switch, that’s what’s going to hurt. Remember what it was like when Mac OS X first came out? Remember how long Adobe took to port Photoshop? (And remember how they entirely abandoned products like FrameMaker?) It’s cold comfort to hear Adobe’s CEO promise that they’ll bring their apps over. The question is, when? And when will all the other vendors of the products I’ve come to love and/or depend on? Yep, it’s gonna be unpleasant. I sure hope that "Rosetta" proves to be an acceptable stop gap measure… (I never had the stomach to use Classic…)

Why didn’t Apple make this jump years ago? They’ve been producing Intel-compatible builds of all their major products for years now. The transition from the G3 to the G4 should have been a transition to Intel. Remember that painful period where the new G4s stalled at 500 MHz for well over a year? In fact, remember how Jobs announced machines with 500MHz G4s and then had to scale back the specs to 450MHz? And remember how he promised that the G5 would be different, that within 12 months the G5 would scale from 2GHz to 3GHz? Well, 24 months have passed and it has only scaled to 2.7GHz, less than half the improvement that Jobs assured. Debates with PC users were much more pleasant back in the days of the G3 when the PowerPC enjoyed a clear performance advantage in almost every department; for the last five or so years those debates have been far from enjoyable…

We could’ve been spared those painful periods of stagnation and had to deal with just one awkward transition (Mac OS 9/PowerPC to Mac OS X/Intel) instead of two (Mac OS 9 to Mac OS X and then PowerPC to Intel). I guess Jobs wanted to believe. He wanted to believe that IBM could deliver the goods. And he did believe, which is why he made the public promise about "3GHz within a year". But Jobs doesn’t like to be disappointed. First Motorola, and then Big Blue. Their failure pushed him over the edge and he’s decided to make the jump to Intel, taking all of us along with him. Intel is not my favorite company in the world (and as far as x86 chips go I like AMD’s current offerings better than those of Intel) but at least they’ve reliably shown that they know how to consistently deliver improvements in performance over time.

It’s just a little bit ironic that just when all three major games consoles are jumping to PowerPC chips, Apple is jumping in the other direction. But like I said, it’ll be fine with me as long as end users get better machines as a result. I’m hoping that the superior clock speeds and better compilers (I wonder if Apple will stick with GCC) will put an end to those embarrassing comparisons for games which run on both Mac and Windows platforms, yet which deliver vastly disparate framerates… I’m skeptical but perhaps this will mean that we see more games ported to the Mac too; only time will tell. I’m also hoping that Apple sticks with the multi-CPU pattern for their pro line of desktop machines. Mac OS X makes excellent use of multiple processors and it would be a shame to see it go to waste on a single-CPU machine. It will be nice to know that once again when you buy the top of the line Mac that you’ll be buying the very best machine that money can buy; not just the "best" in terms of user experience but also the most powerful.

Update

I’ve now seen the keynote video and feel a little more optimistic (Steve’s Reality Distortion Field truly is amazing). I’m inclined to think that this move will be worth it even if there are some growing pains along the way. I’m a power junkie and I love fast machines, so I wasn’t that hard to convince.

I’ve also read the "Universal Binary Programming Guidelines" available on Apple’s developer website. 90% of my code is Cocoa so I am not anticipating too many problems in porting it. There are, however, some bits of Carbon and some other sections where I think the change from big to little endian is going to cause me some headaches. I also wonder what places in the code I’m going to be bitten thanks to the different behaviour of the two platforms when messaging nil.

One thing I am pleased about is that Xcode 2.1 offers better support for Unit Testing. Something tells me that we are all going to benefit from doing a heck of a lot of Unit Testing when doing this transition.

I like the PowerPC architecture. I mean, emotionally, I am fond of it. I think it’s more elegant. I like that it’s big endian (little endian architectures just look plain illogical to me). I like that you can divide by zero without causing an exception. I like the way the Altivec functions have neatly formatted names. In comparison, there’s lots about the Intel platform that strikes me as ugly. In the end though, Steve’s argument has to win: Intel can deliver more power per watt, and that’s what it’s all about. It’s the reason why we don’t have a G5 laptop yet, why Apple had to implement liquid cooling in their top-of-the-line desktop machines (unheard of!), and why we’re still running at 2.7GHz.