Adobe’s (long) path toward universal binaries

March 24th, 2006

Scott Byer , an Adobe engineer has written an account of why it’s taking Adobe so long to transition Adobe’s apps to Universal binaries. Turns out Adobe really wanted the ability to seamlessly call x86 code from an app running in Rosetta just like 68K code could call PowerPC code in the olden days. Well, Apple didn’t do that and now Adobe has to move their app to Xcode because that’s the only way to create a Universal binary.

Byer says that a major impediment toward moving to universal binaries is Xcode and cites several reasons why it’s still not quite up to par for big projects. I’ve never done development on an app the size of Photoshop in any IDE, no less Xcode, but I have seen fairly large open-source projects (WebKit) use Xcode and it seems to work just fine. I don’t really buy the argument that Xcode doesnt’ handle large projects well. What I will buy is that moving an app from CodeWarrior to Xcode is hard. I recently moved a small PowerPlant app from Codewarrior to Xcode and the transition is not very pleasant. The IDEs assume different things about the build environment and the change in compilers leads to a lot of headaches. Even after you do that, you ideally want to take a knife to all of the PowerPlant code. What I’m concluding here is that Adobe’s problems with Xcode may not be so much about what Xcode is lacking but rather about how incongruous CodeWarrior projects and Xcode projects are. Microsoft is in the same boat on this one. They’ve got a codebase from the 80s that needs to run on Mac OS X and they’ve suddenly realized that Apple is forcing them to use Xcode to move forward.

I have little sympathy for the situations that either of these companies are in. I’ll concede that it is unpleasant that Apple tries to sell people on how easy it is to transition from CodeWarrior to Xcode when in fact it can be painful. However, how many of Apple’s apps are ports of OS 9 apps? I can think of Quicktime and iTunes offhand. In each case, I get the impression that Apple engineers have done a tremendous amount of work to make these apps as modern as possible. For example, Quicktime Player’s windows resize nicely while playing video and iTunes has none of the traditional signs of being a Carbon app. I do not get this feeling from from any of Adobe’s or Microsoft’s apps. The history of these apps is readily apparent to me when I open them up. I still see part of Photoshop 5 in the newest version of Photoshop . When Apple started writing all their new apps in Cocoa for Mac OS X, Adobe and Microsoft should have said, ‘maybe we should have a set of developers who try to get the app really modern, even if it’s not in time for the next release’. Of course I get the impression that an embarrassingly small group of developers are responsible for the mac versions of these apps so it’s hard to expect that to happen. My guess is that it will take a while for Intel versions of these apps to appear but that they will look a lot more modern when they actually arrive.

Comments are closed.