« XMLを用いてUI定義しよう(4):XUL | メイン | 失敗するという成功 »

XMLを用いてUI定義しよう(5):XAML

OASISのCover Pagesに、XML Markup Languages for User Interface Definitionより第5弾。

eXtensible Application Markup Language (XAML)

XAML(ザメル)は、Microsoftの時期OS Longhornの中核となる技術だ。MSDNの"Longhorn" Markup Language (code-named "XAML") Overviewによると、
"XAML" is based on Extensible Markup Language (XML) and enables developers to specify a hierarchy of objects with a set of properties and logic. The primary use of "XAML" is for "Longhorn" client applications but you can use it to specify a hierarchy of any common language runtime objects.

XAMLは、Longhornにおけるクライアントアプリケーション構築のためのXML言語だと説明されている。そして、プログラミングをモデル化することで、特別なアプリケーションコードを書くことなくXAMLによって定義することを可能にしている。既にWeb上に多くのリソースがあるが、Inside XAMLには、画像付けで分かりやすく説明されている。

さて、ここまで来ると、前回のXULとよく似ていることに気付かれると思う。DedX.comA Standards-based Look at XAML's Featuresでは、XULに限らず

There are many such GUI specifications now, a few being Mozilla's XUL, Oracle's UIX, Macromedia's Flex and the XML files created by the Gnome Glade tool.

ORACLのUIX、MacromediaのFlex、GnomeプロジェクトのGladeがあげられている。順次このBlogでもエントリして行くことになるだろう。これらの言語は、

The greatest overlap between XAML and other standards lies in its support for concepts drawn from HTML/XHTML. The similarities between XAML and HTML are numerous. Overlap with HTML is not limited to XAML, of course. The other well-known XML GUI dialect―Mozilla's XUL―also overlaps with XHTML.Finally, both XAML and XUL overlap in places that XHTML doesn't even include.

HTMLのように、表現をモデル化して表示するという概念が共通している。そして、HTMLをXMLで記述したXHTMLとは非常に重なる部分が多い。ただし、HTMLには出来ない表現コンポーネントを付け加えることで、よりユーザビリティの高いアプリケーションを構築することが出来る。

XAMLと他の言語の大きな違いは、XAMLが、Longhorn上での動作を前提としている点だ。XULは、Gekkoがあればよいのだから、理論上はプラットフォームに依存しない。一方のXAMLは、OSに依存するようなレベルのAPI、特にLonghornに搭載されるストレージ技術WinFSとの連携が可能になる。これは、良い技術をWindows上限定に展開することで、より良くするというお得意の戦法だ。

上記の記事では、XAMLがCSSのサポートを行っていない点を問題視している。すでに次世代の標準として策定されているCSSだが、IEでのサポートがいい加減なために、HTMLとの組み合わせですら普及が進んでいない現状がある。CSS論者の中には、Microsoftが、意図的に普及を妨げているという見方があるようだが、あながち間違ってはいないだろう。

今後は、XAMLをはじめてとするXMLによるUI定義仕様の互換性が問題になってくると思われる。GNOMEとMozilla,LonghornのXAML対抗を検討中では、既にその問題が指摘されており、

各グループはMicrosoftが出すものに十分対抗できるLinux向けのXAMLクローンを作るか,新しいXAMLもどきの技術を作ることを検討しているという。

なんだが、どこかで聞いたような話だ。とはいうものの、MozillaとGnome、Longhornに対抗する共同戦線結成かによれば、

「XULはGnomeがおそらく望んでいるような多目的の宣言型言語ではない」とWindows開発者プラットフォームのプロダクトマネージャー、 Ed Kaimは説明する。「カナヅチを手にすると、何でもかんでもクギのように見えてくるとよくいうが、それと同様に、XULをもともと想定していなかった OSになんとか押し込む方法を皆が探している。Mozillaブラウザには素晴らしい点も多くある。しかし、堅牢なクライアントサイドのアプリケーションを扱うという点では、ベストの技術とはいえない」(Kaim)

 XULをGnomeの既存ユーザーインターフェース技術と調和させることにも、工夫が必要だろう。

 「両者を結合させる方法はいくつかある」と、マーケティング団体Desktop Linux Consortiumのエグゼクティブディレクターを務めるオープンソースコンサルタント、Bruce Perensは述べている。「しかし、両チームが同じ方向性で作業するのは、非常に難しい。両者とも数年間かけて、GUI(グラフィカルユーザーインターフェース)アプリケーションに必要な技術を全て作り上げてきた。そして、両者が作り上げたものは同じではない。両者を統合するための技術的な違いを解決するには数年かかるだろう」(Perens)

というわけで、オープンソース陣営も一枚岩ではない。次世代の中核技術とみなされているだけに、覇権争いも激しいのだろう。

今後、既に実装が開始されているXAMLの仕様が大きく変わることはないだろうが、標準的な規格との互換性については考慮してもらいたいものだが、どうなることやら。

次回は、ちょっと寄り道して、GNOMEのGladeを先に調べようと思う。

トラックバック

このエントリーのトラックバックURL:
http://www.arclamp.jp/mt33/mt-tracback.cgi/1316

この一覧は、次のエントリーを参照しています: XMLを用いてUI定義しよう(5):XAML:

» TBテスト 送信元 Uの徒然日記
Uです。yusukeさんのところをTBしたのですが、 正しくTBできていないとのことなので、再度、 TBします。 XULとXAMLの違いにもふれています。 要チェックなブログです!... [詳しくはこちら]

コメント (6)

U:

Uと申します。

大変申し訳ございません。
利用させて頂いているライブドア社のブログで遅延があり、このような多重投稿となってしまいました。
まったく悪意のない投稿です。
すみませんが、お時間があればor気に入らなければ削除をお願いしたく思います。
ご迷惑をおかけしました…

U:

コメントの削除ありがとうございました。
以後気をつけます。
全然ついていけてないのですが、ブログ見つづけます。

yusukeです。Uさん、コメントありがとうございます。そちらのページにも書きましたが、変なトラバを残してしまったようなので、もう一度トラバください。すんません。

>全然ついていけてないのですが、ブログ見つづけます。
ありがとうございます。なんか、ここをもう少し詳しくとかあれば、言ってくださいね。少しでもお役に立て方がうれしいので。これからも、よろしくです。

U:

もう一度トラバとありますが、問題ないと解釈しているのですが…
わたしゃが間違っているのか?

とりあえず、もう一度トラバしてみます。
それと、勝手ながらわたしゃのブログにリンク貼りました。
知り合いにも見て欲しいので。

リンク拒否などであれば教えてください。
事後承諾ですみません。

yusuke:

arclamp.jpのyusukeです。
前のトラバは、[続きを読む]を押すと「ページが見つかりません」になっちゃてたので、今度のでOKですね。前のを消しておきました。リンクは、ご自由にどうぞ。

U:

yusukeさん。
トラバの件ありがとうございました。
確かにリンクされていませんでした。

リンクを貼る件ですが、ありがとうございます。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2004年05月23日 20:51に投稿されたエントリーのページです。

ひとつ前の投稿は「XMLを用いてUI定義しよう(4):XUL」です。

次の投稿は「失敗するという成功」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type