Martin Fowler, chief scientist at ThoughtWorks, is also a widely
respected author in the software development world, having
written books on topics ranging from object-oriented design to
patterns to agile development. His latest book, Domain-Specific
Languages, written with ThoughtWorks CTO Rebecca Parsons,
promises to aid developers in deciding when and where to best
use a DSL, and how to go about building one. Fowler and Parsons
recently spoke with Dr. Dobb's editor in chief Jon Erickson the
nature of DSLs. Dr. Dobb's: What exactly is a DSL? Fowler: The
definition in the book is “a computer programming language of
limited expressiveness focused on a particular domain.” Parsons:
There are two key characteristics for a DSL. First, there should
be an identifiable domain, whether it be a business domain, like
lease accounting, a scientific domain, like rational drug
design, or a technical domain, like persistence. The second is
the language must be small. We don’t want these languages to
grow into Turing-comple