How Microsoft's Oslo Data Modeling Software Got Its Start (
Page 2 of 2 )
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.
ADVERTISEMENT
“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?’”
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.