That language, codenamed "M#," ("M Sharp")according to several different sources of mine, is an extension of Microsoft's C# language. According to a self-identified former Softie on a Reddit thread discussing Duffy's post, this new language "grew out of Sing#, the system language of Microsoft Research's Singularity OS."
A skunkworks team inside Microsoft has been working on Midori since at least 2008 (which is the first time I blogged about the Midori codename and effort). The Midori team can trace its early roots to "Singularity" the Microsoft Research-developed microkernel-based operating system written as managed code.
Midori originally was championed by Microsoft Chief Technology Officer Eric Rudder. The Midori team consisted of a number of all-star Microsoft veterans (indluding Duffy), plus some additional high-flying developers from outside the company.
Duffy made a couple of public presentations and published papers in the ensuing years that indicated he and his colleagues were working on some kind of extensions to Microsoft's C# language. In his new blog post, Duffy elaborated on this, noting that M# (a codename he never uses himself) "should be seen (as) more of a set of extensions to C# — with minimal breaking changes — than a completely new language."
Duffy explained that the team made a conscious decision to work from C# as a base, rather than C++ -- the language a number of developers on the Windows team have favored -- because there's a substantial pool of C# talent. Duffy also said the team's goal of "minimizing complexity" resulted in a preference for C# rather than C++ as a starting point.
"Type-safety is a non-negotiable aspect of our desired language, and C# represents a pretty darn good 'modern type-safe C++' canvas on which to begin painting," Duffy blogged. He added in the comments on his blog post: "A goal was that any C# compiles in this new language, and then there are a bunch of new features that are opt-in."
A number of individuals commenting on Duffy's post (and in the aforementioned Reddit thread) wondered aloud why Microsoft simply didn't use other languages, like Go, Rust or D, rather than inventing a new C# derivative.
"We're like Rust in that we want to maximize safety and performance, and we're willing to add fancy type system features to get there," Bromfield said. "We're like Go in that we want to be simple and approachable, in much the same way that .Net attempted to simplify programming. We're like D in that we want the language to feel very familiar to devs using an existing language (C# for us, C++ for them) -- just better."
Developers theoretically could use M# to build any kind of application, including line-of-business ones, Bromfield said.
"The idea is that M# should be the lowest-level language that you'll ever need. It sits at the very bottom of the stack. But it's also safe and productive enough to be appropriate for writing higher-level systems, like Web services," Bromfield added.
One of my contacts said Myerson's OS group is going to be determining which parts of Midori have a place in Microsoft's future operating-systems plans. Based on Duffy's post, it sounds like the M# piece of Midori will evolve throughout 2014, but it's not clear when and if it ultimately will be open-sourced.