Eu estava olhando a wikipedia - Categoria: Linguagens de Programação Baseadas em XML .
Por que alguém adotaria essa abordagem para criar um idioma?
Quais são as vantagens disso?
Só consigo pensar em desvantagens.
- difícil de manter
- difícil de ler
- difícil de escrever
programming-languages
language-design
xml
Moha, o todo-poderoso camelo
fonte
fonte
Respostas:
Uma das maiores vantagens de uma linguagem baseada em XML é que parece fácil implementar
Na verdade, existem vários analisadores de validação disponíveis que diagnosticam os erros de compilação relacionados à sintaxe e fornecem o AST gratuitamente
a execução também está simplesmente repetindo o referido AST e mantendo um mapa das funções e variáveis
fonte
Código é dados.
Ou melhor, programas são dados. Um arquivo de origem é apenas uma serialização específica deste programa. Essa idéia é, por exemplo, comum em linguagens homoicônicas como o Lisp. Essa linguagem derruba as barreiras entre o código do programa e os dados em que está operando. Isso pode ser extremamente poderoso e expressivo, embora eu não chamaria a aparência do código Lisp de "bonita" ou "fácil de ler".
XML é o formato estruturado de serialização de dados para o programador corporativo atual. Existem grandes cadeias de ferramentas estabelecidas em torno do processamento XML.
Curiosamente, os documentos XML às vezes são usados para modelar o código ... * shudder * (injeção de dependência). Atribuo isso à onipresença do XML em algumas cadeias de ferramentas / o XML do mindShare tem como um formato de dados estruturado.
fonte
rwx
scripts que tenho, que são dados para o meu editor, mas código executável para o meu shell.(eval `(foo (quote ,data)))
. Seu argumento sobre parâmetros versus escape pode estar certo, mas você não entendeu.Vou me concentrar em XSLT em vez de linguagens baseadas em XML em geral.
Há uma história aqui, é claro. O XSLT foi concebido como sucessor do DSSSL, a linguagem de estilo do SGML, e tentou acertar o que o DSSSL havia errado. Um dos principais problemas com o DSSSL foi percebido como sendo sua sintaxe (semelhante ao esquema), e havia uma sensação generalizada de que a solução residia no uso da mesma sintaxe para a folha de estilo e os dados; afinal de contas, a idéia era que uma folha de estilo deveria consistir em grande parte de dados estruturados, em vez de lógica de programa, e muitos desses dados consistiriam em dados proforma ("modelo") para adicionar à árvore de resultados, com alguma parametrização.
O XSLT é frequentemente percebido como excessivamente detalhado. Para o XSLT 1.0, que infelizmente muitas pessoas ainda estão usando, isso provavelmente é verdade, mas o problema foi amplamente resolvido com o XSLT 2.0, que geralmente é muito mais conciso do que outras maneiras de resolver o mesmo problema.
Certamente existem desvantagens. Você é muito obrigado a usar um editor projetado especificamente (mas a maioria dos programadores usa editores direcionados à sintaxe para todos os idiomas, não é?). A linguagem não é tão compositável quanto pode ser (embora, novamente, o XSLT 2.0 conserte isso em grande parte). Mas também há vantagens significativas:
O XSLT é amplamente usado por não programadores e, para eles, é uma vantagem que eles só precisam aprender uma sintaxe, não duas. Lembre-se, são todos os pequenos detalhes, como lidar com a codificação de caracteres e o escape de caracteres especiais.
A capacidade de processar código XSLT usando XSLT é muito mais útil do que você imagina. Quase todos os grandes projetos XSLT aproveitam esse recurso e podem trazer benefícios muito grandes. Por exemplo, vi um sistema bancário on-line que tinha algumas centenas de formulários em sua interface do usuário, cada um gerado por sua própria folha de estilo, mas as folhas de estilo foram geradas a partir de uma biblioteca comum de código, proporcionando excelente reutilização e consistência na aparência.
Há um benefício que eu não esperava, que é o uso de uma estrutura sintática restrita como XML, que força os designers de linguagem a manter um nível de consistência lexical à medida que a linguagem evolui e, ao mesmo tempo, oferece grande extensibilidade. O XQuery WG está sempre debatendo sobre como estender o idioma sem quebrar a compatibilidade ou introduzir peculiaridades; O XSLT não tem esses problemas, porque é basicamente uma questão de definir novos elementos e atributos.
fonte
Eu pude ver algo assim sendo útil em um ambiente pesado para XML (pense em XSLT), onde você presumivelmente já possui editores XML decentes e pode ser útil poder gerar código usando o mesmo conjunto de ferramentas. Também pode facilitar a gravação de verificadores de correção ou outras ferramentas para garantir que o código siga certos padrões ou regras (por exemplo, um esquema define para onde a lógica de negócios deve ser executada e / ou garante que todas as variáveis sejam inicializadas de maneira consistente )
fonte
XSLT é a única linguagem de programação XML que eu usei, não tive a chance / oportunidade de entrar nos outros.
temos um aplicativo principal que dispara um arquivo XML para um banco de dados e vários outros aplicativos podem pegar esse arquivo e aplicar um arquivo XSLT a ele para extrair os dados que esses aplicativos precisam, o que alivia a necessidade de exportar um novo conjunto de Dados para cada novo aplicativo que aparecer. Eu acho que é uma grande vantagem. você só precisa codificar um arquivo XSLT para o novo aplicativo decodificar as informações que já estão sendo produzidas, em vez de precisar produzir novas informações para um novo aplicativo.
Percebo que não toquei em nenhum dos outros idiomas que você listou, mas lhe dei uma idéia de um bom local para o uso desse idioma. ainda não tenho certeza se respondi completamente ou mesmo parcialmente à sua pergunta. mas espero ter dado algumas dicas.
fonte
XML quase não faz sentido ausente do contexto histórico e político. A SGML era ainda mais difícil de escrever, ler e manter, mas tinha o selo de aprovação ISO colocado em 1986, o que a tornou talvez a primeira linguagem de declaração de dados a ter esse tipo de imprimatur.
Foi suficientemente útil e documentado para inspirar Tim Berners-Lee a usá-lo como base do HTML no início dos anos 90. Lembre-se, ele pretendia criar uma rede mundial de computadores e, basear-se em um padrão ISO existente, ajudaria ainda mais isso.
Então, no final dos anos 90, com a Web bastante bem consolidada, o World Wide Web Consortium iniciou uma iniciativa de marcação estrutural padrão para intercâmbio de dados. O fator de hype em torno do XML atingiu níveis sem precedentes de "não temos certeza do que fazer com isso, mas aposto que será muito legal".
Tal como está, para o que o XML é bom principalmente é o intercâmbio estruturado de dados entre sistemas diferentes. Como amon observou, existem alguns domínios específicos nos quais ele tem utilidade mais ampla. Estou feliz que agora é possível codificar grafite em uma marcação padronizada para que, no futuro, as crianças não tenham que arriscar a vida e a ação judicial, mas sim fazer a marcação com drones controlados remotamente com tinta.
fonte