Microsoft Oslo

It seems that Oslo is going to get a lot of press soon, and I don't think we have discussed it yet, nor am I sure I really understand what it's all about...

We have been following Microsoft's DSL and modeling project on and off for a couple of years, and Oslo seems to be another step on this road. The buzz seems to be about visual development, a textual DSL, and development by non-developers (which is probably not the same as end-user programming).

eWeek has a short discussion of The Origins of Microsoft's Oslo Software Modeling Platform. If you have links to more informative resources, or insights to share, please do.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Channel9 Video

There's an overview video on Channel9. They don't discuss the language side much though. Not sure if I'm any the wiser.. sadly, my brain raises an exception whenever it detects the phrases "business process", "workflow" or "lifecycle".


The discussion of Microsoft's new "D" programming language (apparently a codename - unrelated to the Digital Mars D) on the second page of the article had a few interesting tidbits. For starters, there's the move away from object-oriented programming:

“Today’s developer world is insanely object-oriented,” Lucco said. “Every last piece of data is encapsulated in an object that is a Turing machine, so you have no way to analyze what’s going on with it. Then that’s in stark contrast with the SQL world, where there’s a ton of things you can do with your data, and, over time, different programs can hit the same data and get something out of it. So we were like, ‘Well, how can we make mainstream programming more like SQL programming, without making it harder, like SQL programming is often considered to be?’”

Also intriguing is the mention of "D"'s influences, and its Lisp-like features:

The ML functional programming language was another influence, he said, as was LISP...the language is actually built against an abstract data model. We represent the program itself also in that same abstract data model, which is a very LISP-ish idea—you know, where the whole program itself is the same data structure on which it operates."
There's some explanation of why Lisp might be considered an influence, but I wonder where ML fit in.

Lastly, almost as a footnote, they mention that

The Oslo language also is partially based on TLA+, a language developed by Microsoft researcher Leslie Lamport
TLA+, for those not familiar with it, is Lamport's method for specifying programs (particularly concurrent programs). TLA+ specifications are written as structured combination of predicate logic and temporal logic. The toolset includes a model-checker, and there's been some work on proof assistants as well (more info, including Lamport's book on TLA+, can be found here). It makes sense to include some capabilty or formal verification in a system intended for distributed computing, but it's not exactly something I'd consider accessible to the non-developers the rest Oslo seems to be aimed at. It'd be interesting to see exactly how TLA+ is going to be used within Oslo. Unfortunately, there doesn't seem to be much information on "D" available, aside from rumours that it will be declarative, and somehow related to XAML.

Translates to SQL

He also says that the Oslo language translates to SQL I believe?

I wonder if we have two distinct languages here, the Oslo language and the D language.

Infoq had some coverage on

Infoq had some coverage on it a couple weeks back, but I also found the ripping of OO and the influences of ML and Lisp on D very interesting.

Pointer to D?

Anyone has more details on the "D" language itself? (syntax, semantics, etc)

More info

We are shipping a pre-release version of the toolchain and spec later this month, at which point we'll be disclosing every gory detail.

Until then, I can say a few things here.

We've created a new language for domain modeling and textual domain-specific languages.

Domain models can compile down to SQL.

DSLs can compile down to domain models (which can compile down to SQL).

We use XAML at various stages of the tool chain - the way this works in the PDC release will most certainly differ from where we land by the time we're done.

The team that created the language has been influenced by all the usual suspects (Scheme, ML, Haskell, etc) and as noted above, at least one of the unusual ones (TLA+).

Despite having at least one Smalltalk hacker on the team, the language isn't an OO language.

We haven't named the language (don't even ask how hard that's been) nor can I comment on internal codenames past or present (don't ask why :-)).

I can say for sure that there are no plans to name the language "D" - Walter Bright and Chris Date both have fine languages with that name.

Oddly, our language is closer to Date's than Walter's...


DSL -> EF -> SQL


By "DSLs can compile down to domain models (which can compile down to SQL)," do you mean that a DSL is translated into a conceptual model in Entity Framework which in turn is compiled into SQL?

More from InfoWorld

It looks like the language has been re-codenamed to "M".


I would think that the folks who did the work for ANSI X11.1-1995 would be quite unhappy with this. M was used as a programming language name long before Microsoft decided to do this. It's a pretty widely used programming language in health care.

And no jokes like, "Yeah... if you call MUMPS a language!"... I already thought of those.

Won't anyone think of the Internet search engines?

I hope we're past the stage where people consider a leter or a letter plus a punctuation mark to be a good name for a language. It really does make it inconvenient to search for on the 'net.

It's also not a great idea to pick a generic word like "word" or "windows". I think a made-up word like "cromule" would be a, uh, perfectly cromulent name.

Another approach

In the realm of languages that interface to databases, we've been working on compiling Alloy specifications down to programs on persistent relational databases; the project is called Alchemy. There are some interesting twists, discussed in that paper.

This looks promising...

This looks promising...


Nice one!

Oslo Developer Center

Many more videos

There are several Oslo-related talks at PDC 2008. TL27 "Oslo": The Language and TL31 "Oslo": Building Textual DSLs are the most relevant for LtU.

There are more videos listed up on the Oslo Developer Center site.

Thanks! How about posting a

Thanks! How about posting a little summary for those of us who don't have the time to watch?

Authoring texual DSLs in Oslo

Here's an InfoQ article from yesterday describing the textual DSL facility in more detail.