
Leonardo da Vinci. Not to be confused with Leonardo da Turtle.
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?