Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

There's recently some voice about C++ renaissance, among which the most noteworthy one is from Herb Sutter, Chairman of the C++ Standard Committee. You can search for "C++ renaissance" on Google and you'd find a bunch of links including Herb's talk on "C++ and Beyond" and other talks on Channel9 from Microsoft.

The key argument here is that with the Cloud trend becoming clearer and more popular than ever, a lot of the dev work on the cloud side calls for high-performance native languages, which on some level, basically means C/C++. I don't mean to start again some flame war about C vs C++. But I do want to know to what extent does this trend affect the growing and expanding of C++ community and popularity.

How exactly are C++ used on the cloud side? high-perf backend? more? How large, exactly, is the Cloud dev market anyway?

P.S. I've been lucky to be able to use C++0x in my project recently, and it is *awesome* (VC++10). The most useful feature for everyday programming is of course lambda. And the second I would say is rvalue reference (I finally had the courage to return vector!!)

Below are Herb's words C++ and Beyond:

I’ve been asked to give the opening “Welcome, Everyone!” talk at C&B 2011, and it’s time to cover an increasingly open secret: After a decade-long affair with managed languages where it became unfashionable to be interested in C++, C++’s power and efficiency are now getting very fashionable again. At the same time, C++ has been getting easier to use; key productivity features from the C++0x standard (aka C++11), like auto and lambdas, are increasingly widely available in commercial compilers and making using C++ easier than ever before without sacrificing its cornerstone — efficiency.

This opening 40-minute talk covers the reasons why C++ is now enjoying a major renaissance, and why that will continue to grow over the next few years because of industry trends from processor design to mobile computing to cloud and datacenter environments.

We already know that C++ is “the” language of choice for demanding applications. Here, we’ll cover why “demanding applications” increasingly means “most applications” and will be the bread and butter of our industry for the foreseeable future. We’ll see why and where other languages are still appropriate, but why C++’s applicability and demand is now again on an upswing more so than it has been for over a decade.

share

migration rejected from stackoverflow.com Feb 22 at 12:09

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

closed as too broad by Giorgio, MichaelT, amon, gnat, Bart van Ingen Schenau Feb 22 at 12:09

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

6 Answers 6

I think "C++ renaissance" refers mostly to the attitude taken toward it around Microsoft. Yes Herb Sutter is chair of the C++ standards committee, but he's also a Microsoft employee, and often when he's speaking about such things he's speaking about Microsoft's positions on things.

I think the majority of this refers to the return of C++ as a first class language in Microsoft's development tools. For example, in Visual Studio 2010 C++ now uses the MSBuild build system, just like C# and VB.NET do. The gap between C++ and other languages in Intellisense was mostly eliminated in that release too. Moreover, the editor colorings and such from C# are being brought to C++ in the next release of Visual Studio.

Now, looking at this from a non Windows prospective, on the Macintosh platform, native code (Objective-C in this case) has always been the preferred programming method, and on Unix boxes the preferred method is and has almost always been C. There's less of a "renaissance" for these cases simply because these platforms didn't jump on the C#/Java/Virtual Machine craze quite so insanely as the Windows platform did.

Finally, from a general prospective, this refers to the productivity enhancements added in the next version of the standard which bring features which have existed in most programming languages for a long time into C++, probably most notably lambdas.

share
    
I down-voted because I think your analysis is plain incorrect. C++11 specification and adoption is not driven by Microsoft. The renaissance is in the language itself, not who is using it. –  ThomasMcLeod Sep 20 '13 at 14:43
    
@Thomas: I think it has become more of that in recent years. But it wasn't when I posted this in August of 2011. Note Jerry's data starts showing a more positive trend in October -- 2 months later. –  Billy ONeal Sep 21 '13 at 2:00

I think it comes down to one thing: after ~10 years of pushing .NET, Microsoft has realized it's not the panacea they tried to sell it as. They're now (more or less) giving up on it as "the one ring", and admitting that perhaps there's a place in the world (of Windows programming) for other possibilities as well.

I don't think there's been a massive resurgence of interest in C++...yet. On the other hand, I'd say a lot of the reason there's been a slow loss of interest in C++ has been that Microsoft treated it as a second-class citizen (at best). Now that Microsoft is showing interest in really supporting C++ again, I'd expect to see a mild resurgence of interest. When/if their interest in supporting C++ materializes in the form of a compiler that supports the new C++0x features, new OS features being easily accessible from C++, etc., that's likely to grow.

