I’ve seen various posts lately talking about a “C++ Renaissance”. I’m trying to make some sense of this, and mainly to figure out whether it’s true.

It seems there is some belief that just because there is a new C++ standard (C++11, formerly known as C++0x) there is a “renaissance”. Most of the posts I’ve seen on the subject are basically restatements and requotes from a recent interview with a couple guys on Microsoft’s Visual C++ team. So far all I can tell is that the VC++ guys are hyping their own product, and some people are buying into it.

I haven’t heard of any widespread transition from Java/PHP/Python/Ruby/Perl/Objective-C/etc to C++. Server-side developers who are developing for maximum performance may use C++, but they probably already were before the so-called renaissance. Mobile developers are still primarily using Objective-C on iOS and Java on Android. Console game developers were already using C++. Embedded developers will continue (not start) to use C++ if they have the luxury; otherwise they’ll use C or assembler. Kernel developers will continue to use C.

The major remaining category is desktop apps. Mac apps are generally written in Objective-C (in fact that’s the only way to access the Cocoa GUI framework). Linux code is largely written in C. So the renaissance must be on Windows, right? Well, Microsoft seems to be the focus of this “renaissance”, and even they aren’t fully embracing C++. Yes, it will be possible to write Windows desktop apps in C++, but Metro is Microsoft’s latest-and-greatest development tool, and Metro apps are mostly about HTML and Javascript. And .NET (primarily C#, VB.NET) probably still fits into Microsoft’s plans somewhere.

So where exactly is the renaissance supposed to happen?