Wednesday, October 29, 2008 11:51 PM
jrupp
"Oslo" - What is it Really?
So, I've been to two talks about Oslo and I still don't completely know what it's supposed to do :) Long story short, I think this is going to be a little while before it's fully baked, but it does show some promise. M (the language) sounds slick, and some of what Quadrant (the GUI modeling tool) can do looks really slick (as a data manipulation tool). Getting the runtime right is going to be the tricky part.
Oslo is Microsoft's modeling-centric environment. It has a textual language (M) for creating/working with models, a graphical tool for creating/working with models (Quadrant), and a series of runtimes to execute the models (eventually WCF/WF/IIS/"Dublin"). I haven't seen much of the runtimes yet, but from what I can see there's not a whole lot there yet, which I can understand -- a model-driven execution environment is *not* trivial to create. Right now the runtime part appears to be limited to custom-written ones (over custom models described in a custom language). MS is at least starting at the right place here -- with the tooling for building and working with the models (M and Quadrant), as well as the repositories. It's a nice side benefit that these tools are immediately useful for other stuff (building grammars to parse data into C# objects to build small DSLs, like the one Don Box demonstrated in his part of the keynote on Tuesday with Chris Anderson).
Using M to specify a data model is very straight-forward, and defining a syntax for specifying it looks doable (though far from simple -- however, I didn't make the talk focusing on that part, so it may be easier than I think). Plus, Oslo includes full syntax highlighting for the base languages and custom syntaxes in Intellipad (Intellisense Workpad -- a display surface in Quadrant is a Workpad). The editor is also able to detect violations of constraints or custom syntax via the standard red-squiggly-line effect.
A couple of other notes from the sessions and the Q&A that followed them:
- The first Oslo milestone was just a box-and-arrow tool, no textual tool, but the team soon realized that a tool like M was needed to allow people to express themselves in text. Textual input is important.
- In Oslo models, matching shapes == matching types
- Oslo is not intended to solve the expedience mismatch between object model, SQL model, and XML model (it also won't solve world hunger)
- Though the current toolkit can generate SQL create/inserts from an M model, but there is no SQL differencing -- will use eventually use another tech MS is working on for that
- A custom function can be defined in M using LINQ syntax that will result be turned into a SQL function when it creates a database.
Also, a little tidbit that Don dropped during the M session:
- There is a new XAML stack in 4.0 - completely decoupled from WF/WPF (both use this new stack)
In short, it sounds interesting (like almost everything I've heard so far at PDC), but I'm not seeing the short-term benefits. Long-term? Could be interesting. I'll probably review the session videos on these once I get back home to make sure I'm fully understanding this, but if it stays the way I'm seeing it, I'll probably just wait-and-see where MS goes with this.