My last five conferences had been in San Francisco, so the howling winds and buckets of rain which destroyed my umbrella did not put me in the best, or driest of moods. However, i had registered for DSL with Martin Fowler, Neal Ford and Rebecca Parsons, so i held hope. They did not disappoint, presenting a work in progress for a new book that covered Internal, External and Language Workbench definitions of DSL.
While DSL have been around for many years, this attempt at clarification, was clear and well thought out. The definition :
- computer program
- language like in its nature
- limited expressiveness
- domain focused.
The easiest entry point seemed to be Internal DSL (those created within your current language of choice, or by investigating and branching out into other complementary languages External DSL’s, i.e Groovy or JRuby to complement Java. A potentially more difficult External DSL’s route was to write your own DSL, this offering great power and control, but potential high-complexity as these are home spun definitions, lexers and parsers and this will be alien to many. Finally of great interest were Languages Workbenches, which in the case of Jetbrains MPS is a multitude of DSL’s that go together to form the MPS tool for creating DSL’s. This and other similar work has the potential to change the way we work, some are near to production quality, so we will see.
My take out was that the use of DSL’s needs to get more prominence, in a similar way to Agile development; which has taken years to gain main stream prominence. Through the use of DSL’s developers will gain skills and solve problems in a more elegant fashion, so it’s a definite win and with a Martin Fowler book on the subject it should get wider prominence.
(Written on my N810, so excuse grammar and spelling)