May 31st, 2006 • 2:02 pm
Now that I own an Intel-based MacBook, I am of course exposed to a whole new range of potential problems that I might not have been aware of with my PowerPC-based machines.
These problems have to do, more specifically, with the “Rosetta” portion of Mac OS X for Intel, which is the part that ensures backward compatibility with existing Mac OS X applications that haven’t been rewritten for the Intel processors. Rosetta is not a visible feature in Mac OS X for Intel. It works behind the scenes and the user is not supposed to notice when it kicks in, except maybe if it affects the performance of his machine in a significant way.
Since we still use a fair amount of non-universal Mac OS X software in this household (more notably Microsoft and Adobe products, for which universal versions won’t be available until 2007), Rosetta is very much a part of our daily computing experience. Fortunately, the MacBook is powerful enough that, for most tasks performed on this machine (which has 1 GB of RAM), the performance hit won’t really be noticeable. Since she’s used to the performance of Office X on a TiBook, I don’t think that my wife will notice that Office 2004 is not running natively on her MacBook. On the contrary, even in emulation mode, Office 2004 probably runs faster on her MacBook than Office X did on her TiBook.
What she will notice, however, is what happens when things go wrong with Rosetta. And, based on my initial experience, it won’t be particularly pretty when they do. I actually had Rosetta fail on me quite dramatically on the very first day I used it. I had installed a variety of software titles on the MacBook, including Office 2004, and I was trying to apply the Service Pack updates for Office 2004, which are themselves non-universal applications and required Rosetta as well.
When I tried to launch these Service Pack programs, I noticed the following: Mac OS X flatly refused to launch the applications altogether. It didn’t display any kind of error message. It just let the application icons bounce once in the Dock—and then nothing. I tried all kinds of different non-universal applications, and the symptoms were always the same: The application icon would bounce once, and then nothing would happen.
At some point, I realized that this was probably what happens when Rosetta fails. Since Rosetta is an invisible part of Mac OS X and is supposed to operate transparently, when it fails, it also fails without any kind of interaction with the end user. It just fails—and the user is left to figure out by himself what happened and what he’s supposed to do about it.
Since there was no way, as far as I could tell, of “fixing” Rosetta (by force-quitting it, restarting it, whatever), the solution was pretty obvious: I had to restart the MacBook. I did just that, and everything worked fine after that.
But I don’t think this is a particularly elegant approach. There is nothing that distinguishes non-universal applications from universal applications in Mac OS X for Intel (except for the information in the “Get Info” window). How is the user supposed to know that, when he tries to launch some applications and the launch fails, it means that Rosetta has failed and he has to restart his machine? I can understand that Mac OS X might be unable to relaunch Rosetta properly in the background without a complete restart of the machine. But at least then it should tell the user what’s going on, and what the user needs to do!
Compare this to what happens when Classic fails in the Mac OS X for PowerPC. (Classic is no longer supported on Intel machines.) When a Classic application freezes or the entire Classic environment freezes, you don’t get a warning message. But at least you can look at the Activity Viewer and see that the Classic environment is frozen, and you can force-quit Classic and relaunch it without restarting the entire Mac OS X environment (or stop and restart Classic via the Classic preference pane or menu extra).
Maybe it was technically impossible for Apple to implement something like this for Rosetta. Maybe it was undesirable to have a user interface front for Rosetta. But clearly Rosetta failures can happen and, when they do, unfortunately, there’s not much the user can do except restart his machine, and there’s not even anything in the user interface that tells him that this is what he needs to do.
I find this rather inelegant and not worthy of an Apple product. Either they need to be 100% sure that Rosetta will never fail (which is probably impossible anyway) or they need to make sure that when it does fail, it does so gracefully, in a user-friendly way. I just hate it when Apple’s engineers design things as if they were never going to fail, when they obviously will. Like I said, it didn’t take long for it to happen on my MacBook: It happened on the very first day! Fortunately, it hasn’t happened since then. And it’s possible that this particular failure was triggered by the rather intensive sequence of software installations on that first day (software installers are not particularly well-behaved applications at the best of times), and won’t happen very often on normal work days that don’t involve any software installations.
But still, it obviously can happen. And when it does, unfortunately, Mac OS X itself fails rather inelegantly.