By Peter Bell

A Great Example of Creating a DSL

Markus Voelter just had a great paper published at InfoQ. In it he works up a DSL for describing the architecture of a distributed system. It's slightly different from the usual examples but shows exactly the power and value in developing a Ubiquitous Language that is sufficiently formal to be used to generate code.

DSLs - What Happens When Your Grammar/Meta model Changes?

As you start getting into using Domain Specific Languages, one of the biggest issues is how to handle legacy statements in your DSL as your grammar evolves . . .

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!

You Want the Benefits of Code Generation - but where to Start?

Code Generation, Software Product Lines, Domain Specific Languages - they really can have a huge impact on developer productivity, improving the speed of development, reducing the cost of maintenance and improving the overall quality of code. But how do you get started? . . .

[More]

Intentional Software Starts to Share

Apart from an OOPSLA presentation in 2006 and a Technology Review article earlier this year, there really hasn't been that much information coming out of Intentional - one of the most interesting developers of Language Workbench/Domain Specific Modeling tooling.

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 :->.

Digg this

Handling "Types" in DLSs

As I look at my meta-model, the concept of "types" of things (screens, properties, methods, validations, etc.) keeps on coming up . . .

[More]

The Problem With Domain Specific Modeling

Jos Warmer just made a comment that to me typifies the one problem with the otherwise promising field of Domain Specific Modeling:

"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?

BlogCFC was created by Raymond Camden. This blog is running version 5.005.