At the same time, I would not expect to see any massive, overnight shifts from .NET to C++. People have been investing time, effort, money, etc., into .NET, C#, etc., for roughly a decade now. It has enough inertia that it's not going away any time soon. Quite a few (even relatively senior) people have worked with .NET for their entire careers (or so close the difference hardly matters). Even if C++ was obviously, massively superior in all possible respects, it wouldn't happen overnight. Given that there are real trade offs in choosing C++ for a particular project, and .NET does have real advantages (at least for some types of projects) it's going to continue in use for a long time as well.

Edit:

For those who are convinced that my expectation of a "mild resurgence" just has to be wrong, I put together a quick query on data.stackexchange.com:

select Year(CreationDate), Month(CreationDate), COUNT(Id) FROM Posts
  /* where Tags like '%c++%' */
  GROUP BY Year(CreationDate), Month(CreationDate)
  order BY Year(CreationDate), Month(CreationDate)

...and collected the data for total posts and posts tagged C++. Then, I took those, computed percentage of posts tagged with C++ each month:

enter image description here

That shows quite a bit of seasonality (e.g., higher percentage during the school year) so I did a year-on-year comparison for each month from July 2011 (i.e., about the time Herb and such started talking about the "C++ renaissance") through today. The result looks like this:

enter image description here

So -- negative to flat from July 2011 through January 2012, followed by flat to positive growth for all but one month from February 2012 through February 2013.

This also seems to track at least reasonably closely with Tiobe's numbers. Tiobe's description of what they measure isn't sufficient to reproduce their results, leaving me skeptical of their results, but they're still probably enough for a general sanity check, and this seems to pass.

Bottom line: yes, there has been a mild resurgence of interest in C++. Of course, research, facts and figures are unlikely to affect some opinions (or downvotes), but for those willing to see what's there, the evidence is quite clear.

I'd also reiterate that all of these are based on percentages, which should eliminate most spurious factors (e.g., changes in the economy, growth of SO as a whole, etc.)

Edit: since people still seem to be looking at this (at least occasionally), I thought I'd update the chart with data current as of early 2014.

enter image description here

With another year's worth of data added, the conclusion remains the same: the percentage of SO posts tagged with "C++" continues to grow -- and if anything, it appears that the growth is accelerating1. Since the data is a bit noisy, I've added a linear regression line to give a better idea of what seems to be happening.

The additional data does make one thing clear though: the positive growth trend wasn't just a temporary anomaly. Although growth hasn't been particularly fast, it has been positive every single month for the last year.


  1. Keep in mind that this graph is a year on year delta. If (for example) the line were flat at 0.1, that would still indicate growth. The fact that there seems to be an upward trend in the delta indicates not just growth, but acceleration.
share
    
-1 "I'd expect to see a mild resurgence of interest". Almost two years since the Visual C++ team started trumpeting the C++ renaissance and there has been no resurgence of interest in going back to the dark ages whatsoever. itjobswatch.co.uk/jobs/uk/c++.do –  Jon Harrop Jan 4 '13 at 19:54
7  
@JonHarrop: Yet more brilliant insight from the guy who, upon typing his name into Google, it's suggested that the next word you probably want to enter is "troll"! –  Jerry Coffin Jan 4 '13 at 20:17

This is just propaganda. I don't see a major renaissance happening because the problem domains that C++ can tackle are also adequately addressed by many other languages. The C++ aficionados have been counting on the proliferation of mobile devices as being the 'savior' of the language but that hasn't been the case. Ironically, even though C++ is well suited to the demanding embedded resource constrained environment of mobile devices, we have C# being the language of choice on WinPhone, Objective C for iOS and Java/Dalvik on Android. If there was ever an opportunity for a renaissance it was in the mobile the space, and C++ could have dominated on all 3 platforms. However this didn't happen.

