Monday, April 10, 2006

MS NS-DSL

Just listened to the ArCAST 7 podcast with Steven, Martin Danner and Jack Greenfield. It sure is worth taking the first 12 minutes or so to listen to, before a bit of a sour Jack Greenfield comes in to start spoiling all the fun with awkward comparisons between monocycles and Ferrari's, axes and scalpels, wine and vinegar (that last one is kind of a meta one, describing the actual podcast). Possibly, the repetative slips in the DSL tool release schedule made Jack a bit edgy...

I do think I get his point though and again it comes down to the focus area of MS, which - all things considered - really is not so domain-specific: Enterprise applications (presumably based purely on dotNet). No wonder Jack does not believe in fully generating applications from models, something that - by the way - is being done already for over 12 years! Key to achieve it is to make the modeling language very domain-specific: I am talking company-specific-product-line-specific-kind-of-specific here: You need to be able to specify products completely and accurately with it. When you realize that some info is repetitive you can either encapsulate that in the generator or the framework code. Now then, if all the needed info is the models, then why Jack, would you not be able to generate the full application from them??

Jack further disagrees with Martin's claim that UML is an OO-specific modeling language (read: DSM focused on OO software development) and coins the term "General Purpose Language" that he suggests in "The Book" (He NEVER misses an opportunity to mention "The Book", you have got to give him that...). Come on Jack, can't you see that the example Martin provides is a rather excellent way for people to get the idea of "Domain-Specific"? Besides, may I suggest that the term you coin in "The Book" is not completely correct? Since we are busy anyway of making sure we do things entirely correct, a better description would be "General Purpose Modeling Language".

Then again, would you call a DSL to describe "web services" - an example I have seen in one of your slides at OOP - a DSL? I'd say it also qualifies as a rather general purpose modeling language or a Not-So-Domain-Specific-Language, a NS-DSL.

My take on the thing is that Jack seems to be missing the point and has recently started to focus on details in comparisons that no one really cares about. Before long people will get tired of hearing exactly how, where, when, why, what for, where not, and from what viewpoint SF differs from MDA and exactly how DSM differs from both SF and MDA, whether we should call DSM languages DSLs or Not-So-DSL or Not So General Purpose or whether we should call MDD MDA or SF or MDSD or DSM....yawn...as Markus Völter said on the recent OOP "Dass ist doch Alles Quatsch" and I fully agree with him.

Point is that we wish to use modeling to raise abstraction, make software development less complex, make it faster, make it more convenient more accurate and more reliable. MDA seems to miss a number of these goals, SF is still shrouded in mystery to many and DSM is clear on this: It achieves them all.

No comments: