Some entertaining bits from the article:<p>"How many Mac applications still support OS X 10.2? 10.3? 10.4?"<p>"Then why should we be so conservative when it comes to C++, the very core of what we work with?"<p>"C++11 is a much more productive language than C++98. We as an industry can, however, only reap that productivity gain if we stop throwing C++ productivity out of the window by the bucket-load in the hopeless pursuit of compatibility with non-standard implementations."<p>I'm as much for iconoclasm as the next person, but this whole C++ madness is starting to make me worry. While the rest of us have been off in the trenches of maintenance and production, some cabal of academics and chuckleheads has been cooking up this monstrosity of a language, and now it is finally coming to a head.<p>Folks, conservatism in software design is appreciated--in language design, essential. Python 3 is still not support by many useful libraries. Perl 5, over ten years later, is still in production and use. ECMA/Javascript is only now really taking off, after 15 years.<p>And on the darker, even more depressing side of things, you've still F77 codes in "production" and <i>active maintenance</i>--a friend of mine who is a graduate student is dealing with this right now. These are souls being fed to the gaping maw of legacy code.<p>I'm sure C++ has some interesting features. I understand, for example, why the "auto" keyword is being given new meaning (because the syntax of the STL, classes, and templates is so mindnumbingly awful!). I understand why explicit defaulting and deleting of function might lead to cleaner code (regardless of, say, an explicit that already exists). I understand why I might want 3 different declensions of 'u' in front of a string to support various forms of Unicode (where is your liberalism about forcing everyone to using UTF-8 and being done with it?).<p>I also understand that D probably has a better execution on these ideas than C++.<p>And that Javascript and C# have a better implementation of lambdas and closures.<p>And that for raw power and readability, C with embedded assembly (still!) can probably eat the lunch of any C++.
(for an example of rational language evolution, see C1X: <a href="http://www.open-std.org/jtc1/sc22/wg14/" rel="nofollow">http://www.open-std.org/jtc1/sc22/wg14/</a> )<p>And that C++ still doesn't have anything other than a crackheaded set of half-idioms for exporting classes for dynamic linking in a crossplatform way, or even for binding to another language! Go ask the poor bastard who wrote SWIG's comments on the same--he quit programming for several years to stop dealing with C++'s increasing garbage.<p>I feel reasonable in saying this: C++ is not going away soon. One day (even sooner if you are in academic circles and dealing with libraries) we maintenance programmers are going to have to start dealing with code written to take advantage of the new features in C++11.<p>And on that day, all of us will be wondering why the hell we are still using that katamari of language features, instead of something less baroque--perhaps Perl.