
There were two major reasons why I didn’t think Apple would move theMac to x86 Intel processors:
To maintain compatibility with existing Mac software, they’dneed a way to run existing PowerPC Mac software on Intel-basedMacs at a reasonable speed, and I didn’t think that was possible.
They couldn’t just start selling x86-based Macs out of theblue.They’d have to pre-announce them to give developers timeto buildnative x86 Mac software. But once they pre-announcedIntel-basedMacs, sales of existing PowerPC Macs would likelytank.
On Sunday morning,I wrote:
The only way this makes any sense is that there’s something else.Something big. Not that CNet and the Journal have the story wrong,but that they only have part of the story — and the part they don’thave is what’s going to knock our socks off.
My two guesses as to what the “something else” could be were (a) thatIntel would be making PowerPC chips for Apple; or (b) that Apple hadfound a way to emulate PowerPC-compiled software at acceptable speed onIntel processors.
I placed my bet on (a), and, obviously, I lost. The answer was (b).But I was right that one or the other had to be the case.
I bet on(a) — Intel-produced PowerPC chips — because I thought itwouldsolve both of the above problems. The correct answer, (b), onlysolvesthe first problem. My guess is that it was simply out of thequestion,completely unrealistic, to expect Intel to produce PowerPCchips; I’mguessing for anyone genuinely familiar with thesemi-conductorindustry, it was as ludicrous as a proposal forCoca-Cola to startproducing Pepsi.
Rosetta — the technology that allows existing PowerPC software to“just work” on Intel-based Macs — is the missing link that makes thistransition possible. “Emulator” is perhaps not quite an aptdescription; Apple seems to prefer the term “translator”. The specificdescription I’ve heard is that it is “dynamic binary softwaretranslation”.I’m curious to know more about how it works, but theonly importantquestions are whether — as it was described in a slideduring the keynote— it’s “Fast (enough)”, and how many importantapps run under it.We should find out soon enough, when benchmarksstart leaking from seeded developers. (Their NDA forbids publishingbenchmarks based on the developer transition kit hardware, but comeon, you know they’re going to leak anonymously.)
Here’s the overview of how Rosetta works from Apple’s “Universal BinaryProgramming Guidelines” documentation:
When an application launches on a Macintosh using an Intelmicroprocessor, the kernel detects whether the application has anative binary. If the binary is not native, the kernel launches thebinary using Rosetta. If the application is one of those that can betranslated, it launches and runs, although not as fast as it would ifrun as a native binary. Behind the scenes, Rosetta translates andexecutes the PowerPC binary code.
Rosetta runs in the same thread of control as the application. WhenRosetta starts an application, it translates a block of applicationcode and executes that block. As Rosetta encounters a call to aroutine that it has not yet translated, it translates the neededroutine and continues the execution. The result is a smooth andcontinual transitioning between translation and execution. Inessence, Rosetta and your application work together in a kind ofsymbiotic relationship.
Rosetta optimizes translated code to deliver the best possibleperformance on the nonnative architecture. It uses a largetranslation buffer and it caches code for reuse. Code that getsreused repeatedly in your application benefits the most because itneeds to be translated only once. The system uses the cachedtranslation, which system uses the cached translation, which isfaster than translating the code again.
Rosetta is not just a side note or afterthought; it is an essentialcomponent in the transition strategy. It is not going to be marketedwith trumpets and banners. Rosetta’s role is that of the unsung hero.
There’s nothing glamorous about it, because in an ideal world, on theday Apple begins shipping Intel-based Macs, all Mac OS X software willhave been updated to run natively on both architectures. But the worldis not ideal, and that is not going to happen. A year from now, atWWDC 2006, most Mac OS X applications will be ready to run natively,but not all. (And I can hear it now: those developers who haven’t yetshipped universal binaries will be labeled “laggards” by Steve Jobsduring the keynote.)
Don’t forget also, however, that even those apps that are updated willin many cases be available only as paid upgrades. Will there beuniversal binaries of the Adobe and Microsoft suites? Yes, definitely.Will they be free updates to the current versions? I doubt it.
If you’re holding on to any not-latest-and-greatest software, appsthat you perhaps only use occasionally — or something you no longeractively use, but which you keep around for opening old files —you’re going to want those copies of your software to work on anIntel-based Mac.
Unlike the Classic environment — which runs apps in a visual ghetto— most users may not even notice that a few of their apps are runningunder Rosetta. (Assuming, again, that Rosetta’s performance isadequate.)
Apple won’t trumpet Rosetta because they want to trumpet native apps,and for good reason: apps recompiled for Intel Macs will be faster.It’s similar in many ways to the 68K emulation that Apple delivered inthe transition a decade ago: everyone wants native apps for the newarchitecture, but everyone is glad they can still execute theirexisting apps when necessary.
Judging from the preliminary documentation, however, Rosetta is farless comprehensive than the 68K emulator. The 68K emulator couldpretty much emulateany software — apps, drivers, control panels.Rosetta is limited only to applications, and only certain ones atthat.
There’s a wee bit of uninformed hysteria regarding the fact thatRosetta effectively emulates only a G3 processor; the Rosettadocumentation states it won’t run “code written specifically forAltiVec” or “applications that require a G4 or G5 processor”.
But in most cases, apps that are capable of taking advantage ofAltiVec, fall back to non-AltiVec code branches when running on G3processors. Exhibit A: Photoshop; if you have a machine with AltiVec,it uses it, if you don’t it continues to work just fine.
One potential hiccup is that Rosetta is an all-or-nothing affair for each application. Again quoting from the Rosetta documentation:
Rosetta must run the entire process when it translates. This hasimplications for applications that use third-party plug-ins or anyother component that must be loaded at the time your applicationlaunches. All parts (application, plug-ins, or other components neededat launch time) must run either non-natively or natively. For example,if your application has both an x86 binary and a PowerPC binary, butit uses a plug-in that has only a PowerPC binary, then yourapplication needs to run non-natively on a Macintosh using an Intelmicroprocessor in order to use the non-native plug in.
So, the first reason I didn’t think this would happen was an issue ofcould — I didn’t think Apple could execute existing PowerPC code onx86 machines with reasonable performance. And I’m happy to say itlooks like they’ve proved me wrong.
The second reason was an issue ofwould — I didn’t think Applewould be willing to pre-announce a dramatic shift like this, knowingthat it would immediately detract from sales of existing PowerPC-basedMac hardware.
And I was wrong on that point as well. Apple is marching into thistransition chin-first, and they’re simply going to take their lumps.
The question is not whether sales are going to be hurt; the questionis how badly. Especially as we get closer to the release ofIntel-based Macs next year, sales are going to drop. I’ve alreadyheard from numerous people claiming they’re delaying planned hardwareupgrades until the new Intel-based machines arrive. It doesn’t matterif such reactions are irrational or emotional or uninformed — whatmatters is that there exists X number of people who would havepurchased new Mac hardware in the coming months, but who instead arenow planning to wait for next year’s Intel-based Macs.
Apple’s attitude is clear: we’ll take a couple of quarters of weaksales now, and make it up for next year when the new systems ship.With growing iPod revenue, it’s entirely possible that Mac sales couldtake a complete nosedive for the remainder of 2005 and Apple couldremain profitable. (It’s also possible that we will see someoutstanding price cuts on existing product lines in the comingmonths.)
This transition period is going to be hard on Apple, not hard on Macusers. If you’ve just purchased a machine recently, or need to buy onesoon, you’re no worse off than you would have been if Apple hadremained committed to producing new PowerPC hardware — today’smachines would have been obsoleted by even-better machines next yearno matter what processors they contained. And no one is abandoningPowerPC software development. I see no reason to expect Intel-only Macsoftware in the near future. Universal Binaries take full advantage ofboth Intel and PowerPC Macs. That’s worth repeating: UniversalBinaries take full advantage ofboth Intel and PowerPC Macs.
The “Osborne Effect” is named after the Osborne ComputerCorporation, who had a successful personal computer in the early 1980scalled the Osborne 1. Founder Adam Osborne began hyping theirnext-generation machine before it was built, and his hype was soeffective that customers stopped buying Osborne 1s in anticipation.They went bankrupt and never finished the project.
Nothing so spectacular is going to happen here. Even in the worst-casescenario for Mac sales in the next 12 months, Apple is in no risk ofgoing bankrupt.
This announcement has caught both Apple’s customers and the rest ofthe industry by surprise. Especially given the fact that sales ofPowerPC-based Mac hardware have never been stronger than they are now.Apple’s 43 percent increase in quarterly sales from a year ago issimply outstanding.
As trite as it sounds, I’m inclined to believe Jobs’s explanationduring the keynote, that Apple believes it can make better computersdown the road with Intel processors, and that the difference is enoughto justify this painful transition.
Maybe the PowerPC roadmap looks good, but the Intel roadmap looksbetter. Or maybe they see the PowerPC roadmap as downright bleak —e.g., say, no G5 PowerBooks in the foreseeable future, even if Applewanted to stick with the PowerPC.
The thinking seems to be: better to act now, from a position ofstrength, and absorb the costs of the transition while the company isdoing well, rather than wait a few years and risk being forced to actfrom a position of weakness or desperation.
“I stood up here two years ago in front of you, and I promised youthis,” Jobs said during the keynote, in front of a slide picturing a3.0 GHz PowerMac G5. “And we haven’t been able to deliver that to youyet.” He went on to say that they’d like to be offering G5 PowerBooks,but can’t.
I’ve seen some interpret this as petulance or spite — that thisswitch is just Jobs picking up his ball and leaving for anotherplayground because he feels IBM has embarrassed him. Thatinterpretation is foolish. I really think Jobs was just being honest,or at least as honest as he could be in a public statement.
I think it boiled to a choice between two difficult options: eitherinitiate a painful and expensive transition to Intel processors, orstick with PowerPC and fall behind.
Display Preferences
Copyright © 2002–2016 The Daring Fireball Company LLC.