XAMLは基本的にXMLのサブセットです。XMLに基づいたXAMLの主な利点の1つは、既存のツールで解析できることです。また、(構文的には重要ではない)属性値はテキスト形式のままであり、さらに解析する必要がありますが、かなりの程度まで可能です。
XML派生言語でGUIを記述するための2つの主要な代替手段があります。1つは、WinFormsが行ったことを実行し、それを実際のコードで記述することです。これには多くの問題がありますが、完全にアドバンテージがないわけではありません(このアプローチとXAMLを比較する質問)。他の主要な代替手段は、手元のタスクに合わせて特別に調整された完全に新しい構文を設計することです。これは、一般的にドメイン固有の言語として知られています。
それで、後知恵で、そして将来の世代への教訓として、XAMLをXMLに基づいたものにするのは良い考えでしたか、それともカスタム設計のドメイン固有言語としてより良いものでしたか?さらに優れたUIフレームワークを設計している場合、XMLまたはカスタムDSLを選択する必要がありますか?
それは現状維持、かなりのコミュニティに好かれ、特に1について積極的に考えるのは非常に簡単ですので、私はXMLの上に構築する理由の理由は、いくつかの例をあげるかもしれない間違いと見なされます。
XMLを基に言語を作成することには1つのことがあります:解析がはるかに簡単(コアパーサーが既に利用可能)であり、設計作業がはるかに少なくてすみます。
しかし、結果として生じる言語は、さまざまな点で不満になる可能性があります。かなり冗長です。何かのタイプを変更する場合は、終了タグで変更する必要があります。コメントに対するサポートは非常に貧弱です。属性をコメント化することはできません。XMLによる属性のコンテンツには制限があります。マークアップ拡張機能は、XML構文の「最上部」に構築する必要があり、XML構文に深く、うまく統合されていません。そして、私の個人的なお気に入りは、属性を介して何かを設定する場合、コンテンツプロパティとまったく同じものを設定する場合とはまったく異なる構文を使用することです。
また、誰もがXMLを知っているため、XAMLの学習はそれほど必要ではないと言われています。厳密に言えばこれは事実ですが、構文の学習は、新しいUIフレームワークの学習に費やす時間のほんの一部です。曲線を急にするのはフレームワークの概念です。その上、XMLベースの言語の特異性は、実際に「学習が必要」なバスケットに追加される可能性があります。
これらの不利な点は、解析の容易さによって重くされていますか?次のクールなフレームワークは伝統を続けるべきでしょうか、それとも既存のツールでは解析できず、誰もが構文を学ぶ必要のある素晴らしいDSLを設計するために時間を投資すべきでしょうか?
PS誰もがXAMLとWPFを混同しているわけではありませんが、一部は混同しています。XAMLはXMLのようなものです。WPFは、バインディング、テーマ設定、ハードウェアアクセラレーション、その他多くの優れた機能をサポートするフレームワークです。