Microsofts D Language
Meanwhile, Microsoft developed the D language to facilitate the development of Oslo content. Why a new language? Because to pull off the Oslo goal, "we needed a revolution in developer productivity," said Steven Lucco, a distinguished engineer in Microsoft's Developer Division who helped develop the vision for CSD and the Oslo effort.An Oslo user need not learn the D language to use Oslo, however. "The language is a technical detail for a certain audience," Lovering said. Box, who is close to the language effort, added, "You do not need to know the language, but people who like [textual programming] will like it." Moreover, the Oslo language is "not trivial" to learn, Lovering said. "Our database folks do great with it ... and our Dynamics folks, who actually build databases that run the apps, they're like, -I've wished I had something like that for so long.'" Yet Lovering said it is a "technical activity" to learn the language. "It's harder than using [Visual Basic], much harder than using Excel," he said. "Is it harder than writing an effective C# program? Not necessarily." Lovering said the Oslo language is a "novel language with a novel type system." He said the language is good for creating structured data and "an effective way for us to do SQL," as it generates SQL. Microsoft is using the language to develop Oslo repository content. Lovering said Microsoft wanted to stay as close to SQL as possible and considered generating T-SQL (Transact-SQL), "but I decided T-SQL wasn't accessible enough to get the breadth I was looking for." To develop the Oslo language, Lovering said, he tapped some of Microsoft's researchers and also borrowed from research into database programming languages. The ML functional programming language was another influence, he said, as was LISP. "The language was designed with an RDBMS [relational DBMS] as very, very, very much top-of-mind, so that we have a very clean mapping," Lovering said. "But the language is not hard-wired to an RDBMS or relational model. And 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." The Oslo language also is partially based on TLA+, a language developed by Microsoft researcher Leslie Lamport, Lovering said.
"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?'"