iPod / iPhoneハードウェア部門の責任者が交代するそうで。後任のPapermaster氏は、チップ設計の分野で長い経歴を持つPOWERアーキテクチャの実力者です。しかし、ロイターなど現地の報道によれば、IBMを去る際に交わした契約により、すぐに働き始めることは難しそうな気配が……立ち止まれない部門なだけに、どうなるか?
さて、今回は「WebKit / SafariとGoogle Chromeの関係」について。いまだOS X版がリリースされないGoogle Chromeだが、Safariと同じWebKitベースのブラウザということで、Safariの今後に影響があるのでは? と予想する向きも少なくないはず。これに対し、最新の情報を踏まえつつ、筆者なりの見解を述べさせていただこう。
Chromeが速いもう1つの理由
Google Chromeが公開されるや否や注目を集めた理由には、後ろにAndroidが控えているといった事情を除き、純粋にWebブラウザとして高性能だったことが挙げられる。1タブ / 1プロセスという仕様 (メモリのフラグメンテーション予防にも効果的) にくわえ、新開発のJavaScriptエンジン「V8」の高速性が相まって、快適なブラウジング環境を実現している。
巷の声に耳を傾けてみると、Google Chromeが支持される理由は「速い」の一語に集約される。そこで気になるのが速さの理由だが、前述の特徴だけではブラウジング速度全体の底上げにはつながりにくい。一体なにが違うのか?
あまり言及されていないようだが、その解となるキーワードの1つが「Skia」だ。Googleが2005年に買収した同名企業が開発した2Dグラフィックスライブラリで、文字や画像などページの構成要素を高速にレンダリングする機能を持つ。WebKit / SafariではCoreGraphicsが、FirefoxではCairoが担う部分と考えていいだろう。一般的な (JavaScript / Ajaxを使用しない) Webサイトでも、Google Chromeの高速性を実感できるのは、このSkiaによるところが大きい。
Google Chromeの開発者が、Skiaの採用を決定するまでの経緯をブログに記している。記事によれば、(Windows版) Google Chromeの開発をスタートする段階でグラフィックライブラリを決めるにあたり、Windows GDIとGDI+、Cairoの3つが選択肢として存在したが、Androidのブラウザ用として移植が完了しGoogle内部にノウハウが蓄積されていたからSkiaを選んだ、とのこと。それにしても、Googleの携帯電話市場参入は用意周到に進められたようで……。
そのGoogle Chromeだが、こちらの記事によれば、上流に位置するWebKitへの統合作業が進められているとのこと。ちなみに記事を書いた人物は、元Netscape社員にして現在はGoogleに勤務するDarin Fisher氏。筆者の記憶では、氏はGoogleの社員という立場でFirefoxの開発に関わっていたはずで、そこからはGoogleのWebブラウザに関する戦略の変更を伺うことができる。
OpenGLがWebKit / Safariを加速する?
Webブラウザ高速化の過程には、ハードウェアレンダラの活用というトレンドもある。たとえばFirefoxの場合、OpenGL上に実装された「glitz」をCairoで利用するという手法で、OpenGLの高速性を生かすことが計画されている (Firefox 3の現在では有効化されていない)。一方Google Chromeでは、画面への出力はレンダリングに要する時間のうちわずかであり、スタイルの適用やフォントの描画に多くの時間が割かれるのであって、高速化というメリットがある反面互換性低下などの問題解決に手間取ることもあり、OpenGLやDirectXに頼らない決断を下したという。
Appleの戦略的プロダクトである本家WebKit / Safariの進む方向だが、筆者はOpenGLベースのアクセラレーションはありうる話ではないか、と考えている。理由は3つ、すでにMac OS XがOpenGLベースの描画レイヤー (ハード/ソフト) を備えていること、iPhoneにOpenGLの組み込み機器向けサブセット「OpenGL ES」が採用されていること、そしてSnow Leopardに搭載予定のGPGPU実装「OpenCL」との関連がありうることだ。
これが筆者一人の希望でない証拠として、OpenVGを利用したCairoバックエンド高速化の試みが挙げられる。こちらでは、OpenVG対応のCairoを利用した「OpenVG WebKit」の動作も報告されている。現状、OpenVG WebKitをOS Xで動かすには (GTK+の導入など) 手間がかかるため現実的ではないが、OpenVGのパワフルさはShivaVG (OpenGL経由でOpenVGの機能を利用しようという実装) のデモにより体感できる。描画精度の向上など課題は残るものの、この種のGPUパワーを生かす策を見逃す手はないと思うのだが、いかがだろうか。