Unified Language Specification
As part of rolling out the “M” Specification Community, DLan published the draft of the language spec that marries MSchema and MGrammar together.
MGraph was always in the MSchema spec, so we now have a unified language specification for “M”.
We used the terms MSchema, MGrammar and MGraph at PDC to help people understand what we had in the bits at the time, but we have always known that we will have a single language.
That is one of the downsides of engaging in this effort so early with the community, but we judged that being more open and less buttoned up than we normally like was the right trade off.
Likewise, the language specification (even the most recent version) needs a lot of work, but we are blessed with a number of seasoned language spec authors both on my team and externally, so we should land in a fine place.
We have two more milestones before PDC and the Microsoft implementation of the language is converging to a point where we have “One M”.
We have a bunch of new things that we will reveal at PDC (with some peeks in CTPs prior) and the unified specification is evidence of our progress on that journey.
Just a typo…I think in the first para, you mean “MGraph and MSchema” not “MSchema and MSchema”
Shawn Wildermuth
16 Apr 09 at 10:44
Also, I understand the desire for MSchema/MGraph being one language, but I don’t get the One “M”…isn’t MSchema just a DSL for data? MGraph and perhaps MGrammar make sense, but MSchema seems outside the box there. I don’t know why MSchema would be special…
I *understand* that the Repository/Data story is important and that MSchema fits into that, but at some point it feels that MSchema is a SQL Gen tool and just a DSL.
Your thoughts?
Shawn Wildermuth
16 Apr 09 at 10:47
Got to say I’m with Shawn on this one. Generally I think the excessive focus on MSchema in most Oslo talks I’ve seen only muddies the water about the value of M.
Kevin Dente
16 Apr 09 at 17:49
M is the DSL for data.
Data == values, constraints, languages/transformations
SQL is one of _many_ possible projections of this data.
CLR is another.
XML is another.
Net, an M constraint, which is all an MSchema is, could be projected and enforced in a lot of different places other than SQL.
Kevin: Have you watch the “What is M?” part of our MIX talk? I think that does a reasonable job of framing this story in terms of the current bits. We are spending a lot of time on the CLR runtime and projection these days and also providing something more productive for the SQL runtime and projection.
douglasp
16 Apr 09 at 21:22
The discussion and examples are nice, but is there any reason why this can’t include a complete grammar in ABNF?
Ben Gillis
18 Apr 09 at 22:24