@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 ![]()
My calculation is based merely on speaking with people and determining whether they fall into the use case or not.