XAML pada dasarnya adalah subset dari XML. Salah satu manfaat utama mendasarkan XAML pada XML dikatakan bahwa ia dapat diurai dengan alat yang ada. Dan itu bisa, sebagian besar, meskipun nilai atribut (secara sintaksis non-sepele) akan tetap dalam bentuk teks dan membutuhkan penguraian lebih lanjut.
Ada dua alternatif utama untuk menggambarkan GUI dalam bahasa yang diturunkan XML. Salah satunya adalah melakukan apa yang WinForms lakukan, dan menggambarkannya dalam kode nyata. Ada banyak masalah dengan ini, meskipun tidak sepenuhnya bebas keuntungan ( pertanyaan untuk membandingkan XAML dengan pendekatan ini ). Alternatif utama lainnya adalah merancang sintaks yang benar - benar baru yang secara khusus dirancang untuk tugas yang dihadapi. Ini umumnya dikenal sebagai bahasa khusus domain .
Jadi, jika dipikir-pikir, dan sebagai pelajaran bagi generasi mendatang, apakah ide yang baik untuk mendasarkan XAML pada XML, atau akankah lebih baik sebagai bahasa khusus domain yang dirancang khusus? Jika kami merancang kerangka UI yang lebih baik, haruskah kita memilih XML atau DSL khusus?
Karena itu jauh lebih mudah untuk berpikir positif tentang status quo, terutama yang cukup disukai oleh masyarakat, saya akan memberikan beberapa contoh alasan mengapa membangun di atas XML mungkin dianggap kesalahan.
Mendasarkan sebuah bahasa dari XML memiliki satu hal untuk itu: jauh lebih mudah untuk mengurai (parser inti sudah tersedia), membutuhkan jauh lebih banyak pekerjaan desain, dan pengurai alternatif juga jauh lebih mudah untuk menulis untuk pengembang pihak ke-3.
Tetapi bahasa yang dihasilkan bisa tidak memuaskan dalam berbagai cara. Itu agak bertele-tele. Jika Anda mengubah jenis sesuatu, Anda perlu mengubahnya di tag penutup. Ini memiliki dukungan yang sangat buruk untuk komentar; tidak mungkin untuk berkomentar atribut. Ada batasan yang ditempatkan pada konten atribut oleh XML. Ekstensi markup harus dibangun "di atas" sintaks XML, tidak terintegrasi secara mendalam dan baik ke dalamnya. Dan, favorit pribadi saya, jika Anda menetapkan sesuatu melalui atribut, Anda menggunakan sintaks yang sama sekali berbeda daripada jika Anda menetapkan hal yang sama persis dengan properti konten.
Dikatakan juga bahwa karena semua orang tahu XML, XAML membutuhkan lebih sedikit pembelajaran. Sebenarnya ini adalah benar, tetapi mempelajari sintaksis adalah sebagian kecil dari waktu yang dihabiskan untuk belajar kerangka UI baru; konsep kerangka kerja itulah yang membuat kurva curam. Selain itu, kekhasan bahasa berbasis XML sebenarnya bisa menambah keranjang "kebutuhan belajar".
Apakah kerugian ini kalah berat karena kemudahan penguraian? Haruskah kerangka kerja keren berikutnya melanjutkan tradisi, atau menginvestasikan waktu untuk merancang DSL yang mengagumkan yang tidak dapat diuraikan oleh alat yang ada dan sintaks siapa yang perlu dipelajari oleh semua orang?
PS Tidak semua orang bingung XAML dan WPF , tetapi beberapa melakukannya. XAML adalah hal yang mirip XML. WPF adalah kerangka kerja dengan dukungan untuk binding, theming, akselerasi perangkat keras dan banyak hal keren lainnya.