Why C++ Sucks

Linus Torvalds has recently entered the fray of language vs language, posting a message on a techie list in which he says outright that C++ is a horrible language. “It’s made more horrible by the fact that a lot of substandard programmers use it, to the point where it’s much much easier to generate total and utter crap with it. Quite frankly, even if the choice of C were to do nothing but keep the C++ programmers out, that in itself would be a huge reason to use C.”According to Torvalds C++ leads to really really bad design choices. He says that developers “invariably start using the ‘nice’ library features of the language like STL and Boost and other total and utter crap,” that may “help” you program, but they cause infinite amounts of pain when they don’t work and inefficient abstracted programming models.

Linus has a minor point there however, considering the fact that I have access to several other high level languages, programming in C++ simply doesn’t count for serious development for me. However, for smaller, less versatile application like the Bairstow (a numerical method problem) subroutine, C++ seems the perfect choice because it’s much simpler to use than going with Java or .Net. It’s a surprise that after all these years there’s still room in the world for such discussions. Shouldn’t developers be more flexible in terms of their choice of programming language? Whatever happened to “Use the best tool for the job”?