Stanislas Polu氏は先頃,ChromiumとNode.jsをベースに開発されたモジュールブラウザであるBreachの,最初の公開アルファ版をリリースすると発表した。
Polu氏は最初,"The Experimentation Platform to Build a Next Generation Web Browser"と題した記事を書いて,後にBreachへとつながる実験的プロジェクトの概略を説明した。その中で氏は,"Webブラウジングの従来的アプローチ"はすでに確固とした地位を築いてはいるが,ブラウザが"常時起動し,常時接続"されるWebを前提にしたものではない,という意見を述べている。
それによると,
ExoBrowserは,Webレンダリングエンジン上へのNode.jsの組み込みを目指します。主な目標は,ブラウザのコードの大半をC++からJavaScriptに移行することです(ネットワークなどNode.jsのネイティブな機能だけでなく,JavaScriptのクロージャや構文なども特に活用します)。
ExoBrowser開発の動機は,JavaScriptエンジンやHTMLレンダリングエンジンが基本的に不要なブラウザ開発を実現することにあります。そもそもなぜ,ブラウザの開発にC++を使用して苦労する必要があるのでしょうか? "ブートストラップ"さえすれば,後はそれ自身で利用可能なテクノロジを使って構築できないのでしょうか? ExoBrowserが実現しようとしているのは,まさにそれなのです。
ExoBrowserをベースとしたBreachが動作するまで,その後1年も掛かっていない。Polu氏はBreachについて,開発者にWebテクノロジのみを使用した新たなブラウジングエクスペリエンスの創造を可能にするものだ,とInfoQに語っている。
リリース発表の中で氏は,まだ初期段階ではあるが,Breachがユーザによるハッキングや動作変更を認めることによって,Webブラウズの面白い方法が新たに生まれるだろう,という考えを述べている。
氏は言う。
私たちは,シンプルで独立したWebアプリによってすべての機能が提供される,完全なモジュールブラウザというビジョンの実現を目指して,モジュールに公開するBreach APIの設計とコード全体の作成を行いました。BreacjのコアエンジンをHTML5標準の最新に合わせるために,少なくとも4つのメジャーリリースのChromium Content APIをマージしています。メインブラウザとして毎日使用する上で十分な安定性を得るため,数えきれないバグもフィックスしました。
Breachで注目すべきなのは,mod_strip (導入時にインストールされるデフォルトモジュール)が備えている,次のような機能だ。
- タブがFIFO形式である
- タブがページの色を反映する
- URLバーに入力すると,タブを対話形式でフィルタできる
このような実験的機能が提供するブラウジングエクスペリエンスは面白いが,Breachが開発者に提供するのは"その外観や動作を変更する自由であり,それにも増して重要なのは拡張する自由"なのだ,とPolu氏は述べている。
Breachへの反応には賛否両論がある。開発者やJavaScriptコミュニティの一部からは,その名称に対する懸念の声が上がっている。Hacker Newsでのディスカッション "Show HN: Breach – A modular browser built on Chromium and Node.js"では,WeSawlt.comのCTOであるChristopher Elwell氏が,Breach(訳注: 違反,裏切りなどの意)という名前が,"個人情報のほとんどすべてを送信するアプリケーションの名称として信頼できるものではない", とコメントしている。
Redditでのディスカッション "Breach, Hackable Browser Written in JavaScript"では,640x480というユーザが次のように発言している。
Breachという名前から,"ハッキング可能(hackable)"を悪い意味に解釈してしまいます。
クールなアイデアのようには思いますが,他の,例えばFirefoxとはどう違うのでしょう? FFの動作を完全に変えるようなエクステンションはたくさんあります。
コミュニティの他のメンバも,Breachが提供するものの新規性を理解できかねていて,shawnzというユーザは,"Firefoxにも当てはまるのではないのですか"と質問している。Firefoxもオープンソースかつモジュール構造で,JavaScriptで記述されているからだ(HTMLではなくXULを採用している,WebkitではなくGeckoを使用している,などの違いはあるが)。
Polu氏の返答は,
私たちはさらに一歩進んで,モジュール以外のみで構築された機能をブラウザに提供しませんでした。さらに,Chromium Content Module上でこれを実現しました。基本的な動機は同じです。 完全なWebブラウジングエクスペリエンスを新たに書き直すのなら,Breachの方がおそらく簡単だとも思っています。
名称に関する懸念,あるいは提供する機能に対する困惑を別とすれば,ブラウザを試したユーザからのフィードバックは肯定的なものだ。Hack Newsでは,ユーザであるPaul Sawaya氏が次のように語っている。
素晴らしいアイデアですね。 以前からこういったものを作ってみたかったのですが,時間的な余裕がありませんでした。ここの人たちはポイントを逃していると思います。FirefoxやXULもブラウザ上のJSスクリプト可能なUIですが,作業環境としてはひどいものです。
UIはWebブラウザを差別化する最たるものです。ここ数年のタブブラウザはどれも同じように見えますが,Breachはすべての素晴らしいエクスペリエンスやカスタマイズを可能にしてくれます。このプロジェクトがどの方向に進むのか,とても楽しみです。
Polu氏はBreachについて,テクノロジスタックやモジュールに公開するAPIに関して,今後数ヶ月で行うべき作業がたくさん残っている,と述べている。目標は,他の開発者が開発を行うための強固な基盤として十分に信頼できるものにすることだ。Polu氏は,ネイティブアプリをHTML5 Webアプリへと収束させる役割をBreachが果たし得るという考えと同時に,Google Chromeのアプリモデルについては,満足できるものではないと述べている。
BreachはMITライセンス下でリリースされている。プロジェクトには新たなモジュールの開発や,進行中の作業への参加などでコントリビュート可能だ。Polu氏は最近のコントリビューションとフィードバックの量に圧倒されているため,Breachを前進させるためにプロジェクトを囲むコミュニティ構築を計画している,と語ってくれた。