What is a Domain Specific Language?
At JAOO I had a number of interesting discussion with various folks involved in DSLs (Simonyi, Fowler, Czarnecki) and as consequence I refined my definition of what a DSL is. I remove the terms "abstract" and "business". Here's my new try:
A DSL is a concise, precise and processable description of a viewpoint, concern or aspect of a system, given in a notation that suits the people who specify that particular viewpoint, concern or aspect.Of course there are still the usual points you can make about a DSL: textual vs. graphical vs. whatever, DSL vs. readable API, internal vs. external and interpretation vs. generation.
I think, however, that the definition above captures the essence.
Opinions?