Mono is quite practical. However, C# is one thing, and the .NET Memory Model is quite another.
The memory model is, IMHO, where Microsoft is pushing the limits of the existing C# language.
The memory model is, IMHO, where Microsoft is pushing the limits of the existing C# language.
What has Microsoft changed in the .NET memory model that makes you think they're pushing the limits?
From what I can tell, the .NET memory model is one of the things that has changed the least. The languages have changed a lot faster than the memory model.