先日、私たちはリッチクライアントの将来について簡単に話し合った。そこで、私たちはMozillaアドオンの専用言語としてXULを見ていた。しかし、それは誤解だったようである。
XML User Interface Language (XUL)は、先日ニュースで取り上げたフレームワークと同じように、プレゼンテーションがXMLベース、バックエンドがJavaScriptというように、多くの特徴を共有している。しかし、異なる特徴もいくつかある。
大抵のWindows開発者は、新しいフレームワークに関して、まず第一に「きちんとしているのか?」と尋ねる。言い換えれば、そのフレームワークで、ネィティブアプリケーションのようなルック&フィールが作れるのかということである。XULに対するその答えは、YESだと思われる。Mozilla Amazon Browser (MAP)を動かしてみると、きちんとしたリッチクライアントを作ることが可能だということが分かる。Firefox上での起動となるが、それは、正にネィティブアプリケーションのようである。XUL Periodic Timetableと呼ばれるデモサイト(Mozilla専用)を見れば、リッチクライアント開発者が期待する制御のほとんどを既にサポートしていることが分かる。
10年前は、他のプラットフォームに影響を与えず、プラットフォームやプログラミング言語から分離するように考えられていた。最近ではそうではなくなり、XPCOMやXPConnectが提供されている。
XPCOMは、クロスプラットフォームコンポーネントのオブジェクトモデルの略です。それは、クロスプラットフォームで書けるモジュールソフトウェアのフレームワークです。XPCOMコンポーネントをC、C++、JavaScriptで記述可能で、C、C++、JavaScript、Python、Java、Perlから操作可能です。
XPConnectは、XPCOMとJavaScriptを簡単に操作できるようにするテクノロジーです。XPConnectは、JavaScriptオブジェクトが透過的にXPCOMオブジェクトにアクセスし、操作できるようにします。また、JavaScriptオブジェクトが、XPCOMオブジェクトから呼び出し可能な、XPCOMに準拠したインターフェイスを持つこともできます。
最近の別のホットトピックは、国際化である。XULでは、言語ごとにDTDで書かれたテキストとプロパティファイルを格納することでカバーしている。訳文を作成するのはとても簡単で、それらのファイルは、XULファイルから分離して作成、パッケージ化することができる。
多くのオープンソースプロジェクトとは異なり、ツールのサポートは充実している。XULのホームページに、XUL Explorerや軽量なIDEを含む、様々なツールやユーティリティがある。
一見、Mozillaのブラウザ製品群に縛られているGran Paradisoと同じ問題を抱えているように見えるかもしれない。しかしながら、それは問題ではない。別のMozilla製品であるXULRunnerにより、XULベースのアプリケーションがブラウザ無しで動作することが可能である。現在、Windows、OS X、Linuxで利用可能である。
しかし、XULは100%問題が解決している訳ではない。Firefox 2.0.0.3でテストをしたところ、Dキーがアプリケーションのコマンドボタンよりも、Firefoxのアクセラレータキーが有効になるという問題がある。これらの問題は、大したものではなく、簡単に修正されるだろう。
もう少し知名度が上がり洗練されれば、XULもWPF/EやAdobe Flexと十分肩を並べることができるだろう。
(原文は2007年4月9日にリリースされた記事です)