Building modern DSLs in Groovy by Cédric Champeau
Apache Groovy has been a language of great interest to build internal domain specific languages (DSLs) for years now. But what will an "idiomatic Groovy DSL" in 2016? In particular, what makes Apache Groovy a language of choice to implement a DSL on the JVM? If you were to write a DSL today, what would you use? Runtime metaprogramming? Builders? Static compilation? Type checking extensions? The advent of new Groovy based technologies like Gradle, Spock, Grails or Ratpack have initiated a whole new way of providing DSLs, making them very different from what you could do 10 years ago. In this talk, we will illustrate what we think is a modern DSL written in Groovy, syntactically speaking, but also implementation wise. How you can improve the syntax of your DSL, its performance, or user experience (IDE support, error reporting, ...).