When this question came up in a side conversation the Microsoft MVP summit, my initial reaction was that C++ is obviously the more mature language and that C# was a new language that was still “wet behind the ears.” This conversation was with a person on the Microsoft C++ team, so the comment surprised me when they indicated that C# might actually be the more mature language.
While C++ is obviously older than C#, the C# language is no longer “wet behind the ears” or even new. It has been in the public for nearly a decade and it is a decade old if you consider its inception rather than its public announcement. While that is still not long in overall time, it is long enough for a language to mature. While C++ has a large number of years on C#, you have to consider that C# has lived in a time when languages are evolving quicker due to more community involvement and better communications.
Microsoft created the C# language and then released it as version 1.0 with a lot of features in place. With the ability to look at what had been done in C++ and Java, it was easier to create a product that started at a more refined level than many prior languages.
In version 2.0 C# was updated to fill in some remaining items that had been missing. By version 3.0, the language was relatively solid. With the addition of items like Generics in version 3, the language was really at a point where it was being extended beyond its original core. By that time the language was over the hump of having a solid core. Since that release, the language is continuing to evolve to contain additional features such as lambdas, extension methods, anonymous types, and expression trees.
C++ as a language is also mature. While I might not be able to say that C# is more mature than C++. I believe I am at a point where it is possible to say that C# is no less mature.
If you have thoughts on this, let us know! Do you consider C# more mature than C++?