What a nice, simple upgrade to C#. All small but useful.
I think the ?. operator is my favorite - this simple operator will actually decrease the number of null refs found in production code. String literals make for much simpler code, makes the intent pop. nameof is quite welcomed, too! And expression method bodies will make for more succinct classes.
I gave STM.NET a try the first week it was released.
The basic API usage is simple: for most problems, a simple "put this code inside Atomic.Do block" does the trick. Very cool.
The support is great, too. I posted a complex, real-world problem we are facing at the company I work for, and asked how STM.NET could be applied. Several of the guys quickly responded with some excellent suggestions.
So, what does the future hold for STM.NET? The main concern, I think, is the performance. A 5-7x perf hit over non-transaction code is hefty and daunting. But I suspect the team is already working on these perf issues.
Man, MS is really putting some valuable resources on Midori. I think Chris Brumme and Joe Duffy are now working on Midori (haven't said it explicitly, but you can read between the lines). And Midori is a rather secretive project; searching for it on MS Research
just points to the old Singularity project. MS seems to have big plans for this.