Surely, by the time you read this you will have already read it. Last week, Microsoft released Visual Studio 2008 (codename Orcas).
But what has not been announced are the changes in DSL Tools for VS2008, mainly because there are not any new major features except some changes in the runtime, support for LINQ and lots of bug fixing. Anyway, if you are interested, Stuart Kent, Senior Program Manager with the Visual Studio Ecosystem team, summarizes them in a blog post, and most interesting, he also describes the roadmap for the next version of Visual Studio (codename Rosario).
I’m personally interested in DSL Tools mainly for two reasons. First, because last summer I finished my degree thesis about Model Driven Development, where I’ve been analyzing at length Domain-Specific Modeling and Model-Driven Architecture methodologies. Among other tools, I analyzed the DSL Tools that were part of the VS2005, and I found them one of the best and most advanced tools for designing domain specific graphical notations (as opposed to textual notations, which, depending on the domain problem, are better suited) and for generating code from models. The main problem I saw in this tool was the lack of support for UML and XMI. I’m not a big fan of UML, but I must recognize that, in some cases, a common modeling language helps a lot, specially to reduce the learning curve that it is inherent to all DSLs. I know that this statement sounds opposed to the main concept of DSL, so I will address you to the article “Unified or Domain-Specific Modeling languages?” (thanks Metacase for recovering this article), by S. Ambler, who explains this contradiction very well. Also, the lack of support to XMI limits the interoperability between tools, something I believe Microsoft is not worried at all. Despite of these problems (IMHO), I believe Microsoft has done a really bad job of publicizing this tool, which is one of the pillars of Microsoft’s Software Factories initiative.
By the way, if you are interested in MDD, I would recommend you openArchitectureWare, now part of the Eclipse GMT Project, which is using an hybrid model, since it uses both approaches (MDA and DSM), and it allows both graphical and textual notations. And it is FREE!!!. Just check the overview diagram, so you get an idea of which technologies supports.
The second reason why I’m interested in DSL Tools is because we have successfully applied some external and internal DSLs at work (see this post by M. Fowler to know the differences between external and internal DSL). For a long time, we have been using textual internal DSL’s (PL/I Macros) in order to improve the quality of the code and to abstract the developer of some complex parts of the system, and we are very satisfied with the results. And more recently, we have been using graphical external DSL’s to represent the models for the online transactions which runs on our main backend (a z/OS mainframe) and to generate code addressed specifically to an in-house runtime framework. Last year, when we submitted an RFP to renew our domain-specific tool set, we received several proposals from different vendors, and one of them came up with DSL Tools. We finally decided not to use this tool and, instead, use Eclipse and a modified version of the jBPM plugin. Anyway, as I told you before, I consider DSL Tools one of the most advanced tools for DSM, so, periodically, I try to learn which is the evolution of this tool. And just for your curiosity, here it is the DSL design for our main mainframe architecture using the DSL Tools Designer (yes, it’s a service orchestrator!):
And now to conclude, I am really interested in knowing if someone has a real experience using DSL’s. If this is your case, are you using VS DSL Tools? If not, which tools are you using?