Oslo is a new modeling platform and consists of
- a language for authoring models and DSL's, called "M";
- a graphical tool for interacting with models and DSL's, called "Quadrant";
- a repository for storing and sharing models, called..."Oslo" Repository?!
As I understand it, the goal for Oslo is to make it easier for developers to communicate with users/customers/stakeholders as well as make it easier for developer to communicate more naturally to the machine - or at least in a way that's sort of "technology neutral". It's programming a higher abstraction level...
"Yeah, but modeling tools have been around forever", you might think. That is true, and they've been used and sometimes generated code and sometimes not, and sometime even could do reverse engineering. The thing with "Oslo, as I got it, is that there's a runtime that understands the model as well. We don't have to generate/reverse engineer to an from code - the runtime can execute the model as it is.
Microsoft already has a couple of product that are kind of model driven, for example Sharepoint and Dynamics, with their own DSL's (CAML/X++), their own visual designers (Sharepoint Designer/MorphX) and their own repositories (in DB). Wouldn't be nice if they shared the same repository? Extended to suit their own demands of course, but yet shared. The same goes for the visual designers and perhaps for the DSL's as well. But the thing is that neither the creation and parsing of the DSL nor the creation of the visual designer itself should be a concern for the product team them self. They should only have to be concerned about their domain and to make a DSL and visual designer that support their domain, and not have to be concerned about the domain of making a DSL and making a visual designer itself. Will that happen? I don't know - but it's an interesting thought.
I will not go in to all the details here, instead I urge you to watch the sessions, I promise you that it will be worth the five hours.
Here are the sessions from PDC
- A lap around "Oslo" with Douglas Purdy and Vijaye Raji
- "Oslo" - The Language with Don Box and David Langworthy
- "Oslo": Customizing and Extending the Visual Design Language with Don Box and Florian Voss
- "Oslo":Repository & Models with Chris Sells and Martin Gudgin
- Building Textual DSLs with the "Oslo" Modeling Language with Chris Andersson and Giovanni Della-Libera
I saw all of the above sessions in that order, the same order they where given, and it was probably a good idea. The first one was a pretty good introductory, and the three in the middle dived down in each tool. However, when leaving all of the four first session I was thinking "This is nice, but what's it good for - how am I going to use this". In the last one Chris Anderson did a wonderful job of putting all the pieces together and most of if fell in place... I think... I hope...
And you probably want to check out what MSDN has on "Oslo".
As a final word on this topic, this is just a technology that has started and is far from ready - I think the word Box and Anderson used was nascent. It going to take some time to get things right, but eventually this is going to have a big impact on the way we'll write programs in the future.