Livro bacana: Groovy for Domain Specific Languages

No final de 2010 o tema DSLs ganhou bastante popularidade com a publicação do livro “Domain Specific Languages” do Martin Fowler. Para quem não sabe o que são, trata-se de pequenas linguagens de programação voltadas para contextos bem específicos, como por exemplo definições de regras de negócio de uma empresa ou consulta e manipulação de bases de dados proprietárias. O principal objetivo por trás destas linguagens é transferir parte da responsabilidade da implementação das regras de negócio para o usuário final do sistema.

Apesar da popularização recente do termo, lidamos com DSL’s já há algumas décadas muitas vezes sem nos darmos conta disto.  Lembra dos scripts do mirc? No UNIX/Linux usamos algumas DSL’s também sem nos darmos conta, como por exemplo o awk e o grep.

Lembrando destes exemplos, você pode pensar que se trata de uma tarefa árdua. Ledo engano: linguagens como Groovy ou Lisp nos permitem implementar estas pequenas linguagens de uma forma bastante prática, realizando assim aquele nosso sonho nerd de escrever nossa própria linguagem de programação. :D

O livro “Groovy for Domain-Specific Languages”, de Fergal Dearle, publicado pela PACKT Publishing tem por objetivo abordar o tema usando a linguagem Groovy. Terminada a sua leitura, no entanto, a conclusão que cheguei foi a seguinte: como um livro sobre DSL’s em Groovy, é na realidade um excelente aprofundamento a alguns detalhes da linguagem.

Groovy nos oferece os seguintes recursos que facilitam a criação de DSLs:

  • O fato de podermos escrever nossos programas na forma de scripts
  • Closures
  • Builders
  • A opcionalidade de alguns elementos de sintaxe como parênteses e ponto e vírgula
  • MOP (Meta Object Protocol)
  • AST Transformations, que nos permitem alterar parte da sintaxe do Groovy (e que pode refletir na criação das DSLs).

Com excessão das transformações AST (falha grave), todos estes aspectos são tratados em detalhe no livro, o que o torna ideal para todos aqueles que trabalham com Groovy mas raras vezes tiveram a oportunidade de aprender de fato como funcionam.

O mais engraçado é que, terminada a leitura deste livro, percebo que o autor acidentalmente (acredito) obteve um resultado inesperado. Não é um livro voltado apenas para a criação de DSL’s: é uma excelente introdução para aqueles que quiserem aprender Groovy.

Sendo assim, como avaliação final deste livro, posso dizer que como uma abordagem às DSL’s, é um excelente guia para quem quiser aprender Groovy.

Fica a dica, e espero que gostem.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.