XAML es esencialmente un subconjunto de XML. Se dice que uno de los principales beneficios de basar XAML en XML es que se puede analizar con las herramientas existentes. Y puede, en gran medida, aunque los valores de los atributos (sintácticamente no triviales) permanecerán en forma de texto y requerirán un análisis más detallado.
Hay dos alternativas principales para describir una GUI en un lenguaje derivado de XML. Una es hacer lo que hizo WinForms y describirlo en código real. Existen numerosos problemas con esto, aunque no es completamente libre de ventajas (una pregunta para comparar XAML con este enfoque ). La otra alternativa importante es diseñar una sintaxis completamente nueva diseñada específicamente para la tarea en cuestión. Esto se conoce generalmente como un lenguaje de dominio específico .
Entonces, en retrospectiva, y como una lección para las generaciones futuras, ¿fue una buena idea basar XAML en XML, o hubiera sido mejor como un lenguaje específico de dominio diseñado a medida? Si estuviéramos diseñando un marco de interfaz de usuario aún mejor, ¿deberíamos elegir XML o un DSL personalizado?
Dado que es mucho más fácil pensar positivamente sobre el status quo, especialmente uno que le gusta bastante a la comunidad, daré algunos ejemplos de razones por las cuales construir sobre XML podría considerarse un error.
Basar un lenguaje en XML tiene algo que hacer: es mucho más fácil de analizar (el analizador principal ya está disponible), requiere mucho, mucho menos trabajo de diseño, y los analizadores alternativos también son mucho más fáciles de escribir para desarrolladores de terceros.
Pero el lenguaje resultante puede ser insatisfactorio de varias maneras. Es más bien detallado. Si cambia el tipo de algo, debe cambiarlo en la etiqueta de cierre. Tiene muy poco apoyo para comentarios; Es imposible comentar un atributo. Existen limitaciones en el contenido de los atributos por XML. Las extensiones de marcado deben construirse "encima" de la sintaxis XML, no integrarse de manera profunda y agradable en ella. Y, mi favorito personal, si configura algo a través de un atributo, usa una sintaxis completamente diferente que si configura exactamente lo mismo que una propiedad de contenido.
También se dice que dado que todos conocen XML, XAML requiere menos aprendizaje. Estrictamente hablando, esto es cierto, pero aprender la sintaxis es una pequeña fracción del tiempo dedicado a aprender un nuevo marco de interfaz de usuario; Son los conceptos del marco los que hacen que la curva sea empinada. Además, las idiosincrasias de un lenguaje basado en XML podrían agregarse a la cesta de "necesidades de aprendizaje".
¿Son estas desventajas compensadas por la facilidad de análisis? ¿Debería el próximo marco genial continuar con la tradición, o invertir el tiempo para diseñar un DSL increíble que las herramientas existentes no puedan analizar y cuya sintaxis deba ser aprendida por todos?
PD: No todos confunden XAML y WPF , pero algunos sí. XAML es una cosa similar a XML. WPF es el marco con soporte para enlaces, temas, aceleración de hardware y muchas otras cosas interesantes.
fuente
Respuestas:
La única razón convincente para usar XML es establecer un estándar de datos abierto. XAML es el mismo lenguaje de visualización utilizado en Silverlight y WPF; cualquier proveedor puede usar el mismo estándar de marcado para crear una definición de pantalla para su propia plataforma, y puede reutilizarse en Silverlight o WPF.
En la industria aeroespacial, tenemos salas de control que, gracias a los avances de la tecnología informática, ahora son razonablemente flexibles. En el pasado, todo el hardware era personalizado, único y muy costoso; hoy todo funciona con PC de bajo costo, comúnmente disponibles y disponibles en el mercado. Esto reduce en gran medida el bloqueo del proveedor. Sin embargo, los widgets de visualización todavía se escriben usando ActiveX, porque así es como siempre se ha hecho.
ActiveX requiere acceso a las herramientas de Microsoft que, bueno, son obsoletas. Por lo tanto, la Fuerza Aérea y el Grupo de Instrumentación Inter-Rango están creando un Lenguaje de Marcado de Visualización de Datos, que está basado en XML. Esto permitirá a los profesionales diseñar pantallas usando marcado XML, en el editor de su elección. ¿Suena familiar?
Nadie argumenta que XML no está exento de fallas. Pero es lo mejor disponible para lo que fue diseñado para hacer, hasta que aparezca algo mejor.
Vea también por
qué XML no es malo
fuente
Sus objeciones a XML no tienen nada que ver con usarlo como lenguaje de descripción de GUI; todas son quejas sobre trabajar con sintaxis XML que se aplican por igual a cualquier forma de XML.
Parece que simplemente no te gusta XML.
Tienes razón, puede que no sea la opción óptima para editar a mano, pero para un lenguaje de descripción de GUI haría algunos contraargumentos:
(En mi humilde opinión), las GUI son gráficas y deben presentarse gráficamente. El formato de archivo no es realmente tan importante, porque realmente no deberías editarlo a mano. (Basado en texto es bueno por el bien del control de código fuente, pero la verbosidad no es un problema).
Además del analizador disponible, XML también es fácil de validar: puede escribir un DTD o un Esquema XML y luego usar herramientas genéricas para decirle si su archivo es legal. Esto será muy útil para un lenguaje de descripción GUI. Hacer lo mismo en JSON o YAML no es tan sencillo.
Si no está contento con escribir XAML directamente, no hay nada que le impida desarrollar un nuevo formato y luego compilarlo en XAML. Por ejemplo, podría crear una asignación directa de JSON a XAML, para que pueda tener la sintaxis más clara de JSON (y la capacidad de comentar los atributos), y luego generar el XAML cuando construya su aplicación. La gente rara vez escribe HTML directamente, pero HTML sigue siendo un gran formato.
fuente
Esta pregunta es subjetiva, por lo que creo que es justo publicar una respuesta que se base en mi preferencia personal.
XML es difícil de leer. Por ejemplo, abra este enlace y haga clic en "Muestra" para comparar XML y YAML lado a lado. Este último es claramente mucho más legible para los humanos.
Si desea utilizar XML para describir una GUI, es mejor que se asegure de proporcionar herramientas suficientes para que los humanos no tengan que mirar el XML.
Claramente XPF ha fallado en ese sentido.
fuente