Domain Specific Languages

A domain-specific language (DSL) is a programming language designed to be useful for a specific set of tasks, in contrast to general-purpose programming languages. Wikipedia

A couple of weeks ago I had the oportunity of assist to an event here, in Madrid, about DSLs, with Beat Schwegler and Ingo Rammer. The sessions was pretty good as they, specially Beat, are great communicators and the subject is really interesting.

What I disliked a bit is the event title, something like "Software Factories", and some focus on the view of DSL as a tool for formal development -a software factory- against an agile development view. While I agree on the benefits -mainly productivity and homogeneity- of a DSL on an scenario in which the developers have less technical knowledge -and more specific knowledge- than the designers, I also believe that a DSL can be applied -and has been applied for years- in others scenarios less formal. 

I would liked some discussions on diferent opportunities and scenarios for DSLs. In a long project I was for a bank we developed a designer for VS for developing the presentation flow between windows, financial devices and host services. Reason? More than 1,000 flows. Seems easier now with VS 2005 Team System.

If interested in the topic, I like an old post from Martin Fowler, and also the Team System Development Center has focus on DSL Tools.