Monday, October 31, 2005
U-Languages or M-Languages?
This is a copy of a text previously posted Saturday, December 11, 2004 on my previous Blog.------------------------------
I cannot resist quoting Stefan Tilkov's blog : http://www.innoq.com/blog/st/:
" ... 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 eclipse.org than on an OMG standard nobody gives a fuck about. Care for another example? Take this."
So seems that the old debate on (Unique/Unified/Universal) languages or U-languages is starting again. After the failure of languages like PL/1 and ADA to name only two of them, it seems that what happened on the programming scene is on the verge of happening again on the modeling scene with UML 2.0. [By the way it is funny to notice how old ADA unconditional supporters are easily tempted to back UML 2.0. ]
The OMG camp has always been divided between the tenants of U-languages (UML) and the tenants of M-languages (Meta-Languages, e.g. MOF based). Until now, at the cost of constant compromises and aligments, these views have been cohabiting in the MDA approach.
But today, with the emergence of the very strong DSL trend in industry and research and the clear commitment of Microsoft "Software Factories" into the M-language camp, the cursor seems to move away from the UML 2.0 users and profilers.
This does not come as a surprise since it is only an aligment on what is already happening in the XML technical space. After all, the co-existence of the various XML schemas and DTDs is not apparently such a catastrophic move, at least from the point of view of the users.
Departing from the apparent comfort of huge, unprecise and difficult to specialize monolithic languages like UML 2.0, lead us to the apparent creative and productive environment of multiple coordinated languages. It is quite easy to see what could be achieved with the help of small, well focused and precise DSLs. However we have still many problems beyond of us to solve. The big challenge is how to cope with the fragmentation problem, i.e. the co-existence of hundreds or even thousands of these DSLs. For the time being we have only two ways of coping with this: the existence of a well founded M3-level metalanguage (i.e. the MOF) and the possible forthcoming QVT standard for model transformation language, in the case that this effort finally produces a satisfactory and realistic proposal in 2005 (still to be proved). However, even with a very precise metametamodel and a very well designed model transformation language, we we still have a long way to go before demonstrating the practicality of the approach.