なぜMozillaの存在が重要なのか

[これは、2013年2月14日に投稿された記事https://brendaneich.com/2013/02/why-mozilla-matters/の翻訳です。]
[これは、昨日ノルウェーから届いたニュースをもとに話題を広げて書いたエッセーだ。文章の最後に、全てのオープンソースプロジェクトの参加者に向けた、Mozillaを代表してOperaとそのファンに送る激励がある。 /Brendan Eich]

創始者の回想

2004年の7月にHTML5の始まりに関する記事を、HTML5という言葉は出さず書いたが、Appleが恥ずかしがりだったので、そこでは「Operaなどの」という形でだけパートナーについて触れている。

記憶しているところでは:

  • @tは当時Microsoftで働いて (彼は現在Mozillaにいる、それは彼にとって非常に良いことだ)、 ワークショップの2日目では、私の前の席に座っていた。
  •  既得権益が、XFormsは必要不可欠なものとして、しつこく売り込んでいた(イギリス保険協会がその標準化を行っていた!)。
  • ブラウザベンダーは、互いに非協力的なことからXMLのユートピアに積極的に対抗しないことまで、ありとあらゆることを批判されていた。
  • JavaScriptは、Bert(その何年後からに私はSXSWで彼に会い、とても仲良くなった)からも含め、こっぴどくやられていた。

Hixie (まだGoogleに入る前だったが、既にWeb Forms 2に携わっていた)とOperaのHåkonがAppleのDavid Hyattに加わり、Mozillaの@davidbaronと私がその後サンノゼのパブで加わった。そこで私がコルクの栓を抜いて「もうなんでもいい、HTML5をやろう!」みたいなことを言ったのだ。

私たちは、WHAT-WGで作業を行うつもりだった。Håkonが、ロイヤルティーフリーの特許契約が実現できそうな方法が1つだけW3Cに残っていることを気付かせてくれたので、私たちは仕様書の策定を目指すことになった。彼はまた、Microsoftは私たちの取るに足らない法的存在には加わらず、むしろW3Cの方を好むだろうことも、正確に予見した。

そうして私たちはHTML5に祝杯を挙げた。

2013年に時代を早送りする

1月のはじめ、 「大規模な転換がOperaで起きており、シニアディベロッパーが解雇され、会社に構造的な変化が起きている…。」と書いていた古い友人から連絡をもらった。昨日ニュースになったような内容は、他の情報源からすぐに確信できた:OperaはPresto捨てて、WebKit に移ろうとしている(chromiumと同じ香りがする)。

私の情報源の1人は、Mozillaについて、そしてなぜMozillaが彼にとって重要かについて、こう書いている:

そこには、賢い人、私も知っている大好きな人たちがいる。面白いことをやっている[プログラミング言語とオペレーティングシステム]。おそらく、比較的独立した最後のウェブ技術のプレイヤーだ。(歴史的にはこれまで気にかけてこなかったことだが、しかしApple iOSの領土を離れてGoogle Androidの領土に移ってから、私はロックインされていると気付き、まさに監視されていると感じている)

最近こんなコメントを以前より聞くようになった.これは雑音ではなく何かのシグナルなのだと思う。

なぜMozillaの存在が重要なのか

1月のシグナルは、私が同僚に向けて書いた、「Mozillaはいかにして違いを打ち出すか」というメールを思い出させた:

  1. 私たちは早く、頻繁に、そしてオープンなやり方で技術革新を起こす:標準化でもソースコードでも、ドラフト仕様でもプロトタイプ実装でも、フェアプレーをし、合意を得るために互いに訂正し合う。
  2. 私たちのグローバルコミュニティーは、検索、デバイス、ソーシャルネットワークに関するビジネスや議題、にわたり、エンドツーエンド情報がより合わさった、様々なものの組み合わせで成り立っているウェブの特性を追求する。たとえ人々が、これらの技術的な特長を正確に述べられなかったり、あるいは全くできないとしても。彼らが一番求めているのは、「所有されないこと」だ。彼らは、ユーザーの主導権を求めているのだ。
  3. 私たちは、ユーザーが得をするようなやり方で、標準化を推し進め、ブラウザ間の競争を取り戻す。 私たちは再びそれに取り組んでおり、私たちの支持者も他のプラットフォームを標準に近付けている:SamsungはB2G発のデバイスAPIを使えるようにするためにWebKitのパッチを書いている
  4. 私たちは政治的な駆け引きをあまりしなくてよいので、 パートナーを組んだり、連合したり、多目的な垂直のサイロの中にユーザーを捕まえておこうと躍起になる代わりに、水平統合をすることができる。
  5. 私たちは、あなたが選んだどんなサービスにおいてもあなたがあなた自身の体験やデータを ID付きで保持できる、というビジョンを推し進める。その例が、ソーシャルAPI や、DropBoxやBoxなどにストレージサービスをアウトソースする、新しいFirefox-syncプロジェクトだ。

最後の点は、非常に重要だ。 これこそ私たちが、Firefox OSに関する、こんなに優れたBizDevやパートナー関係を保持してきた理由なのだ。しかしこれはまた、私たちが強く信頼されるブランドを持ちコミュニティーへの従事を続ける理由でもある:人々は私たちに、中立の意見を言うことを、困難だが必要な戦いをすることを、時には孤高を守ることを期待しているのだ。

これらが重要な差別化要因であると私には分かる。これら全てを備えている競合は他にいない。

WebKitに思うこと

webkit-devを読んだ; とても聡明な人たちが投稿をしている。しかし、WebKitの全貌は、勝者の側の解釈である単純な「1つのWebKit」よりも、ずっと複雑で興味深いものだ。

そもそも、WebKitはただ1つではない。Android2.3を扱うウェブ開発者は痛い思いをしてそのことを学んだ。しかしそこは大目に見て、(何年もの)時がそれらの傷を全て癒したか、それに類する状況になったとしよう。

WebKitは8つのビルドシステムを持っており、それが困った挙動を引き起こす。ベールをはぎ取れば、過去何度か、コードがフォークしてしまうような緊張があったことが分かるだろう:V8対AppleのJavaScriptCore(「Nitro」)、iOS(最終的には解決されたものの、何年もの間apple.comの秘密のレポジトリにあった)、様々なグラフィックバックエンド、いくつかのネットワークスタック、2つのマルチプロセスモデル(何年もの間こっそり開発されてきたChromeのそれと、Appleの「WebKit2」のフレームワーク)。技術的な衝突の背後には、深いビジネス上の対立がある。

緊張が高まっている時には、コード共有はよい方法ではない。競合企業から参加している主要リーダー達の、人扱いの巧みさともっとうまく共同作業をしようとする努力に賛辞を贈りたい。

誤解しないでほしい。ここでWebKitを批判したいわけではない。 WebKitは私の属するコミュニティーではないし、いくつかの大企業が世界中から利益を得るのに大いに役立っている — まず、Mozillaと並んで、質の高いウェブ標準のオープン実装を提供している。しかし、それは理想の楽園ではない(その点はMozillaも同様である)。

もっと興味があれば、かつてAppleで働き今はGoogleで(長期にわたってChromeプロジェクトで)働く人間の想いを綴ったエッセーとして投稿された、Eric SeidelのWebKitへの願いを見てみるといい。

私が言いたいのは、「1つのWebKit」など存在しないということだ。流通力は重要な要因である(詳しくはこのエッセーのもっと後ろの、終わりの方で述べている)。対立し合うビジネス上の狙いがWebKitを苦しめる。そしてコード共有はいつも困難をきわめる。すでにたくさんの料理人がいるからだ。

ソフトウェアの世界では、短期的に見れば、コーディングするよりも設計をコピーする方が簡単であり、コードを共有するよりもコピーした方が簡単だ。この精神により、オープンソースの各JSエンジン(そのうち2つはWebKitのためのもの)はお互いを参考にしている。MozillaもJSCのYARR正規表現JITを使っており、こういうコピーやコード共有は今後も増やしていくつもりだ。

ウェブエンジンのトレードオフ

みなさんの中には、まだこんな疑問を持っている人がいるかもしれない: Mozillaは、設計をコピーしたりコードの一部を共有するだけでなく、もうWebKitに切り替えてしまったらいいのではないか?

経済活動の遂行というレベルでこれに答えてしまうと、「正解の方法」をとらないことに対する弁解をリストアップすることになってしまうだろう。経済活動というこの暗黙の前提を私は拒否する。 詳しくは後述するが、ビジョン、戦略、そして着実なビジネス遂行という3つ全てのレベルにおいて、MozillaにはGeckoを進化させ続け、ほぼ新しいエンジンすら研究するだけの、十分な理由がある。

しかし、「なぜ切り替えないのか」という質問に直接答えるなら次のようになる: 純粋なコーディング作業だけで考えても (標準化団体やコミュニティーによる影響力を失うことは考慮せず)、「WebKitに切り替える」のに要する切り替えコストは、現実的でユーザーをつなぎとめておくことが出来る現在の製品タイムラインでは、あまりにも高すぎる。

XULはそのコストの一部であり、かなり部分を占めるが、単に技術的コストが大きいばかりではない。XULを失うことは、ユーザーがリッチで広く深い、Firefox アドオンのエコシステムの恩恵を失うことを意味するのだ。

別の言葉で言えば、デスクトップ版のFirefoxをすぐにchromiumと改名することはできず、まだFirefoxのままだということだ。Firefoxは、XULアドオンやオーサムバー、プライバシーとセキュリティのUIと基盤、そしてchromiumのソースコードには含まれない多くのプラットフォームの深い部分のロジックを必要としている。

Operaは、XULもMozillaの使命も私たちのようなコミュニティーも持たない純粋な商用製品なので、技術的な切り替えコストはずっと低い。特にOperaのデスクトップにおけるシェアは非常に低いし、ウェブコンテンツ全体を「小さく」し、OperaのデスクトップPrestoエンジンとブラウザを悩ませる、 「サイトが壊れています。ブラウザに問題があります」というメッセージが出たときにどうユーザーをつなぎ止めるかという問題からコンテンツ製作者を解放する、トランスコーディングプロキシとしてのOpera Miniだって同様だ。

にも関わらず、私の得た情報により、Operaが要した技術的切り替えコストはわずかではないことが分かった。Mozillaの場合にかかるであろう莫大なコスト(数年にもわたり、製品を破壊する)と比較すれば低いコストであるにもかかわらずだ。このことから分かるのは、切り替えには純粋に「費用対効果」の観点が重視されたということだ:Operaはエンジニアの人数を節約するだろうし、(少なくとも最初のうちは)標準化団体において追従者にすらなるだろう。

大局図

Mozillaの使命というレベルで見ると、モノカルチャーは依然として私たちが戦わなければならない問題だ。ウェブは、進化する標準に対する、相互運用可能性を保った複数の実装を必要としている。

2008年にHyattと私が、WebKitへの技術的および非技術的な切り替えコストについて話したとき、彼はまさにその言葉(「ウェブは、進化する標準に対する、相互運用可能性を保った複数の実装を必要としている」)を私に言った。その言葉は今でも真実だし、WebKitを共有する2、3の大企業がそれを素早く進化させようと努力してきた結果、WebKitの骨格が成熟した今では特にそうである。

たしかに、 1つの強大な勢力が1つの理想的なWebKitを広め新鮮に保っている状況を想像し、 「モノカルチャーを実現しよう」 という人もまだいるかもしれない。そのような人々だって、かつての独占的ルールのもとでは生きていけなかったかもしれない。もしくは、十分に未来が見えなくなって、 「我が後に大洪水あれ」 や 「長い目で見ると、私たちはみんな死んでいる」 のように思うかもしれない。そういう人たちは、John LillyがTumblrで述べている警告を読むべきだ。

@andreasgal が言うには、W3Cは2つ以上の相互運用された実装プロトタイプが無い標準を作らないよう努めており、WebKitとペアになるようなメジャーなエンジンは他にはMicrosoftのTridentしかないため、互いに独立したGeckoとWebKitが今では好まれているそうだ。確かにそうだが、しかしもちろん時にはみな協力し合うし、政治によって奇妙な仲間関係が生まれたりもする。

ハードウェアのトレンドと電力の壁問題を考えると、次の10年間で少なくとも今以上の数のウェブエンジンが出てこないかと期待している。この観点から、現在MozillaはGeckoだけに投資するのではなく、急速に普及している高度並列化ハードウェアアーキテクチャ(マルチコアCPUと超並列GPUを持つ)にフォーカスしたServoについても研究をしている。

もし、私たちMozillaの使命を支えるために必要な標準化団体での影響力を、これまでに私たちが失っていたとしたら、どれほどの人々が私たちとともに働くことを選んだか疑問だ。Servoだって、もし研究のパートナーもおらず技術トレンドを変える見込みもなかったら、関心を維持し続けるのはずっと大変だったろう。こうした状況だったら、私はなぜMozillaにいるのか、Mozillaには意義があるのか、疑問を持っただろう。
しかし私はそんなことを疑問に持たない。MozillaはOperaではない。 もし私たちがもっと従来型のビジネスをしており、十分なデスクトップブラウザのマーケットシェアも持たなかったら、たぶんOperaがしたのと同じことをしただろう。しかし私たちがしているのは単なるビジネスではないし、私たちのデスクトップにおけるシェアは維持できているしひょっとしたら上昇しているかもしれないのだ — 短期的な勝利のおかげで、私たちはGeckoの開発を続けることができる。

未来のウェブエンジン

非常に現実的な話をすれば、競争から脱落しない数年間の間にWebKitに切り替えるために、私たちはWebKitに移行する取り組みを、平行してこっそりと開始すべきなのかもしれない。しかし私たちは、そのためのハッカーコミュニティー(有償無償問わず)を持ち合わせていない。XULやこれまでに述べた他の依存関係を考えると、FFOSのコミュニティーを含めても、そのようなコミュニティーには程遠い。(それに、私たちは「こっそり」とはやらない。)

私たちが適切に投資をしたので、Geckoは私たちとって良いものになっている、というのが実際のところだ。(継続的に進化するウェブの世界を考えれば、どんなエンジンをもってきたとしてもフリーランチを得ることはできない。)Geckoなくしては、私たちはFirefox OSもAndroid版Firefoxも作ることができなかった。これらのプロジェクトがGeckoを進化させ続ける力になる。

そしてもう一度言うが、Servoを忘れてはならない。 マルチコア/GPUの未来は、WebKit、Chromeのどちらかに特に有利に働くわけではない。これらのエンジンに投資しているさまざまな会社、私たちやもちろんAppleやGoogleやその他の会社、は、「プロセッサーの海」となる未来のハードウェア上でうまくスケールさせるために、エンジンを独立プロセスにするのと同時にマルチスレッド化にも取り組まなければならない。

スレッドだけでは済まない: アムダールの法則を見れば、スレッドも、SIMDの名でも知られるいわゆる「データ並列化」も、画像や音声・動画のデコーディングのみならずエンジンのあらゆるステージにおいて、より細かい粒度で必要とされることが分かる。しかしC++のスレッドを使うことは、他の手法と比べてより困難なバグとセキュリティ脆弱性を作りこむことを意味する。

私は、万一ということもあるかと思って、メモリ安全でないSMPカーネルプールの深みに飛び込んだSGIで、80年代の終わりに学んでいた。AppleとGoogleは、彼らのソースコードの多くをマルチスレッド化、そしてSIMDによる並列化すらできるし、おそらくやるだろうが、それにはしばらく時間がかかるし、生産性を重視し、無難なヒットを打ってくるだろう。Servoは、メインの実装言語、Rust、が並列性と同じくらい安全性を重視していることもあり、より安全な設計がされている。だから、私にはこれは技術的に筋の良い賭けに見える。

超並列ハードウェアに対する他のアプローチも考えられ、未来のハードウェアまだ十分にデザインされていない。だから、私たちはウェブエンジンの研究を進めていかなければならないと思う。

きわめて重要な責務

ここまで考察してきたこと以外に、私たちの立場からも私たちのパートナーの立場からも、新たなきわめて重要な責務があることに、私たちは気付いた:世界は新しくて、きれいで、安全で並列化された、オープンソースのウェブエンジンを必要としているのだ。単にマルチコアデバイス向けのものではなく、— 私たちとパートナーではその動機は異なるが — 途方もない資金力を持ちロックインを好む競合が支配するエンジン、すなわちWebKit、への依存を避けるためのものとして。

このような安全で並列化されたエンジンは、ウェブ標準をより宣言的で 暗黙のうちに並列化が行われるような方向に推し進めるためにも、配布されウェブ標準のフィードバックを受けるべきだ。

単なる切り替えコストや標準化の進展、そして私たちの使命や価値、それ以上のものが私たちにかかっているのである。

上記では触れなかった純粋なビジネス的始点で見て言えるのは、WebKitのようなエンジン(もしくはこの文において似たような位置づけのもの、例えば中国におけるTridentのラッパー)を使うと、流通シェア競争に製品を陥らせるということだ。一般的に言って、フロントエンドの技術革新は難しくない;どのみちコピーは簡単だ。AndroidにおけるDolphinがいい例だ。もしくは、Maxthonが20%以上あった市場シェアを一年で1%以下に落としたこと、中国市場で1%以下のシェアになっていることを考えてみればいい。フロントエンドの技術革新を特にしていないQihoo/360が同じ期間に0%から20%までシェアを拡大していることも考えてみるといい。

プラットフォームの深い部分の技術革新は難しくなることがあり、そして私たちの経験によれば、その革新こそ全ての人に恩恵のあるウェブの前進につながるものである。JSのパフォーマンスが一例である。他の例としては、権限を持ったネイティブアプリケーションスタックにしか使えなかったデバイスAPIを含めるようにウェブを拡張することが挙げられる。複数の相互運用されているオープンソース実装やユーザーが所有するベンダー非依存な資産によって、プラットフォームの技術革新が標準に基づき、そして標準化されている限り、「実装と技術革新の質」を確保する難しさは問題にならない、というのが私の意見である。

Mozillaの話に戻ろう。私たちは競合勢力のようにデスクトップにおける流通力を持たないが、それでもうまくやっており、もっとうまくやる態勢も整っている。これこそ、ユーザーに対する素晴らしい証明であり、私たちの使命と私たちが作っている製品の、ユーザーにとっての価値である。そしてデスクトップ版のFirefoxに加え、(特にウェブアプリケーションの実行ランタイムとしての)Firefox OSとAndroid版Firefoxは、次の数年間でモバイル分野において大きな流通シェアを得ると私は信じている。

さあがんばろう

さあ、がんばってやり抜こう。HTML5と手軽に使える<video>要素の共同創始者によって創られた、残された数少ない独立系ウェブプラットフォーム、Prestoがなくなってしまったそうだ。OperaがWebKitプロジェクトの中でも良き戦いを続けてくれることを私は願っている。Mozilaコミュニティーは、Operaファンのあらゆるレベルの貢献(標準化、ハッキング、雇用)をいつでも歓迎する。

私たちには未来は分からない、しかしSarah Connorが刻んだように、「運命は自ら作るしかない」のだ。どんなことが起こっても、Mozillaは耐え抜く。

/Brendan Eich

その他の意見:

2 件のコメント

  1. Average :

    訳文で、原文に忠実な下記の訳ですが、
    『おそらく、比較的独立した最後のウェブ技術のプレイヤー(歴史的にはこれまで気にかけてこなかったことだが、・・・』
    日本語としては意味が取りづらいので
    『おそらく、比較的独立した最後のウェブ技術のプレイヤーだ。(歴史的にはこれまで気にかけてこなかったことだが、』
    と、プレイヤー「だ」とした方が良い気がします。

    1. NozomiIto :

      確かにそうですね。直しました。ありがとうございます。