XUL

ひょんなことから XUL 関連の文書を読みあさり。とりあえず https://developer.mozilla.org/ja/XUL_Tutorial/Introductionwikipedia:XUL を読む限りでは cross platform な interface 記述言語といった感じ。 https://developer.mozilla.org/ja/XUL_Tutorial をつらつら眺めていると XUL 自体は label や button 等を配するためのもので event driven でいうところの event の処理は XUL 内の script 要素や XBL が担っている、という認識でいいかな。 MVC 的に解釈すると view であるところの XUL が model / controller である script 要素や XBL を含んでいる、というイメージなんだけど厳密に分離できないなぁ。

GUI application の開発経験や HTML / XHTML の form とその子要素を使ったことがあるならそれほど障壁もなく使えるというのがうまみだなのかな。逆をいうと XML や DOM の操作方法や css における box model や装飾なんかは知ってないといけないという障壁があるんだけど、それらは HTML / XHTML での単純な page 記述や web application 構築にも使える技術であるという点と XULRunner という枠組みを用いることで platform native のものと遜色ない application を構築できるという点 ( https://developer.mozilla.org/ja/XULRunner_Hall_of_Fame に実績が載っている。 Mozilla Prism や Songbird なんかは有名だと思う ) を考えると習得 cost が相対的に低くなっているというか。

ここらへんは Gecko とそれが持つ SpiderMonkey ( TraceMonkey ) という parser / interpreter を土台として XBL, XPCOM を含む XUL がいくつか載っているというぼんやりとした絵が描けるな。 Firefox だと XPInstall という間口を通して XUL 他を積み立て可能と。どちらかというと XULRunner を前提として XUL 他が一個という絵の方が理解しやすいかもしれないな。

てかこうやって Mozilla 関係の技術を俯瞰してみると Mozilla Framework とでも言えそうなかなり整備された開発環境だということがわかってくる。大体 keyword は以下の 3 つかな ?

  • cross platform
  • versatile technology
  • open source

まぁ在野の開発者を取り込んでいく上で上記を目指さざるを得なかったという経緯はあるんだろうけど最初に計画ひいたひとすげぇなぁ。ここまでの状況を予測できてたんだろうか。ここらへんの設計思想に関する文書どっかにないかな。 MDC だと how はすぐ見つかるんだけど why は出てきにくいというか。

あとちょっと見た限りでは Adobe AirSilverlight も似たような感じの framework みたい。 Adobe Air は native application ぽいものを作れる potential があって見てておもしろそう ( http://adobe-ria.jp/air/ ) だし SDK や開発用資料なんかは開放されてるので手も出せる。対して Silverlight は正直使われてる例を見たことがないというか少し検索したくらいじゃ出てこないんだけど人気なさげ ? ここらへんと対比すると Mozilla は十分戦えている印象だなぁ。

てわけでイマドキの技術の流れについてちょっと追いつけた気がする。さしあたっては何か Fx addon でも作るといいんだろうけどその気はサラサラない感じ。