Microsoft set out to create Oslo, its general-purpose software modeling platform, back in 2003 in an attempt to make software development more accessible to more people by enabling them to create applications from models or diagrams.
The initial goal was to deliver a visual tool for creating models along with a repository to store the models and metadata. But the need for a new declarative programming language emerged. That language was code-named D, and Microsoft will deliver an early look at the language as well as the tool and the repository next month at its Professional Developers Conference.
Oslo is aimed at empowering nondevelopers to build distributed applications. The initial version of Oslo won’t let a complete novice build applications, but it will ease development. It will also, hopes Microsoft, broaden the developer base.
“The business analyst is an under-served role, and a good opportunity for the product,” said Brad Lovering, a Microsoft technical fellow leading the Oslo effort. Don Box, a partner architect at CSD who is working on the Oslo language stack, added, “We’re trying to make it simple to get an idea out of your brain and onto a hard disk.”
Box said that Oslo is designed to capture people’s ideas, requirements and hopes for software, “so that we can then do all kinds of processing on top of it. But we’re really trying to turn the software development problem into a data design-that’s the simplest way to talk about what we’re doing. And so part of that premise is making it easy for people to interact with that data. And one way to interact with data is through visualizations and diagrammatic things, box and line designers, all kinds of charts.”
Lovering said the Oslo tool is novel with respect to development tools in that it will feel familiar to the masses. “If you’re [a Microsoft] Access user, it will be more familiar to you, let me put it that way,” he said.
Indeed, said Lovering, the tool is basically an interactive database development tool. “So, if you kind of think of Access, [Microsoft] Excel, …” that is an approximation of the tool, Lovering said. However, “you have to be a little bit careful with that comparison because it could be misleading. I’m trying to give you sort of a general feeling of the center; it is not [Access and Excel], but those are the best approximations I have if you haven’t experienced the tool.”
David Chappell, principal of David Chappell & Associates, has had early access to some of the Oslo technologies. “It’s a tool for working with data and creating data,” he said.
The tool enables users to capture domain knowledge in domain-specific views, said Lovering. And the tool also will be useful for more advanced diagramming, such as enabling the development of BPMN (business process modeling notification) workflows and UML (Unified Modeling Language) services, he added.
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.
“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.