スライド

XULもJavaScriptもインタープリタ型言語

XULアプリケーションの大きな特徴として、インタープリタ型であるということが挙げられます。

メリット

対話的なアプリケーション開発

記述したコードをコンパイルせずにそのまま実行して試せますので、試行錯誤でプログラミングを行うことができます。また、行動に対するフィードバックがすぐに得られる「対話的」という特徴がありますので、プログラミングの学習にも使えるのではないでしょうか。教育用途に使われている言語にはBASICやLogo、Study Cなどインタープリタ型のものが多いです。また、私の在学している大学のゲームプログラミングに関する講義科目ではDHTMLを素材として使用しているようです。XULアプリケーションならDHTMLではできないネイティブアプリケーション的な処理も可能ですので、カリキュラム作りの幅が広がるのではないでしょうか。

本格的な大規模アプリケーションの開発も可能

インタープリタ型ということで、本格的なアプリケーションの開発には向いていないのではないか。また、JavaScriptというオモチャのような言語では大したことはできないだろう。そうお考えの方も多いと思いますが、それは誤解です。JavaScriptは実際には本格的なオブジェクト指向言語で、プロトタイプベースのクラス定義なども可能です。また、Mozilla Suiteなどの例を見ても明らかですが、インタープリタ型といえども、大規模なアプリケーションの開発も不可能ではありません。

ただ、気をつけなければすぐにメタメタなものになってしまうというのは確かです。事実、JavaScriptはオブジェクト指向的な使い方以外にも旧来の手続き型言語的な使い方もできてしまいますので、意識してオブジェクト指向的な使い方を心がけなければ、複数人による大規模開発では問題が起こるでしょう。XULアプリケーションの開発では、JavaScriptのオブジェクト指向言語的な使い方をマスターするのが開発を成功させるポイントになると、私は思っています。

デメリット

また、インタープリタ型ならではの欠点もあります。

実行速度が遅くなりがち、メモリなどのリソースを食う

まず実行速度の低下はどうしても避けられません。小セッション終了後にも質問を頂きましたが、インタープリタとしてのMozillaの起動に時間がかかってしまうことに加え、コードを逐一機械語に翻訳するため、ネイティブなアプリケーションと比べると全体的な動作が遅くなってしまいます。速度だけでなく、資源的な面、メモリなどのリソースを余計に消費してしまうのもインタープリタ型のデメリットだと言えます。

とはいえ、最近のPCの性能向上の波は激しいですから、極端な速度低下が起こることは少ないのではないでしょうか。また、Mozilla自身の動作パフォーマンスの改善も絶えず行われており、最新のMozilla 1.7ともなると、Netscape 6が発表された頃と比べて本当に劇的に高速化されていることを体感できます。私の常用環境は今となっては時代遅れのAthlon XPマシンですが、ネイティブアプリケーションと遜色のない速度で動作しています。Netscape 6でXULアプリケーションに失望したという方も、改めてもう一度試してみてはいかがでしょうか。