More on M directly from the PDC08
Why M?
We want creating and interacting with Oslo content to be simple and natural. Having a box-and-line design experience is an important enabler. Developers have an emotional band with the text-editor. By not allowing people interacting with text people where not productive. Box and arrows where doomed to fail. This doesn't mean box and arrows aren't useful though. Having a complementary textual experience is equally important.
What is M?
- M is a language for defining domain models and textual domain-specific languages (DSLs)
- M domain models define schema and query over structure data
- M DSLs define projections form unicode to text based structured data
The M language
- MSchema, domain-specific data models
- MGrammer, domain-specific grammers
- MGraph, abstract data model
What M is not
- An object-oriented language (no polymorphism, virtual dispatch, is a determined based on structural subtyping, not stipulation)
- A data access technology (M domain model compile down to T-SQL. Tool chain support course-grained loading/unloading of schemas and values-not OLTP solution)
- A replacement for T-SQL (Far less expansive feature set. tool change supports linking/invoking T-SQL)
Domain modeling constructs
- Extents declare storage for values
- Types constrain values in a given context
- explicit identity enables references
- Functions name parameterized expressions
The M framework
- M is itself implemented as M DSL (parser exposed using M DSL machinery. Type flow exposed as framework component)
- SDK ships with an evaluator (read evaluate print loops - MrEPL) that builds both
There where also a lot of very cool demo's displayed I wasn't able to capture with my typing skills. I'll stick around in this room to capture the future of the Entity Framework.