AppleInsider: Adobe Photoshop エンジニアが Intel Mac 対応への困難さを語る

Adobe Photoshop engineer details Intel Mac challenges
By Prince McLean
Published: Monday, April 3, 2006 02:00 PM EST

Adobe Photoshop の開発に携わるソフトウェアエンジニアによると、ハイエンドグラフィクススイートの Intel Mac ネイティブ対応を次期メジャーリリースまで延期するとした決定の背景には、Apple Computer の Xcode 開発環境への移行作業に伴う膨大な作業量が原因らしい。

Adobe の CEO Bruce Chizen は先月、Creative Suite 3 -- PhotoshopIllustratorInDesignGoLive および Acrobat からなるスイートの次期メジャーリリース -- は 2007 年第 2 四半期 和訳 にならないと発表できない、との声明を発表した。

「初期の [68K から] PowerPC への移行を行う際、Apple は非常に巧妙なことをやってのけました。それは非常に巧みなことでした」 と Adobe のエンジニア Scott Byer は自身の Web サイトに 投稿している。「68k コードを走らせるエミュレータは、PPC コードの呼び出しを察知し、Universal Procedure を使ってスタックにあるものを操作してベクターを呼び出していました*1。」

この仕掛けを利用して Adobe は、顧客に配布されたプラグインで、自社の 68k 「ヘビーリフティング」 ルーチンの多くを PPC ネイティブ版へと置き換えることができた。

プラグインひとつで Photoshop は、あたかも完全にネイティブなアプリケーションであるかのように、高速化の多くを達成できました。しかも、ここが重要な点なのですが、Photoshop コードの大部分 -- 検証、デバッグなど移行に伴うあらゆる作業を含めて -- は再コンパイルする必要がなかったのです」 と Byer は書いている。「今回も同じことをしないのは、さまざまな理由から不可能だからです。」

開発者がユニバーサルバイナリ -- PowerPC および Intel Mac の両環境でネイティブにい動作するアプリケーション -- をきちんとビルドできるようにするためには、アプリケーションのコードベースを AppleXcode 開発環境に移行させなけらばならない。「今回 [これが] 意味するところは、短時間で Photoshop のパフォーマンスの多くをプラットフォームで利用できるようにするためのコスト抑制手段がないことです」 と Byer は書いている。「つまり、迂回方法がないのです。」

「このため現実の作業 -- アプリケーション全体を XCode に移行させ、ユニバーサルバイナリとして再コンパイルすること -- を行うことになります」 と Byer は続けている。「そして、それは決して生易しい作業ではありません。」

AppleXcode は比較的新しい開発環境であるため、瞬時に大量のファイルを開く必要のある非常に大規模なプロジェクトを開発するために用いるには問題があった、と Byer は説明している。そのため Adobe は替わりに、Visual Studio および Metroworks が提供する開発環境に依存してきた。これらの開発環境は、よりコンパクトなデバッグ情報や、ソースコントロールシステムでテキストマージが可能な、より安定したプロジェクトフォーマットも特徴としている。

「これらは、XCode が追いつこうとしている分野です」 と Byer は語っている。「現時点で Apple驚くべき スピードでその作業を行っていますが、現実には、大規模アプリケーションをうまく処理できる Xcode は手にできていません。また、これほどのコードベースサイズになると、コンパイラ移行につきものの、予想以上の作業が必要になります。」

AdobePhotoshop CS2 -- 同社のソフトウェアスイート -- のユニバーサルバイナリ版をリリースする 「意味が全くない」 と Byer は結論付けている。

「ツールセットを変更することに伴って発生するエンジニアリングおよび品質管理エンジニアリング双方での膨大な作業量、Photoshop CS2 のリリースからの経過時間、ワークステーションクラスのマシーンがまだ登場していないということを勘案すると、皆さんも理解してくださるのではないかと思います」 と Byer は書いている。「相当な性能向上が見込まれる Intel ベース Mac の性能を極限まで搾り出せるような Photoshop CS3 を作成することに専念する方が、古いコードベースを新しいツールに移行させるという膨大な作業よりもはるかに理にかなっていると思います。」

*1: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.