Blog Post

C++ and Beyond 2012: Panel - Convincing your Colleagues

Play C++ and Beyond 2012: Panel - Convincing your Colleagues

The Discussion

  • User profile image

    I've found it much easier to get the ball rolling when it comes to having folks even listen to 'C++ is worth taking seriously again' now that Visual Studio 2012 comes with native Unit Testing and Static Code Analysis in the box.

    The biggest problem I have getting folks on board with C++ at the moment is the feature chasm between the .NET BCL and the C++ Standard Library. Which is not to say we need everything, and I know good stuff is coming to the Standard Library, but we need it like yesterday.

  • User profile image

    I might not be an expert, but doesn&#39;t C&#35; var add unnecessary dynamic overhead when assigning from a dynamic variable, where stating a full type would not&#63;<br><br>

  • User profile image

    convincing doesn't help, it piss people off ;}
    avoid 'convincers' if you can

  • User profile image

    I would really love to see Scott and Herb duke it out over auto.

  • User profile image

    Funny that someone removed one comment (not mine), criticizing Mr Sutter. It went something like, herb, stop talking start doing something, bring back VS native etc.

    The point is that Mr. Sutter can only talk. Talk, talk, talk. Empty talk. And giving speeches  Oh, he loves this. He simply loves giving speeches. Mr Sutter - wake up call! Talking is easy and yet even on those pre-prepared speeches you are making silly mistakes. Because you simply don't understand FULLY what you are talking about. But that's the problem when you don't have proper education, isn't it?

    Why don't you Mr Sutter try to convince your employers and make them realize that C++ is much better than .Net? But why would you do it. In one of your talks you said that you love C#. You also said that you are wearing many hats. Well, Mr Sutter, it is time to realize that you have to decide which hat you like best and chose it. Because wearing many hats, especially the one you are wearing makes you look like you are sitting on the fence.

  • User profile image
    @KMNY_a_ha: I removed the post. The poster was being a jerk and there's no place for that here. Comment was removed specifically for his insulting behavior targeting dot_tom. His pointless commentary directed at Herb was not the reason for removal... Just like yours... Please don't post here if you don't have anything remotely intelligent to share. Thanks...
  • User profile image

    I wonder what audience they have in mind when talking about "convincing". The title says "colleagues", but if that's the audience, you are working in the wrong place. C++11 stands or falls on its own (de)merits, that's what professional developers constantly research, examine, test, ... that's the very core of professionalism. It’s not for a debate that a professional developer must be highly knowledgeable and skillful or he shouldn't be allowed to write a single line of production code. There are no insurmountable intellectual difficulties understanding C++ intimately, especially taking into account the plethora of books, papers, talks, and other materials available. People who don't know, don't care, or incapable of that intellectual actvity shouldn't be writing any code. We just need to get rid of the idea that programming is something that can be done without proper education and intellectual efforts by practically anybody, or as Dijkstra said: Don't blame me for the fact that competent programming, as I view it as an intellectual possibility, will be too difficult for "the average programmer" — you must not fall into the trap of rejecting a surgical technique because it is beyond the capabilities of the barber in his shop around the corner.

  • User profile image

    @ insulting Herb
    I find Herb a bit too much PRish, but he is still a great expert.
    Also your dumb claims about one language to rule them all is laughable and shows you know nothing about sw development. It has been said that C++ isnt the most productive lang when it comes to programer productivity... just listen to C9, it is not like you had to figure it out by yourself. So Herb will use C# when it is appropriate, he will use C++ when it is appropriate.

  • User profile image


    "It has been said that C++ isnt the most productive lang when it comes to programer productivity"

    but it has been proved that C++ is as much productive as C# and Java and there are many scenarios where C++ is simply more productive due to its flexibility.

    "Also your dumb claims about one language to rule them all is laughable and shows you know nothing about sw development"

    Where did I say that C++ is the only and correct way to go?

    "So Herb will use C# when it is appropriate, he will use C++ when it is appropriate."

    With all due respect, you don't know when he will use one and when the other language, but this is not the point. The point is that he talks all the time about C++, yet he does nothing or almost nothing (at least the effects suggest it) to put C++ into leading position - see the state of VS's C++ compiler. And that's the whole gripe I have with Mr Sutter. Lots of talk, zero action or worse, lots of actions suggesting that Mr Sutter plays on the .NET side.

    And to be clear - I have nothing against any language, nor people using any of those languages. The only problem I have with Mr Sutter is that he talks about C++ and nothing else, and as I've said previously some of the actions of his would suggest that he tries to play on both teams. This is simply not good. One should pick one team and stick with it. Otherwise one looks like he's sitting on the fence.

  • User profile image

    IDK if you noticed:
    1. Sutter served as secretary and convener of the ISO C++ standards committee for over 10 years. In September 2008 he was replaced by P.J. Plauger. He then re-assumed the convener position,[2] after Plauger resigned in October 2009.[3][4]
    (also MS donates Herb's time so he is paid to do ISO work). Thank you Microsoft.
    2. Herb I think suggested improved lambda syntax for C++11, and change from boost::thread std::thread when it comes to dtor behavior.
    3. Herb published new GotW articles focused on C++11 and initiated .
    4. Herb was lead designer for C++ AMP
    Note this is all from my memory, so I might be wrong about certain things.
    Regarding status of VC++ - did you ever consider
    a) that MS is a company that actually needs to justify investment in a sense that they cant just spend 100 M USD just to make 5000 C++ zealots happy. BTW same applies to C# -there was a nice Eric Lippert blog about why C# doesnt have feature X? Basically one of the reasons is that it would be very expensive to do it. So not even holly C# gets infinite amount of resources.
    b) that C++ is a horrible language when it comes to parsing it and making tools for it?
    c) Herb is probably not the person deciding how much money to spend on VC++

  • User profile image


    You can LOL and all the rest. The point is that:

    a) all your examples from last post prove my point - Herb does a lots of talk, but he doesn't do the walk.

    b)"Herb was lead designer for C++ AMP" - just like he is Main C++ Architect at MS. And what? I'm more than sure that he doesn't write production code, he simply talks (and designs - with help of qualified engineers).

    C'mon, start thinking.


    I'm not a C++ zealot.

  • User profile image

    @KMNY_a_ha: Usually I just disagree with your points, but this one's a little much:

    The point is that he talks all the time about C++, yet he does nothing or almost nothing (at least the effects suggest it) to put C++ into leading position - see the state of VS's C++ compiler. And that's the whole gripe I have with Mr Sutter. Lots of talk, zero action or worse, lots of actions suggesting that Mr Sutter plays on the .NET side.

    You should check out the November 2012 CTP. It added a bunch of additional C++11 features, two months after shipping VC++ 2012.

    I think the .NET team would find the last line pretty funny. Smiley

  • User profile image

    Herb mentions whitepapers on modern C++ style.. Does anyone know where to find them?

  • User profile image

    See for some links, including to the Elements of Modern C++ Style "highlights" page on my blog.

  • User profile image


    Hi Herb, won't be hiding anything, I think you are wearing too many hats mister, and you want to eat the cake and have it too.

    I have lots of problems with the way you pretending to be and the way you really are, will point to just two of them at the moment:

    a) your pre and post //build behavior - you knew exactly what's gonna happen yet to the very end you pretended that C++ is going to have its renaissance at MS. Lots of talk, zero action, or as some of us, (I notably), seen such "actions" as coming from the betrayal category. Anyway, after //build you radically have changed your opinion towards C++ and were trying to convince us that CX is not only better but the only viable option. You were also not interested in engaging (engaging, not just talking and not listening) with us, devs, one of your comment which stuck in my mind was something along the lines:

    "Guys, this thread is too long, I'm not gonna read it"

    but there was more and some of your replies where simply outrageous.

    b) In your last post you've said: "You should check out the November 2012 CTP" 

    In reply to that I have just one thing to say:

    You should check out status of C++11 in clang and gcc, compare it to VS, and then we can talk. Because if you were a man of action, someone with your position at MS would make sure that VS would be up to date C++ wise. But it isn't. Do you understand now why I think that:

    "he(Mr Sutter) talks all the time about C++, yet he does nothing or almost nothing (at least the effects suggest it) to put C++ into leading position - see the state of VS's C++ compiler.

    Herb, I do understand that my words are harsh and are directed at you, and I also do understand that you may feel offended. But that's how I feel about your person at MS and the effects of it. You are supposed to be "The main C++ architect", yet, status of C++ compiler in VS is couple of years behind  freely available compilers. You do lots of talk, yet the effects (the real effects meaning that devs can actually use modern C++ on which you talk so much, are poor on VS) suggest that you don't do the walk.

    I also do understand that I am not even a pawn in this game, so you really do not have to convince me nor prove to me anything, but as long as I can reason, I am going to state my opinion in the most direct way. This may seem bit too dramatic for you but someone once said:

    "We could avoid first and second world war if we only didn't use diplomacy"

    So my conclusion to this bit too lengthy post would be:

    If I were you, and would still want my person to be seen as C++ guy I'd make sure that I do:

    Less talk and more (visible/tangible) action - up to date C++ compiler.


    Herb would you do me a favor and tell me what your formal education is - it is impossible to find  any info about it anywhere.

    Thank you

  • User profile image

    @KMNY_a_ha: I'm sorry you're upset that we're behind on C++11. We don't like being behind either, and we know where gcc and Clang are (I use them regularly).

    I also know we have constraints gcc and Clang don't -- such as supporting several first-party OS platforms (which means a once-in-a-decade event like Windows 8 taking over a big chunk of the VC++ product team capacity for two years), several first-party app products like Office and SQL Server (that would be among the world's largest ISVs if they were separate companies), and making sure C++ supports many extra features in one of the world's richest and most complex IDEs (which some will view as 'a waste' if they don't use Intellisense, debugger expression evaluation, static analysis, etc., and some people don't, but the reality is we have to support all that reasonably well and people still want things we don't do like basic refactoring). Besides those obvious taxes, there are many technical constraints that aren't appropriate to talk about publicly, but I'll note they're not the ones people keep guessing at. Smiley

    Gcc and Clang are great compilers, and I personally made sure we gave Clang in particular airtime at GoingNative (thanks again Chandler for the great talk!). They also have smaller ecosystems they have to support directly and thus fewer constraints, or at least different constraints. I may wish I worked on a project without constraints, but I don't have that luxury. So I can either quit the team and gripe about their constraints, or be part of the solution and try to help improve issues ranging from engineering to organizational. I prefer the latter as more productive.

    Re message and renaissance:

    I don't think I've changed what I've said: C++ has indeed had, and is having, a major renaissance at Microsoft and across the industry.

    Inside Microsoft, for starters all the new stuff in Windows 8 is based on a C++ COM-based API, not .NET code as Longhorn (pre-Vista) tried to do. At Build, which you mention, we had far more C++ content than at any PDC (the conference Build replaced) for over a decade, to the point where we had to bend over backwards to ensure .NET developers didn't think they were being abandoned (they weren't). In Visual C++, we probably shipped more feature work in this release than in any previous release I can remember, including ARM targeting, auto-parallelizing and -vectorizing, C++ AMP, C++/CX, a full C++11 stdlib, and other things.

    Outside Microsoft, we have C++11 (first new standard features in 13 years), the Standard C++ Foundation (first ever), (first ever), the huge investment by the industry's biggest players in a brand new C++ compiler (Clang, first reusable OSS C++ compiler ever -- gcc is deliberately nonreusable), more C++ conferences and conference content than we've seen in years, all the C++ consultants I know booked out like they haven't been for years, and more.

    So I see the renaissance ongoing everywhere. That's what I see, anyway, so I say it.

    Re education and bio:

    You should be able to find it, the academic and job summary are posted on and probably other places. BMath CS Hon Co-op, UWaterloo, 1989 -- CS/Info is an honors CS degree (a 4-year degree that actually takes 5 because of co-op interleaving, and I strongly recommend co-op for real-world experience) with heavy math and business -- a credit or two shy in each of the latter two from being a CS-math-bus triple major, nearly no electives. BTW, it looks like I'll be back at my alma mater in February to give an invited talk, anyone who's in the area and interested should check out the UW announcements.

    But really the paper/lettering doesn't matter much after getting your first job or two -- that's when it matters to give prospective employers an idea of what you might be able to do. But after the first job or two, too many people sit on their academic credentials when what really matters then is the design and engineering quality they produced in the real world, and the people they worked with who know their skills and can say so.

    FWIW, some of the world's best C++ compiler implementers I know and whose programming skills put me to shame, who work at multiple top companies you'd recognize, never formally went past high school. (It's rare, but it happens -- it just means more of the responsibility is on the person to be a self-starter and proactive about ongoing learning, with less help to discover the things they need to learn.) That includes at least one highly respected 20-year veteran of the ISO C++ standards committee, still very active and prominent in a room filled with a fair number of PhD's, and we're glad we have him.

  • User profile image

    Herb, thank you for your post,

    Have to admit, this is the first post of yours where I read it and actually agree with you.

    Ok, we'll see what the future holds.



  • User profile image

    @KMNY_a_ha: Thanks for being reasonable, I appreciate it.

    Off-topic: BTW, I've wondered for a while -- is your handle intended to be KMKY_a_ha (K instead of N)? But I agree N makes it more pronounceable and still gives the Abba reference.

  • User profile image


    It is actually very obscure reference to Alan Partridge - if you didn't see it (the Alan Partridge show) you simply have to - after seeing it you will never look at world the same again. Wink

    As for if it should be K not N? Yep, you're right, but because I'm bloody foreigner Wink I very often make mistakes and type nife instead of knife for example Wink

    And yes, I'm reasonable, but as I've said previously, sometimes diplomacy must be left for diplomats, diplomats must be locked, and real men must do the work, otherwise we ending up with all sorts of problems. After the work is done I have absolutely no problems with letting those diplomats out free again Wink


  • User profile image

    @bkuhns I'm with you on seeing the Meyers v.s. Sutter auto showdown.

    In this case I think that Scott is 100% on the money and Herb's if it hurts you're doing it wrong is missing the point that libraries can use expression templates without communicating it to their customers.

Add Your 2 Cents