Very cool discussion. I like that fact that a large focus for C# 4.0 is concurrency. I've been doing a lot of work on LINQ and concurrency (with the Brahma project http://brahma.ananthonline.net). I feel what I'm trying to do is exactly what a part of the discussion was about, which is: introducing a model that allows developers to write code that runs in parallel, without them having to put in a whole bunch of thought. The limitations of query expressions fit very well into a streaming-computation model, which is the feature I've tried to exploit. It is also possible to interleave code that runs on another processor with code that runs on the CPU (an architecture suitable for asymmetric core computing).

Even if included as language features, I feel a LINQ-like provider based model (which allows users to write their own providers) would allow the most flexibility since multi-core processor development is going to be in flux around the time C# 4.0 might be released. Allowing people to decide the model of concurrency to be used, while supporting basic constructs (I feel COmega has some very nifty ideas there). It is also entirely possible that the "scalar" processors we run some part of the code on, may not be x86 (Tesla?).

In all, this is the perfect direction for C# to be heading in. But please, pretty please(?) give us, the developers ways to extend and control this beast's innards.