Get the lowest prices anywhere on Macs & iPads: Apple Price Guides updated Dec 25th (exclusive coupons)

Adobe Photoshop engineer details Intel Mac challenges

A software engineer working on Adobe Photoshop says the company's decision not to deliver native Intel Mac support until the next major release of its high-end graphics suite is a result of the enormous task associated with switching to Apple Computer's Xcode development environment.

Last month, Adobe chief executive Bruce Chizen stated that Creative Suite 3 — which will include the next major releases of Photoshop, Illustrator, InDesign, GoLive and Acrobat — will not be available until the second quarter of 2007.

"When that original [68K to] PowerPC transition was done, Apple did something clever. Very clever," Adobe engineer Scott Byer wrote in a posting on his Web site. "The emulator that ran 68k code would recognize when it was calling out to PPC code, and would fiddle with things on the stack using the Universal Procedure calling vector."

This enabled Adobe to replace many of its 68k "heavy lifting" routines with PPC native versions through plug-ins that were distributed to customers.

"With a plug-in, Photoshop [was able to] get a majority of the speed up as if it were a fully native application, but — and it's a key point here — without having to recompile the vast majority of the Photoshop code, along with the resulting testing hit, mounds of debugging, and everything else that would imply," Byer wrote. "Doing that this time around was just not possible for a variety of reasons."

In order for developers to properly build a Universal Binary — a version of an application that will run natively on both PowerPC and Intel Macs — they'll need to transition their application's codebase to Apple's Xcode development environment. [What this] means is that this time, there's no limited-cost option for getting most of the performance available on the platform for Photoshop in a short amount of time" Byer wrote. "In other words, no shortcuts."

"That leaves doing the work for real — taking the whole application over into XCode and recompiling as a Universal Binary," Byer continued. "And that's no small task."

Since Apple's Xcode is a relatively new development environment, it had previously been unsuitable for use in the development of extremely large projects with large numbers of files that open quickly, Byer explained. So instead, Adobe has so far relied on development environments from Visual Studio and Metroworks, which also feature more compact debugging information and more stable project formats that are text-merge-able in a source control system. 

"These are things XCode is playing catch-up on," said Byer. "Now, Apple is doing an amazing job at catching up rapidly, but the truth is we don't yet have a shipping Xcode in hand that handles a large application well. And switching compilers always involves more work than you would think in a codebase of this size."

It wouldn't "make any sort of sense" for Adobe to release a Universal Binary of Photoshop CS2, the current version of the company's software suite, the engineer contends.

"If you think about switching tool sets, with the resulting huge amount of work for both engineering and quality engineering, if you think about how far past the Photoshop CS2 release we already are, and if you include not having the workstation-class machines ready yet, I think you'd have to agree," Byer wrote. "[It's] far better to focus on making sure Photoshop CS3 is able to absolutely squeeze every ounce of power out of what I'm sure will be pretty spankin' Intel-based towers by that point than to do tons of work moving an old code base to new tools."