intertwingly

It’s just data

M as in MVC


Noah Mendelsohn: it looks like Oslo is in part being positioned as a competitor to XML.

I don’t believe that Microsoft is explicitly positioning Oslo as an XML competitor, though that may very well be a completely unintentional side effect.

Instead, M is a Turing complete programming language, with types, operators, literals, functions, and the like.  The language itself is a component of a modelling platform and can be viewed as a scripting language for Model Driven Development.  I must confess that this term sends shivers down my spine and induces flashbacks of the Repository Manager in the IBM SAA AD/Cycle days.

To those familiar with Rails, its focus is the “M” in MVC, or more precisely Active Record plus a DDL (which is one of the functions migrations do).  It can express things that could also be expressed in JSON or XML only in the sense that an sqlite3 dump does too.  It can also express constraints and relationships, things that aren’t as native or built-in to XML (some parts of which you can get via a Schema language).  A concrete example of such a data declaration.

type Person {
    Id : Integer32 = AutoNumber();
    Name : Text;
    Age : Integer32;
    Spouse : Person;
} where identity Id;

Note Spouse as a relationship.  More examples can be found in Don Box and David Langworthy’s demo.

One interesting fallout of the schema aspects of M is that its pattern matching aspects when applied to text enables M to be useful as a DSL.

Apparently the “Oslo” SDK CTP contains Intellipad, and requires Microsoft Visual Studio 2008 if you wish to compile and execute the samples.  I would be interested in knowing if Visual Studio Express would be sufficient, but I haven’t tried it yet.