Estaba mirando wikipedia - Categoría: lenguajes de programación basados en XML .
¿Por qué alguien tomaría este enfoque para diseñar un lenguaje?
¿Cuáles son las ventajas de esto?
Solo puedo pensar en desventajas.
- difícil de mantener
- difícil de leer
- difícil de escribir
programming-languages
language-design
xml
Moha el todopoderoso camello
fuente
fuente
Respuestas:
Una de las mayores ventajas de un lenguaje basado en XML es que parece fácil de implementar
en realidad no, hay un montón de analizadores de validación disponibles que diagnosticarán los errores de compilación relacionados con la sintaxis y le proporcionarán el AST de forma gratuita
la ejecución también es simplemente iterar sobre dicho AST y mantener un mapa de las funciones y variables
fuente
El código es datos.
O más bien, los programas son datos. Un archivo fuente es solo una serialización específica de este programa. Esta idea es, por ejemplo, común en lenguajes homoicónicos como Lisp. Tal lenguaje derriba las barreras entre el código del programa y los datos en los que está operando. Esto puede ser extremadamente poderoso y expresivo, aunque no llamaría a la apariencia del código Lisp "hermosa" o "fácil de leer".
XML es el formato de serialización de datos estructurados para el programador empresarial actual. Existen grandes cadenas de herramientas establecidas alrededor del procesamiento XML.
Curiosamente, los documentos XML a veces se utilizan para crear plantillas de código ... * shudder * (inyección de dependencia). Atribuyo esto a la ubicuidad de XML en algunas cadenas de herramientas / el mindhare XML tiene como formato de datos estructurados.
fuente
rwx
scripts que tengo, que son datos para mi editor, pero código ejecutable para mi shell.(eval `(foo (quote ,data)))
. Su argumento sobre los parámetros frente a escapar puede ser correcto, pero se perdió el punto.Me concentraré en XSLT en lugar de lenguajes basados en XML en general.
Hay una historia aquí, por supuesto. XSLT fue concebido como un sucesor de DSSSL, el lenguaje de estilo para SGML, y trató de corregir lo que DSSSL había hecho mal. Uno de los principales problemas con DSSSL se percibía como su sintaxis (tipo Esquema), y había una sensación generalizada de que la solución estaba en usar la misma sintaxis para la hoja de estilo y los datos; después de todo, la idea era que una hoja de estilo debería consistir principalmente en datos estructurados en lugar de lógica de programa, y gran parte de esos datos consistirían en datos proforma ("plantilla") para agregar al árbol de resultados, con alguna parametrización.
XSLT a menudo se percibe como excesivamente detallado. Para XSLT 1.0, que desafortunadamente muchas personas todavía usan, probablemente sea cierto, pero el problema se resolvió en gran medida con XSLT 2.0, que a menudo es mucho más conciso que otras formas de resolver el mismo problema.
Ciertamente hay inconvenientes. Estás bastante obligado a usar un editor diseñado específicamente (pero, entonces, la mayoría de los programadores usan editores dirigidos por sintaxis para cada idioma, ¿no es así?). El lenguaje no es tan fácil de componer como podría ser (aunque de nuevo, XSLT 2.0 lo corrige en gran medida). Pero también hay ventajas significativas:
XSLT es ampliamente utilizado por no programadores, y para ellos es una gran ventaja que solo tengan que aprender una sintaxis, no dos. Recuerde, se trata de todos los pequeños detalles, como cómo manejar la codificación de caracteres y el escape de caracteres especiales.
La capacidad de procesar código XSLT usando XSLT es mucho más útil de lo que puedas imaginar. Casi todos los grandes proyectos XSLT aprovechan esta capacidad y pueden aportar grandes beneficios. Por ejemplo, vi un sistema de banca en línea que tenía un par de cientos de formas en su interfaz de usuario, cada una generada por su propia hoja de estilo, pero las hojas de estilo se generaron a partir de una biblioteca de código común que proporciona una gran reutilización y consistencia de apariencia.
Hay un beneficio que no hubiera esperado, y es que el uso de un marco sintáctico restringido como XML obliga a los diseñadores del lenguaje a mantener un nivel de consistencia léxica a medida que el lenguaje evoluciona y al mismo tiempo proporciona una gran extensibilidad. XQuery WG siempre está debatiendo cómo extender el lenguaje sin romper la compatibilidad o introducir peculiaridades; XSLT no tiene tales problemas, porque se trata básicamente de definir nuevos elementos y atributos.
fuente
Podría ver que algo así es útil en un entorno con gran cantidad de XML (piense en XSLT), donde presumiblemente ya tiene editores XML decentes y podría ser útil poder generar código usando el mismo conjunto de herramientas. También podría facilitar la escritura de verificadores de corrección u otras herramientas para garantizar que el código siga ciertos estándares o reglas (por ejemplo, un esquema define hacia dónde debe ir la lógica de negocios y / o asegura que todas las variables se inicialicen de manera consistente )
fuente
XSLT es el único lenguaje de programación XML que he usado, no he tenido la oportunidad de entrar en los demás.
tenemos una aplicación principal que dispara un archivo XML a una base de datos, y varias otras aplicaciones pueden tomar ese archivo y aplicarle un archivo XSLT para extraer los datos que esas otras aplicaciones necesitan, esto alivia la necesidad de exportar un nuevo conjunto de Datos para cada nueva aplicación que viene. Creo que es una gran ventaja. solo tiene que codificar un archivo XSLT para la nueva aplicación para decodificar la información que ya se está produciendo en lugar de tener que producir nueva información para una nueva aplicación.
Me doy cuenta de que no he tocado ninguno de los otros idiomas que ha enumerado, pero le he dado una idea de un buen lugar para el uso de dicho idioma. Todavía no estoy seguro de si respondí completamente o incluso parcialmente a su pregunta. pero espero haber dado alguna idea.
fuente
XML casi no tiene sentido en ausencia de contexto histórico y político. SGML fue aún más difícil de escribir, leer y mantener, pero tenía el sello de aprobación ISO puesto en 1986, lo que lo convirtió quizás en el primer lenguaje de declaración de datos en tener tal impronta.
Fue lo suficientemente útil y documentado para inspirar a Tim Berners-Lee a usarlo como la base del HTML a principios de los años noventa. Recuerde, tenía la intención de crear una red mundial y basarla en un estándar ISO existente ayudaría aún más.
Luego, a fines de la década de 1990, con la web bastante bien arraigada, el Consorcio World Wide Web comenzó una iniciativa para el marcado estructural estándar para el intercambio de datos. El factor de exageración que rodea al XML alcanzó niveles sin precedentes de "no estamos seguros de qué hacer con esto, pero apuesto a que será realmente genial".
Tal como está, para lo que XML es principalmente bueno es para el intercambio estructurado de datos entre sistemas dispares. Como ha señalado amon, hay algunos dominios específicos donde tiene una utilidad más amplia. Me alegra que ahora sea posible codificar graffiti en un marcado estandarizado para que, en el futuro, los niños no tengan que arriesgar la vida y el enjuiciamiento, sino que etiqueten con drones controlados por pintura con control remoto.
fuente