- Concurrency - Today we have processors with 4 cores. Within a year we'll have 8 or 16 cores. In the future we might have 256 cores or even more. Our software isn't ready for that. Microsoft already introduced us to the Parallel Framework which will extend the existing System.Threading model. But the C# team is going to include some changes too. Not to include a threading system, but to enable threading teams to create better API's. One of the things they talked about is "Method Purity", which means that a method does not access or modify anything but local variables for example. This makes threading easier since pure methods can run on its own. For this we'll get immutability supports, which is more than just lock an object entirely, but providing ways to identify something as immutable, even if some values can be adjusted, for example.
- Dynamic support - With the DLR and IronPython .NET was introduced to the dynamic world. But interoperability between static and dynamic languages isn't at a level Microsoft wants it to be. For this, C# will get features to cope with dynamic languages. C# won't become a dynamic language, but since the new .NET framework will get notion of a dynamic dispatch, static and dynamic .NET can coexists in C# 4.0.