This seems quite an interesting development:Develop in the Cloud - Auto-Threading Compilers Are Here
Recently, Jared Parsons pointed me toward some research (PDF) conducted by Microsoft Research, and accepted for publication at OOPSLA. (Parsons is a co-author.) The team writing the paper also implemented the concepts as an extension to the C# compiler.
The key difference between FP and Microsoft's approach is that where FP tries to eliminate mutability, the Microsoft team only tries to track it. One core concept, referred to as reference immutability, in part allows the compiler to track mutability and make decisions about what code can be parallelized and what cannot. The result is a C#-like language that can be written normally (single-threaded), which the compiler auto-threads where it deems it beneficial. This is extremely interesting. It's a game changer. It's also real.
Parsons told me in an email:
In some ways I see FP as kind of an extreme answer to the problem of multi-threading. People find that unexpected state mutations are causing race conditions and they decide the best idea is to eliminate mutable state altogether. I think the the key is making the state mutations visible and controllable.
The team claims it's written millions of lines of code, creating a web server, an MPEG decoder, and many other applications. This, in Microsoft's usual style, demonstrates that the language is capable of real production use (or abuse). Unfortunately, Microsoft does not have a release date set at this time.