November 11, 2008 oslo

Designing a language is hard; implementing it shouldn’t be

Frans Bouma has an interesting point: Designing a language is hard, and M won’t change that. And he’s right.

For many domains, a DSL can make expressing what’s important easier so that the developers using the DSLs can communicate between themselves and to a computer with fewer lines of code, making it easier to read, check and maintain. Many (arguably most) domains live without a DSL, instead encoding design decisions into general purpose languages, adding unnecessary ceremony to the essence of what’s being decided, thereby obscuring it.

Does M making designing a language easier? No. It’s still hard to design the syntax of a language. Does the M family of languages and the associated tools make it possible for more developers to add DSLs to their domains, letting them concentrate on the essence their language and reducing the Weird Science-like ceremony to bring it to life? We hope so. You’ll have to let us know.

November 11, 2008 oslo

More Oslo Reactions: What “Oslo” is and is not

Lars Corneliussen (not the wonderful Lars that did a cameo at the Repository & Schemas PDC talk about 8 minutes in) did a nice overview of Oslo. It's amazing to me how well the vision and details of the platform came through at the PDC. General-purpose modeling is a new thing for mainstream developers, but at least the developers that we've heard from so far seem to be open to the idea.
November 11, 2008 oslo

Ted Neward Explores M

When I was an external to Microsoft, I used to see new Microsoft technologies and have several reactions: wonder, awe, lust, hate, confusion, apathy. Really, Microsoft was a harsh mistress that caused all kinds of reactions.

I’ve been heads down for 3.5 years working on Oslo, so seeing other peoples’ opinions from inside of Microsoft is very enlightening. Ted Neward has an Oslo opinion that I enjoyed reading, even if it wasn’t all positive. Thanks, Ted.

November 11, 2008 oslo

News: How modeling will change programming

Burley Kawasaki is a Microsoft marketing person, it's true, but he also really understands the point of Oslo. Enjoy.
November 11, 2008 oslo

Three-Pane MGrammar Development in Intellipad

Roger Alsing has posted a discussion of how Intellipad’s support for MGrammar development makes writing DSLs easier but showing you what parsers and how as you update the input file and the grammar file itself.

Personally, I’m a huge fan of seeing something work as I type. Think of it as “holistic intellsense.“ The SQL generation in Intellipad works the exact same way. I find it a huge help.

November 11, 2008 oslo

Another Oslo MGrammar Sample: WatiN

Torkel Ödegaard has done a very nice, detailed look at created a DSL in MGrammar for the WatiN browser automation library, including a look at the code he used to parse the Abstract Symbol Tree produced by MGrammar to do something useful.
November 11, 2008 oslo

Generating code from M

On the Oslo team, we think of three kinds of models:

  1. Drawings: This is modeling to communicate from human to human, e.g. on a white board or in Visio. An architecture diagram in a design document is an example of such a thing.
  2. Model-Assisted: This is modeling where we’re talking to a computer, most often to generate code, e.g. the .edmx file used by Visual Studio to generate C# data access code.
  3. Model-Driven: Here we’re also communicating from a human to a computer, but instead of doing it at development-time to generate code, the model is actually used at run-time to drive a run-time, e.g. a Workflow definition to drive the Workflow engine.

I’ve seen various samples around the interweb on model-driven aka executable models” (some of which we’ve supplied on the Oslo DevCenter), but Kirill Chilingarashvili has done a nice little sample of combining Visual Studio’s T4 codegen language with a custom DSL in MGrammar. Enjoy!

November 11, 2008 oslo

MisBahaving with M

The M family of languages is meant for all kinds of things, from executable models, e.g. defining a workflow and executing it via the Workflow runtime, to allowing a business person to express something in a language, either visual or textual, that they understand so that it can be communicated as formally as desired to another human. As an example of the latter, Claudio Perrone has implemented a DSL in MGrammar for Behavior-Driven Development.

It is amazing to me how many of these little DSLs have popped in M just since the PDC. Keep em coming!


← Newer Entries Older Entries →