Fronteiras para um DSL?
Nos ppts do nosso futuro Workshop sobre Produtividade existe uma figura que fala sobre os tipos de linguagens. Como oposição: Declarativa X Procedural e Textual X Pictórica.
Neste diagrama não existe um lugar específico para uma DSL (Linguagem de Domínio Específica).
Uma pergunta que me fizeram outro dia: Wizards são DSL’s?
Definições como estas são como fronteiras políticas – não há uma rigidez que nos proíba de irmos sempre um pouco mais longe.
Particularmente, não gosto de fronteiras rígidas. Não vejo porque recusar o argumento de quem diga que as telas de um ERP são um tipo de DSL para armazenamento de dados de negócio em certo formato (tabelas de um banco relacional). Neste sentido, um ERP é uma DSL apresentada em um workflow de janelas de entrada e outras.
No entanto, DSL’s são geralmente associadas à finalidade de modelagem.
Wizard’s, como o do GAT/GAX, usam metadados para gerar código. Metadados que refletem atributos de um modelo. Portanto, DSLs.
Linguagens como o diagrama de classes do UML, por sua vez, aceitam uma variabilidade muito maior, sendo mais fáceis de serem aceitos como uma verdadeira linguagem para o domínio de criação de classes para linguagens orientadas a objetos.
Definir fronteiras é sempre um exercício de interesse conceitual, mas nem sempre prático.