With C# Microsoft seem to be on the right was – at least on a way I really like.
As long as .Net has been out I wanted to be able to write code for every platform and every purpose in the same language. Of course each language has it pros and cons for different “problems”, but I simply want to be able to write all kind of software (web-applications, fat clients, services, drivers …) for all kind problems (graphical representation of data, database interface, rich business logic, machine learning / ai …) with one single language. Often you don’t need the perfect fir of a language to a problem domain – you don’t need to use CUDA or OpenGL to add a little “busy animation” to your WinForms application, you would do that in C# with GDI+.
In the blog post Joe Duffy writes about some progress in making C# capable to be applied when implementing “system programming”. In short: the extensions will add RAII, deterministic destruction, real immutability (something I really would like to have in C#) and combine that with existing C# features like modern exception handling, type safety and all the things we all like with modern languages.
In mid 2014 the team has a “checkpoint”, let’s see when we will get it…