This is a single archived entry from Stefan Tilkov’s blog. For more up-to-date content, check out my author page at INNOQ, which has more information about me and also contains a list of published talks, podcasts, and articles. Or you can check out the full archive.

Domain Specific Languages

Stefan Tilkov,

Microsoft has released the Microsoft Tools for Domain Specific Languages Technology Preview, a graphical designer for Visual Studio that enables its users to build modelers for custom meta-models. The terminology used by MS seems strange to me; it somehow feels like they try to avoid calling it meta-modeling just to differ from the OMG approach. To me, domain specific languages (DSLs) pretty much equal (textual) programming languages — although you can call a meta-model a language, it seems a little strange to me. Whatever.

I believe that meta-modeling (or DSLs if you prefer) are definitely the way to go. In the same way that there is no single software (or system, or service) architecture that will be a good match for every situation, there will be no single modeling language that is a good fit for every need. If you’ve read stuff I wrote before, you’ll know that I believe that this is more than just an analogy; in fact I believe that your modeling language needs to match your architecture. And while with the current crop of CASE tools, UML’s profiling mechanism (stereotypes and tagged values) are a pragmatic approach — and one that we at innoQ are applying ourselves rather successfully —, it’s obviously not something that one would do if there were better options and tools. (As an aside, I strongly believe that all CASE tools suck. I would be happy to be proven wrong.)

Once upon a time, I used to believe the OMG shared the vision of modeling based on custom meta-models — after all, what MS now claims as its innovation is something that is very much aligned with the original MOF concept. Sadly, though, with OMG’s ridiculous monster of a modeling language that aims to be everything to everybody, this seems to be no longer the case. (If anybody needs proof that Tim Bray is right in asserting that standards bodies should never invent anything, and is tired of using another well-known monster to do so, UML 2 would be a great candidate.)

So in the end, it seems to come down to MOF in its sort-of-working semi-compatible non-standardized incarnation (EMF), embedded into Eclipse, vs. Microsoft’s proprietary DSL stuff, embedded into Visual Studio. And the strangest thing is: I’d rather place a bet on something that is backed by than on an OMG standard nobody gives a fuck about. Care for another example? Take this.

On January 5, 2005 4:24 PM, Paul Ballard said:

You may be interested in participating in an open debate that we are running on Software Factories vs. MDA. You can view the debate at

Thanks, Paul Ballard

On April 20, 2005 4:19 PM, Alan Cameron Wills said:

I guess we called them domain-specific “languages” because “language” to us means a collection of symbols and rules for sticking them together so as to convey meaning; it doesn’t matter whether it’s pictures or text or sounds or gestures or relations in a database or whatever. Meanwhile, “modeling” doesn’t cover just things that are made with pictures: people in this business have been talking about modeling since it was done in wacky specification languages like VDM and Z, which were long before there were pictures. And more widely, when scientists or mathematicians talk about a model, they mean a set of statements (in any language) that you can draw inferences from. For me, that’s the important thing about a model; and a modeling language is any language that helps you do that.