@Blue Ink: I can see the attraction of DSL's for your problem space, I have had to deal with similar instances where each new customer had their own hardware and we had to (in effect) create a bunch of regular expressions and classes that mapped to their hardware protocols. The problem you would have is that you would need to create a new DSL for each new customer, with no reuse, plus the headache of creating the DSL.

Maintenance is not really improved because a new developer on the system would now need to learn several languages anyway. In this type of environment DSL cause as many problems as they fix, so for me a DSL is truly useful only when is can be reused i.e. hardware manufacturers start using standards rather than their own user defined protocols. HTML is a good DSL to use as an example, as though there are subtleties that differ across browsers, for the most part it is a little bit more manageable than the hardware you are talking about.

@joechung:Yes my figures are a little bogus and more of a guesstimate. I was hoping someone from Microsoft would chime in and correct me  Wink

My calculation is based merely on speaking with people and determining whether they fall into the use case or not.