When asked whether there were any new developments in the Midori project, a Microsoft spokesperson said, “Microsoft is always thinking about and exploring innovative ways for people to use technology. Midori is one of many incubation projects under way at Microsoft.”

Green shoots
Microsoft’s F# programming language, which will ship this month with Visual Studio 2010, “hugely fits” the Midori programming model that was outlined in Microsoft’s documents, O’Brien said. F# is designed with restrictions that are intended to make it easier for developers to automatically parallelize applications, he explained.

For instance, F# is highly immutable—meaning that object states cannot be modified once created—and has an implicit type system. Midori requires developers to follow a similarly constrained model.

“Immutable variables are pretty much the opposite of how most programmers think about variables (‘A variable that doesn’t vary?’). So just a few years ago, the idea that functional programming was going to catch on seemed very dubious, and it was very surprising that F# became a first-class language so quickly,” O’Brien wrote in an e-mail.

“Similarly, immutability and strong typing make it easier to reason about security,” he added.

O’Brien questioned whether F# would become a more prominent language, or if Microsoft would evolve C# to have more of the same constructs that support automatic parallelization.

Automatic parallelization was a “big question mark” in Microsoft’s Midori documents, he said. “One thing I’ve been noticing is that MSR is producing tons of stuff on reasoning about concurrent programs, exploiting latent parallelism ‘automatically.’ “

Microsoft must evolve the .NET Framework Common Language Runtime further to fully exploit the advantages of functional programming, O’Brien said.

Microsoft also has rapidly developed its Silverlight runtime. The Midori programming model includes Bartok, an MSR project that endeavored to create a lightweight compiled and managed runtime system that was more efficient than the .NET Framework.