Mac asked me to respond to Booch’s doubts about DSLs in his blog. This is at least the second time Booch expressed his skepticism about DSLs, having also done so back in May. The upshot of Booch’s argument is that the semantics across all stakeholder viewpoints must be common.
“There is no doubt that different domains and different stakeholders are best served by visualizations that best speak their language…but there is tremendous value in having a common underlying semantic model for all such stakeholders. Additionally, the UML standard permits different visualizations, so if one follows the path of pure DSLs, you essentially end up having to recreate the UML itself again, which seems a bit silly given the tens of thousand of person-hours already invested in creating the UML as an open, public standard.” (Grady Booch, Expansion of the UML, May 21st 2004)
“[W]hile I agree that development is a team sport and that multiple stakeholders must collaborate in weaving together their diverse, interdependent views, one still needs to have a common semantic basis for all those languages. If you accept that not unreasonable position, you will end up covering the identical semantic ground as has the UML – albeit in an open manner, quite unlike Microsoft’s historical record.” (Grady Booch, Domain-specific Languages, Oct 25th, 2004)
Stuart responded to this argument back in May:
“[Booch] seems to imply that a domain specific-language is just about having a different graphical notation – that the semantics that underpin different DSLs is in fact the same – only the notation changes…[W]hat if the semantic model excludes the concepts that the stakeholders actually want to express?…Surprise, surprise, there are differences from one domain to another, from one organization to another. Far from there being a common semantics, there are significant and actual differences between the interpretations of models being taken.” (Stuart Kent, Domain Specific Modelling. Is UML really the best tool for the job?, May 26th, 2004)
In other words, Booch’s argument against DSL’s falls apart if we don’t have common semantics across all phases of the system’s lifecycle. And frankly, we don’t. Furthermore, Booch offers no explanation as to why you need a common semantic model across all the stakeholders, instead choosing to call it a “not unreasonable position”. Sorry, but I’m not ready to accept the need for a common semantic model as an axiom. I will accept that you need traceability between viewpoints, but I think that is more readily achievable by precise transformations between viewpoints than by a common semantic model of all stakeholder viewpoints.
Common semantic model starts to sound too much like “monolith” as far as I’m concerned. UML 2 addresses a subset of the stakeholder’s viewpoints and many people consider it unusable. After last year’s OOPSLA, Fowler commented “Even on the MDA panel at OOPSLA, the pro-MDA speakers based their assumptions on the fact that they would be using a simplified subset of UML”. If we can’t get a single usable semantic model across UML 2, how are we going to have a single usable semantic model across all the stakeholder viewpoints? Booch paints a pretty rosy picture of UML , but I think the reality of UML is much less attractive, certainly according to the customers I’ve spoken to.