This leaves me wondering which future space will C++ fill to create this major renaissance? Herb seems to think cloud applications. Hmmm wonder what the language of choice is for development on Azure? Checking the MSDN samples (http://code.msdn.microsoft.com/windowsazure/) shows that the majority of samples are in C#. I think that sums it up for cloud development on the Windows platform.

What about the traditional spaces that C++ covers (e.g. video games and finance)? Although the number of people playing games is increasing, it's not a major upsurge, and you would need one to before you can justify any claim about a major renaissance.

You just have to look at the steady decline in C++ related jobs to realize there is not going to be a 'major renaissance'.

share
3  
The dominating position of C++ in quant finance is as much due to the merits of the language, as due to the technical conservatism of the banks. –  quant_dev Apr 3 '12 at 13:37

Multicore computers with 100s of cores will be prevalent in the next few years. C++'s "new" functional programming features and libraries like TBB, Boost, etc. provide powerful abstractions for multicore programming. Other new features such as decltype simplify programming when compared to the older versions of the language.

There are new concepts like rvalue references, which to the lazy programmer means additional work to understand, and to the power-freak programmer means another weapon to further speed-up the tight loops.

Updated (Sept 12, 2011): C++ seems to be an appropriate tool to code for multi-platform applications on mobiles, for example, both on ios and android.

share
1  
I don't think this is it; e.g. C# has had this for years, LISP has had it for longer than C++ has existed. These libraries certainly help, but they aren't game changers. –  Billy ONeal Aug 31 '11 at 4:09
    
@Billy They might well become a game changer. C# may have had some parallel libraries for years, but they’ve been irrelevant for performance since until very recently, most consumer PCs had at most two cores. This is going to change drastically, very soon. They free lunch may have been over for eight years now, but it’s only now being re-enabled. –  Konrad Rudolph Aug 31 '11 at 7:17
1  
@KonradRudolph So C++ is catching up to other languages. Great. Where's the revolution? –  quant_dev Apr 3 '12 at 13:43
    
@quant_dev What revolution? I didn’t mention anythink like that. –  Konrad Rudolph Apr 3 '12 at 13:48
    
You didn't, but Sutter&friends do. –  quant_dev Apr 3 '12 at 14:00

Herb Sutter has vested interest in promoting C++ and his opinion should be taken with a grain of salt. It is logical to expect him to take advantage of the hype surrounding C++ 11 release. After all, it only happens once in 10 years. OMG, look C++ got lambdas! Until C++ develops user-friendly libraries that can compete with what .NET, Java, and Python had for years there will be no renaissance. Use C++ for what it makes sense, ignore BS coming out of Redmond, and live a happy life.

share

(There might be something that I have completely missed about this whole thing, so take this with a grain of salt.)

It isn't really a thing. There has been a lot of excitement in the C++ world about C++11 (r-value refs; YES!), but this is just a marketing ploy by Microsoft. If you look at an objective measure of interest in C++ such as the Tiobe Index you will see that interest in C++ has been steadily falling for the past decade, with no hint of a resurgence.

This "renaissance" theme has been coming entirely from Microsoft, but this does mean something if you develop in C++ for windows. In means that C++ is going to be getting a lot of attention from Microsoft, so you can expect high quality compilers and libraries. To some extent this can be seen already (compare MSVC 6 to MSVC 10) but it means that you can safely assume that C++11 features will be implemented and supported in short order.

share
16  
The TIOBE index is a poor metric of language use. It is a web content contest, and a poor one at that. Java is nowhere near the world's most widely deployed language, yet has a wide lead on that index; a big part of that is that many intro to programming classes are taught in Java and as a result there are a lot of new programmers filling the internet with chatter about basic language features. Besides, choosing a language based on any kind of popularity contest is generally an invalid concept. Choose the best tool for the task at hand. –  Billy ONeal Aug 31 '11 at 3:26
4  
I don't see how you can talk about a resurgence in language use using an index that does not measure language use. "(as indicated by popularity)" means "(as indicated by absolutely nothing)" –  Billy ONeal Aug 31 '11 at 4:11
3  
No, I have to say you don't understand my point at all if you're saying we have the same point. I'm saying the term "C++ Renaissance" mostly revolves around Microsoft, true. But Microsoft's tools and operating system run over 90% of client PCs, so I'm not limiting scope much by saying that. –  Billy ONeal Aug 31 '11 at 17:09
2  
@BillyONeal: "The TIOBE index is a poor metric of language use". I agree but many other metrics show the same trend: C++ is dying. google.co.uk/trends/?q=c%2B%2B itjobswatch.co.uk/jobs/uk/c++.do –  Jon Harrop Jan 14 '12 at 11:56
3  
@JonHarrop -- Sure, C++ is dying. So has Fortran been, for the past 25 years and more. Unfortunately, it's not quite dead yet... expect C++ to be at least as bad 8^) –  comingstorm Apr 3 '12 at 19:40

Not the answer you're looking for? Browse other questions tagged or ask your own question.