Just a couple of days ago I did the Atlanta stop of the MSDN Developer Conference where David Scruggs and I did a “Lap Around Oslo” talk that seemed to go very well. If you are lucky to have this conference coming to your town, its well worth the $99 investment. Great topics and great speakers (especially if you missed the content at the PDC).
In preparation for the talk, I spent a lot of time looking at the demo script that we were supplied. It was well thought-out and tried to touch on many aspects of the Oslo platform. After the talk we got a number of good questions a about Oslo, Model Driven Development and Domain Specific Languages. That was great. The only frustration is that some of the students got stuck on the concepts in MSchema. They seemed to be more interested (or more importantly could see the value) in using MSchema to define their schemas and data. My fear here is that there were getting caught up in the details instead of seeing the big picture (which to me is Models and DSLs).
This isn’t the first technology talk that to confused and obfuscated. LINQ is my favorite example. In most of the early LINQ demos I saw, LINQ to SQL was used as an example of the power of language integration of a query language. The problem is that people left the talk thinking (and many still think) that LINQ is an ORM over SQL Server. This causes two problems, either attendees that miss the message leave thinking that the technology doesn’t apply to them (i.e. I already have an ORM) or that they focus on the part of the technology that they understood well (LINQ to SQL has a big following even if Lambda’s and LINQ in non-db hasn’t gotten as much traction as it might).
Applying this learned lesson to Oslo, I sincerely hope that attendees heard the message of model driven systems and domain specific languages. These two technologies are not a new invention (after all, “Little Languages” was coined in 1994), but Oslo does make it very approachable. Writing a DSL grammar with MGrammar is simpler than my earlier attempts with other technologies. These represent an opportunity to shift the way we develop software. I hope that message is being heard loud and clear.
What’s your take?