最近Mozillaコミュニティーの中でMonkeyが大変話題となっている。もし自分がWeb開発者であるなら(またはMonkeyが好きであるならば)彼らの話にとても興味を持つだろう。
Mozillaで話題は5つの異なるプロジェクトに集まっていて一つ一つがかなり強力なものでまたブラウザスクリプティングの未来について語っているものである。下記がこのプロジェクトにあまりなじみがない人達のための概要である:
- SpiderMonkeyはMozillaのJavaスクリプトエンジン用のコードネームである。これは何も新しいことではないがそれは一番はじめのJavaスクリプトエンジンでありネットスケープブラウザで使われていた。
TamarinはAdobeが去年の11月にMozillaに寄付したアクションスクリプトエンジンである。タマリンはJavaスクリプトをマシーンコードに集計するジャストインタイムコンパイラーでまた良質のごみ収集を誇る。そしてECMAスクリプト3もサポートし現在はフルECMA スクリプト4(JS2)の内訳サポートへの対応が進められている。
ActionMonkeyはSpiderMonkeyとTamarinエンジンを統合するための現在進行中のプロジェクトのコードネームである。この合併された製品はMozilla 2プラットフォームのエンジンとなるだろう。それによってパフォーマンス性の向上とTamarinからFirefoxそしてMozillaベースアプリケーションの最新仕様のサポートをもたらす。
ScreamingMonkeyはTamarin エンジンをMozillaでないブラウザで作動させる補助を行う。これによってTamarinが持つ同様の利益をもたらすのだ。だから他のブラウザは単一で早いスタンダードコンプライアントスクリプティングエンジンの実装の世界に大暴れしながら持ち込まれるのだ。
IronMonkeyはマイクロソフトCommon Intermediate Language(CIL)をActionScriptByteCode(ABC)にマップするものだ。
こうすることによってIronPythonとIronRubyによって書かれたコードをTamarin上で作動させることが可能になるのだ。
というのはActionMonkeyとScreamingMonkeyが一緒になるとブラウザ内でRuby/Pythonコードを作動させるということになるのだ。
このMonkey達が集まるとブラウザスクリプティングにかなり面白い道が開けるのだ。向上したパフォーマンス、ESMAScript 4、より数少ないブラウザ誤作動(少なくともスクリプトエンジンとして)、そして他のスクリプティング言語用のサポートを期待が期待できるのだ。
これが興味をそそるものである一方、全員が全員この移行に賛成しているわけではない。少なくともそこに辿り付くための役割をするバーチャルマシーンに関しては。JavaVirtualMachineかMonoの方が良かったという見解もいくつかある。Javaは既に他の言語フロントを補いつつJRubyとJythonをサポートしている。そしてRhinoを作動させているホットスポットエンジンはパフォーマンス性に優れている。Monoはこの二つの機能両方を可能にする。John Resig氏はTamarinを選ぶ理由を要約している。
全体的にみてTamarinを選ぶ技術的なもの以外での理由は知的財産とライセンス問題にあり、技術的な問題としては集計スピードとファイルサイズ、そしてメモリのフットプリントとなるだろう。