Joe Duffy, one of the guys that rumored to be in the 'Midori' team, is interviewed by InfoQ, talking about the (lack of) good language support for concurrency and parallelism programming in the industry mainstream.
he says that library or tools are not as good as first-class language constructs,
InfoQ: Back in July of last year you wrote an article with the line "Isolation first; immutability second; synchronization last". Do you see a need for more research into language constructs that would enforce isolation or immutability?
Joe Duffy: Absolutely! We need to make concurrency something that real human beings can introduce into their programs with a high degree of confidence; eliminating races, threads, and locks, and getting compile-time safety in on the game is the only path forward.
There are some analogies with type-safety. We write C# and Java code without needing to worry about type-system holes. An entire class of program errors is eliminated by-construction; it is beautiful. The same needs to happen for concurrency-safety. But it sure won't be easy retrofitting these concepts into existing languages like C#, C++, and Java.
and these job posts maybe indicating what Joe's team is working on:
The Technical Strategy Incubation team is looking for highly motivated engineers to work on the design and development of a new programming language and associated tools. Our language is focused on enabling safe concurrency, automatic parallelism, and increased correctness and development time thanks to static verification.
The Technical Strategy Incubation team is looking for a senior software architect to lead development of our safe concurrent programming model.
This programming model is a core component of a system, 99% of which is written in type- and memory-safe C#. A core principle we add to managed code is that 1st class, statically enforced concurrency-safety must become a peer of type- and memory-safety. This role demands innovation at each layer of the software stack: programming model abstractions, scheduling (kernel and user-mode/runtime), message passing and asynchrony more generally, shared-memory, data and task parallelism, distributed parallelism, heterogeneity (including vectorization and GPGPU), interaction with processor architecture, feedback directed optimizations, and even language design and compiler implementation.
and this may be not related directly but still interesting anyway
We are looking for a strong compiler developer to join our team creating state-of-the-art compilers for C++ and managed code. We are part of an advanced systems incubation group and our compilers are used daily by other engineers on our team. You will have strong development skills, be results-oriented, be interested in pushing the state-of-the-art in compilers for native or managed code, have a tolerance for uncertainty, and have a commitment to quality.