Home > Development, Programming > C++ Renaissance: the return of the King!

C++ Renaissance: the return of the King!

C++ and Beyond 2011: Herb Sutter – Why C++? | Channel 9.

The above link points to an excellent talk by Herb Sutter (Microsoft Research) on the real advantages of C and C++ (and Objective C! – all known as “native” languages) in what concerns performance per $, per Watt, per transistor and per cycle.

And it’s not just on mobile platforms – he shows that “The world is built on… C/C++”: servers, desktops, mobile platforms and large scale data centers (talk about C++ being an eco-friendly language! :-)).

So, I’m glad to see the start of an age of the “return of the King”, which will not only last for the next decade, but will perdure even more when Moore’s law finally gets to an end.

Managed languages (i.e. Java, C#, etc) still have their place where “productivity” is key (which does not seem so much the priority nowadays – not even in the foreseeable future, so they say – and in case you still believe in the myth that those managed languages are as speedy as C/C++, have a look at this paper), but I’m glad that we finally got enough of it (it took almost 10 years of waste and stalling!!), where they were used as a hammer to solve any problem, which had first to be turned into something resembling a nail (just look at what happened to the Windows Vista fiasco and its C#/.Net managed code base… but not all was bad in Vista – a good lesson was learned… the hard way, but those are the lessons that usually become persistent for generations to come… hopefully ;-)).

In addition, we are on the verge of finally getting we already have the brand new C++ standard, C++11, which includes quite some exciting new features for C++, making it an even more exciting language to program with. Add to that the new impressive developments in the LLVM/Clang toolchain, and you start seeing the killer combos we are getting nowadays for native development.

So, these are exciting times for C/C++/ObjC folks, and computing in general. Glad to see Apple, Google and Microsoft (among others) really betting all their game on these native languages and investing a lot on taking the best out of them.

I’ve always believed in the power of C/C++/ObjC, even when a lot of people became fully fascinated with all those fancy new managed languages and looked at the folks still coding in native world as a bunch of old weirdos stuck into some  “obsolete” and “uncool” language universe.

Well, I started my programming career back in 1996 coding in assembly for DSP chips (TI C3x, C6x series and AD Shark – already floating point chips, which later on started having some basic C support). So my starting point may be a bit different from most of these younger folks. And maybe that’s why I anticipated that the days where efficiency would eventually become king once again would not be far – it was just a matter of “when”, instead of “if”.  Glad to see that the “when” is finally “here”. 🙂

Categories: Development, Programming Tags: , , ,
  1. falken
    September 15, 2011 at 1:48 pm

    Hi, be nice. Where we are now its thanks to managed languages in enterprise world in mobile phones (I am mentioning just Java now), productivity is important, although I like very much again to play with something close to metal if possible. Developers can be classified now into more groups again (C++ for playing with cool toys / C# for prototyping something usefull / BIG .NET model-based tools for real business work). And I want to play with toys too :-)) … no, C++ and native is serious thing, of course 😉

  2. lgustavomartins
    September 16, 2011 at 8:47 am

    Hi there,

    >> Where we are now its thanks to managed languages in enterprise world in mobile phones (I am mentioning just Java now),

    Not sure where we are now (or just recently used to be – mainly thanks to the attempt to use managed languages for everything you could throw it to), is (was) a good place to be. MS Vista was definitely a bad place to be, and Google may be having 2nd thoughts about if Java is really the best place to be in mobile platform world (just pay attention to the underlying signs of the recent release of the Android NDK – but that may be more related to the patent mess surrounding Java than related to its managed nature, I must agree… but I divert).

    Anyway, I’m not saying that managed languages should go away. I’m just saying that they should stay at their own niche of applications (which are quite more a niche than the widespread assumption that they would be the *only* languages needed to know and use in the foreseeable future – I grew tired of hearing that being said over and over in the last decade…).

    Just like C/C++/ObjC do not attempt to be suitable for all the tasks at hand. The thing is that the current challenges on computational problems in general present more performance and efficiency requirements than “productivity” and “rapid prototyping” ones, IMHO.

    But I agree with you: it’s nice to have a world where you have a choice of several options, from highly efficient native languages that demand more from the programmer but that take the best out of the hardware, to managed languages, which provide more flexibility and ease of use, at the expense of efficiency. It’s a wonderful world 😉

    Cheers!

  1. No trackbacks yet.

Leave a comment