Mozilla Flux

Mozilla関係の情報に特化したブログです。

Fennecは真のフルブラウザになれるか

Piroさんの『Fennec合宿の成果まとめ』を非常に興味深く読み、比較的長めのコメントを二つ書いた。

最初のコメントは事実誤認を含んでいるけれども、それも含めて当ブログに再掲しておきたい。二つ合わせると質量ともに一本の記事に匹敵するのと、PiroさんとMozilla Japanの中野雅之さんが真摯な回答を寄せてくださっており、Fennecの将来を考える上で有意義だと思うからである。

コメント1

> XULRunnerはモバイル向けの調整が施されていなくて

これ、不利を承知であえて手を入れてないとも考えられます。 Mitchell Baker氏が、インターネットをモバイルとそうでないものの二つに分断せず統合するんだというようなことを述べているんですけども、Fennecのバックエンドをモバイルに最適化してしまうと、今はいいですが、将来的にフルブラウザとしての可能性を狭めることになりませんか。

言い換えれば、Mozillaの方針として、Firefoxと極力差を付けたくない意図があるような気がするのです。機器の物理的サイズの制約があるので、フロントエンドはもちろん変えますが、バックエンドはGeckoそのままでいく、と。Open Webの理想のため必要な犠牲だと割り切ってる節があります。

> HTML Canvasを描画に使ってるせいで色々酷いことになってる

パフォーマンスが悪いという意味に理解しました。それを根本的に改良するなら、たとえば独自の描画システムを実装するといった話になると思うのですが、これもFirefoxとは枝分かれしてしまいますよね。

Fennec の中心メンバーも、ご指摘の問題はわかってるはずです。でも、あえて現在の方向でやっている。かといって、リソースのつぎ込み方は、決してモックアップを作ってる感じではありません。すべてをGeckoの中で完結させることが、Open Webの実現にとって重要だと認識していればこそだと思うんです。

パフォーマンスの点は、たぶん、ハードウェアの進歩と、Gecko自体の改良で補うつもりなんでしょうね。現に、後者に関して、Fennecチームから修正してほしいバグの要望を出してますし(Bug 67752:interruptible reflowとか)。前者も日本のケータイの開発競争みたいな形で、短期間のうちにハードが強化されていくと見てるんじゃないでしょうか。

コメント2

非現実的とは手厳しいご意見ですが、私が申し上げているのは、技術論の外にそれを拘束する原則論があるのではないかという点です。

上で「Mitchell Baker氏が」と言いましたが、実はこの表現は間違ってはいないものの、厳密には正確とも言えません。Mozilla Foundationが2010年末までの目標を出していて、その中に「Integrate mobile into one unified, open, innovative web」なる文言が出てきます。つまり、インターネットをモバイルとそうでないものの二つに分断しないのは、Mozilla全体の方針なのです。
http://blog.lizardwrangler.com/2009/01/05/integrated-revised-2010-goals/

これはMozilla Corporationとしてもコーポレートアイデンティティにかかわりますから、Fennecチームがこの目標に反する振る舞いをとることはできないでしょう。Canvasの採用が「スクロールやズームの処理を軽くするため」だとの点は、Piroさんから教えていただいて初めて知りましたが、それもやはり、統合されたWebを実現するためにはGeckoをベースにするんだという意思決定がまずあって、その枠内で、パフォーマンスを上げるための手段として使っているのではないでしょうか。

「そもそもFennecのUI以外のコードは必要ない」が、Mozilla的にはまさに理想的な形で思い描かれているのだと思います。中野さんがGeckoはモバイルで「使い物にならないレベル」とおっしゃるのならば、それはそのとおりなのでしょう。しかし、GeckoがなければTraceMonkeyは使えませんし、CSS3のプロパティも利用できません。印刷機能が無駄とおっしゃいますが、コードを切り捨ててしまうと、Bluetoothを介した印刷が一般化したとき困りませんか。

仮にGecko以外のエンジンを使うとすると、アドオンの互換性がとれなくなります。かといって、Gecko互換の軽いエンジンをスクラッチから作成するとなると、とてつもないコストがかかります。かつて Mozilla Suiteが安定するまで何年かかったんだという話です。結局、原則を動かせない以上、選択肢は限られてくるので、モバイル専用ではなく、全プラットフォームに利益がある形でGeckoを改良していくしかありません。

あと、Piroさんが「Googleからの収入が途絶える事が目に見えている」とおっしゃっていますが、これは違うでしょう。2011年に契約が切れる際、最悪でもFirefoxはGoogle Chromeの倍のシェアを確保していると思います(20% vs. 10%とか)。また、今から2年半以内にGoogleが広告収入よりもWebアプリへの課金にシフトするといったこともあり得ません。つまり経済合理的に考えて、GoogleはMozillaとの契約を切る理由がないのです。契約金の額は変動するでしょうが。

何が言いたいのかというと、収入の心配をしなくてよい以上、MozillaはFennecに「比較的短期間で成果」を出すことを求めていないと思うわけです。分社化で切り離された Thunderbirdと違って、FennecはMozillaにとってFirefoxに次ぐ重要なプロジェクトですが、まずは2010年末までに、真のフルブラウザがモバイル端末できっちり動作する事実を確立することが大事だと考えているのではないでしょうか。コンセプトを実証するのが先で、普及はその後の話です。

なお、Mozillaの目標に関しては、『Mozillaが向かう先』に拙訳を掲載している。

(同日追記)引用元におけるえむけい氏のコメント。

GeckoがなくてもTraceMonkeyは使えます

> しかし、GeckoがなければTraceMonkeyは使えませんし、
これは全く事実に反します。JavaScriptエンジンはGeckoから完全に独立しています。XPCOMすら使っていません。スタティックビルドでもJavaScriptエンジンのDLLは独立してビルドされます。

これ1つで論旨全体が無効になるわけではありませんが、「技術者でもプログラマでもないので大雑把な内容の記事しか書けません」とか言い訳して基礎的な事実すら勉強しないのでは説得力がガタ落ちになるような気がします。

「GeckoがなければTraceMonkeyは使えませんし」の部分は誤りであったので撤回する。

コメントの後段について、文面上は首肯できる部分もあるが、なぜ脇から悪意のこもった発言を投げかけてくるのか、理解に苦しむ。

(同日再追記)
「won't fix」の『Fennec for Windows Mobileの現状』が素晴らしい内容なので、ここまで目を通された方は、ぜひご一読を。とても説得力がある。

Piroさん、中野さん、Makoto Katoさんと三人の方に教わって、ようやく具体的な問題点が浮かび上がってきたように感じる。これまではFennecがアーキテクチャ的にダメという抽象的な話しか出ていない印象だったので、Mozillaの理想論に立脚したところから議論を進めてみたのだけれど、多少は成果があったかな。