A Great Example of Creating a DSL
I'm actually presenting a paper at the DSM Workshop at OOPSLA on our approach to solving the problem (categorizing different types of grammar transformations to allow for the automatic transformation of statements within the language). However, I just saw a really nice posting on how MetaEdit+ handles this. Well worth checking out the video to get an idea of how powerful the system is. Very cool stuff!
Today, Magnus Christerson their VP of Marketing/Product Management blogged about some of their new press coverage.
The first piece isn't very informative, but the second provides an overview of how Intentional is positioning the software and a release date of "this fall".
Whether or not you plan to use the Intentional platform, a very smart team has been working on this for a long time and there are going to be plenty of lessons to be learned - hopefully from the marketing as well as the underlying technology.
Of course, if you can't wait, Intentional aren't the only game in town :->.
"Building a language us easy. Building tool support is hard."
In my experience, this is the opposite of the experience when you try to create a Software Product Line. I wrote a generalized tool for consuming an abstract grammar and generating a databased concrete syntax for storing, accessing and generating code from it in a weekend. My template based meta-generator is under 1000 lines of very simple code and was written in a long afternoon.
However, writing languages to define web applications flexibly, easily and comprehensibly - I've been working on that for five years and I still feel like I'm not done. Writing DSLs is like writing poetry. It is easy to do badly and extremely difficult to do well. Nothing against great tools like MetaCase+ and Microsoft DSL Tools which definitely have a use case and are probably easier to use than Eclipse GMF, but it is like giving a poet a copy of Microsoft Word and a thesaurus. It removes the accidental difficulties but still leaves the huge essential difficulty of composing a perfectly formed composition.
Thoughts?