Mozilla Flux

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

Bespinを介して広がるさまざまな動き

Mozilla Labsが開発中のオンライン・コードエディタBespin。発表されてまだ10日も経っていないのに、すでに他のプロジェクトとの連携を深めつつある。

代表例がIDE(統合開発環境)のEclipseだ。Javaをはじめとするいくつかの言語に対応し、オープンソースで開発されているソフトである。このEclipseをベースに、Bespinのクライアント/サーバーAPIを実験的に実装したのが、e4 Bespinサーバー。このサーバー上でBespinを使用してJavaのソースコードを編集した場合、コンパイルエラーと警告がコマンドラインに表示されるようになり、修正すべき点がただちに判明する。また、匿名CVSを通してCVSサーバーからプロジェクトを取得することもできる。

開発者の一人であるBoris Bokowski氏によれば、Eclipseは、Javaコンパイラその他のコンポーネントを組み合わせて構築されており、多くのコンポーネントはJavaのヘッドレスモードで動作する。つまり、入出力デバイスのソフトウェア・エミュレーションが可能である。なぜなら、Eclipse自体がJavaで記述されているからだ。こうした特性があるので、EclipseをベースにしたBespinサーバーは、クライアントであるBespinからの指示を受け取って、エラーなどの結果を返すことができるのだ。

他の例としては、Smalltalk環境のSqueakとの連携が挙げられる。BespinのDashboardから、パッケージ/クラス/メソッドの呼び出しができるというものだ。将来的には、Dashboardはエディタと統合される予定であるため、ファイルではなくプログラムの部品を呼び出す手法は、一般化するかもしれない。さらに、Web開発ツールのFirebugも、Bespinとの統合を目指しているという。

今後、ますますこうした連携は深まっていくだろうが、Bespin側も成り行きに任せているわけではない。開発者の参加を促すべく、Bespinで使用されているGUIツールキットを単独で公開する予定だ。その名を、Thunderheadという。

Thunderheadは、HTML5のCanvasとJavaScriptを用いて作られたツールキットで、文字処理機能に関しては、テキストレンダリング以外すべて自前で用意している。言い換えれば、OSに依存することなくモダンブラウザのほとんどで機能が動作する。テキストレンダリングをサポートしていないのは、Firefox以外のブラウザで実装が進んでいないからで、代わりにビットマップフォントを使って対処する計画だ。

Bespinの開発チームがいろいろ比較検討した結果、パフォーマンスと互換性の点でCanvasがベストだと判断し、Thunderheadツールキットを作成した。これが解放されれば、自分でエディタを作る人も当然出てくるだろう。そこに有用な新機能が盛り込まれれば、オープンソースゆえにBespinを含め、他のプロジェクトも成果を参照できる。直接の連携ではないが、こうした形でプログラムの進化が期待できるのは素晴らしい。