新たに発表されたTraceMonkeyは(参考記事・英語)、Firefoxの次のリリースに搭載され、JavaScriptのパフォーマンスの限界を押し上げる、トレースベースのJITコンパイラだ。InfoQは、MozillaのJavaScriptエバンジェリストであり、jQuery(リンク)の作者でもあるJohn Resigに、この刺激的な発展がJavaScriptベースのRIAの未来に対してどのような意味を持つかについて、質疑応答を行った。
InfoQ: この発展がRIAに対してどのような影響を与えると思いますか?それはさらにリッチなアプリケーションへの道を開くと思いますか?それらをどう見ていますか?
言うまでもなく、計算の集中する複雑なゲームやグラフィックシミュレーションなどのアプリケーションは、現時点ではJavaScriptで実装するのが難しい、とてつもない挑戦ですが、TraceMonkey(そしてECMAScriptエンジンのパフォーマンスの向上)によって、これらの挑戦が実現可能なものになるのです。それはとても刺激的です。
InfoQ: Dion AlmaerはTwitterで「JITでコンパイルされたコードをFirebugでデバッグするのが、どれくらい難しくなるのか?(リンク)」という疑問を述べていますが、あなたはどう思いますか?
率直に言って(フロントエンドのWeb開発者にとっては)それほど変わらないでしょう。エンジンのコアはほとんど変化しないので、最終的にはほとんどのWebユーザにとってシームレスになります。
現在、分かっている(そしてFirefox 3.1のリリースまでに解決されるか不明な)ことの一つは、トレーシングが有効になると(ブレークポイントを設定したり、Firebugを起動する)Mozilla内部のJavaScriptデバッガを実行できなくなるということです。幸いなことにユーザがデバッガを起動すれば(JITでコンパイルされないだけで)JavaScriptコードのデバッグはできるので、これは上記の件とは完全に別の問題です。
InfoQ: just-in-timeのネイティブコードコンパイラでMozillaに追従しているその他のベンダーに関心がありますか?
もちろん。主にその他のECMAScriptエンジンがどのように実装されたかの詳細についてです。TraceMonkeyが行ったのと同じような改善を行うことも十分に予想しています
InfoQ: TraceMonkeyの他に、近い将来、クライアントサイドスクリプティングの領域で、どんなブレークスルーを予想すべきですか?
次の大きな関心はスレッディングになるでしょう。Webに従事する人々の提案が、W3Cの後援を受けたGoogle、Apple、およびMozillaによって取り組まれています。これはもうじきブラウザに(いくつかはFirefox 3.1に)搭載され、間違いなく伝統的なWebアプリケーションに革命をもたらすでしょう。
InfoQ: jQueryのようなJavaScriptライブラリをブラウザに同梱して出荷することに関心がありますか?ネイティブなブラウザAPIよって提供される、いくつかの機能を予想できますか?
同梱して出荷する?それはないでしょう。便利なAPIを提供する?それはもちろん。これについて私たちは、すべてのブラウザ(IE 8、Firefox 3.1、Safari 3、Opera 10)のSelectors API仕様の実装と一緒に検討しています。それらすべてのブラウザが市場に浸透すれば、大部分のJavaScriptライブラリから、とても多くのコードを削除することができるでしょう。
数年のうちにブラウザに対するさらなる改善がなされると期待しています。
原文はこちらです:http://www.infoq.com/news/2008/09/jresig-tracemonkey