Thursday, January 26, 2006

Do you need a sexy DSM tool?

I got some feedback today from someone who had done some hands-on with MetaEdit+, his first comment was that he did not feel too good about the UI, it had a 90ies feel to him. His other comments were very positive though. Although we have seen a major improvement in the UI since the previous version I somehow understood what he meant. I took a look at Microsofts Visual Studio DSL tools tonight to get a feel for how a modeling environment can look when dressed to kill and oh boy..... the guys at MS certainly put in their best cosmetic skills in order to make me wet my pants.

For those interested, MS has an online lab where you can test the new DSL tools without having to install the monster, I hear it's about 900Mb and requires 3 machines ;) , so an online lab comes in handy. Try Googling for MSDN Virtual Labs and you'll likely find it. After some registrations and wrestling between Firefox and a dusty Internet Explorer I got access to the lab, wet my pants, and found my next barrier was my Finnish keyboard setting but luckily managed to solve this fairly soon.

After doing the excercise "Building a Domain-Specific Language Designer" (in English this means: Making a sexy looking DSL tool support a very simple DSL) I have to conclude that I can do the same exercise also with MetaEdit+ within one hour. I admit I do not get the sexy environment with its rounded, shaded toolbars but on the other hand with MetaEdit+ I do not have to import any pre-defined stuff, like ehr...the domain model (read: whole language definition) and its entire visual notation in order to be able to complete the exercise within one hour. A note to the people at the Microsoft DSL team: If you just import all this stuff...can you then still call it "Building a Domain-Specific Language Designer" as the exercise implies?? I think a title like "Opening a DSL project in Visual Studio Team System" would be more appropriate. The sexy environment hardly compensates for the fact that this takes an hour to do.

Monday, January 23, 2006

UML profiles vs. DSL

Some people when they see a DSL for the first time and code being generated from it they respond that they "can do the same with UML and profiles". OK maybe they do not generate all the code but they probably could if they would add action language and use OCL. People often miss the point when seeing a DSL, using concepts from the problem domain it covers directly as modeling concepts. Not only do DSLs use these domain-concepts, the language is also based on the unique rules that are valid in that domain instead of UML's rules that govern object oriented programming in general. The point here, is abstraction.

The level of abstraction on which you specify solutions is directly related to productivity, the higher you can raise it, the more productive you'll become. To those people that keep on hammering that they can do the same thing as a DSL with UML profiles I would ask: Why then is the OMG promoting DSL's based on MOF?

Friday, January 20, 2006

Back from OOP 2006

Just back from OOP in a snowy Munich. Like last year, the quality of the event clearly defines it as the leading European conference on software development in general. Attendance was great, people nice, you could really see people were enjoying it. A lot of big names among the speakers like Markus Völter, Scott Ambler, Juha-Pekka Tolvanen and Krzysztof Czarnecki. I did wonder about the people from Microsoft but I guess Jack Greenfield, Steve Cook and Alan Cameron Wills are too busy with getting version 1.0 of the DSL tools ready for release. Bummer guys, you missed an interesting event and great opportunity to provide some more info about the current state of affairs inside your labs.

It struck me that no one is really questioning the use of DSL's anymore - apart from the usual one guy who misses the point about abstraction and productivity and persistently claims he can do the same with UML + profiles, some manual coding and reverse engineering - and that is a good thing. I believe UML and DSL's are - unfairly - often compared against each other. While there are some cases where doing this makes sense I think the bigger picture should deal with the question of when it makes sense to use the first and when the latter. In the end, both groups of approaches benefit from promotiong modeling in general, something many analysts say still happens far too little.

One morning on my way to the conference I saw a guy from a large German automotive supplier (I saw his email signature in Outlook) switching to his IDE, starting to do some coding. What made me smile was that the majority of his work consisted of copy pasting stuff and making small adjustments. Maybe one day I will again stand in that same train on that same subway line and see the same guy working a lot faster in a DSM environment that not only raises the abstraction level he works on to that of the automotive concepts and rules of his company but that also automates the tedious task of copy pasting the same stuff over and over again.

The other good thing that struck me is that more and more people are aware of MetaEdit+, I guess our efforts in working with many editors of leading magazines are starting to pay off: Looking further into domain-specific modeling fairly quickly leads you to it. Especially companies looking for a graphical modeling front-end to configuring or developing their financial, logistical or what-have-you systems see the benefits of having a modeling language that actually describes their system and that follows the rules that are valid in their unique design area.

I suppose the high of the conference for me was Markus Völters' session on MDSD in which he ousted his opinion on MetaEdit+ being clearly the leading model-driven development tool with the potential of taking the entire market.


Like in real life, it makes sense to keep work and private life separated. Hence this blog that I dedicate to musing and mind-bending about software development, specifically the area of model-driven software development.