I tire of having this rant being posted every three months on HN.
Linus is just having a strong reaction, the rant is more than four years old, Linus says nothing interesting about C++ and the same could be said about so many languages that its sad.
Additionally, any post about "this language is teh suxxance" - even when written by someone worth of attention - is generally full of nothing and adds little value to a community.
Just to be clear "mutable" in C++ do not mean what I want it to mean. Actually, it makes things even worse.
Thanks for pointing out the ambiguity, though. I'll try and fix that (that won't be easy, "mutable" definitely is the best keyword for what I want to express).
(Yes, I wrote that article, and I am dead serious. This is also not a random rant. I wrote other articles to back that up: http://www.loup-vaillant.fr/articles/ Note that I don't attack any particular language here, but an entire class of them.)
I have 20 years of experience in C++. C++ makes me more productive.
If I understand correctly, Linus is saying something I agree with: a bad programmer using C++ will write code that is harder to maintain than code written by a bad programmer using C.
Bjarne Stroustrup once said, "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off."
In his FAQ, he expands on this point: "What people tend to miss, is that what I said there about C++ is to a varying extent true for all powerful languages. As you protect people from simple dangers, they get themselves into new and less obvious problems. Someone who avoids the simple problems may simply be heading for a not-so-simple one. One problem with very supporting and protective environments is that the hard problems may be discovered too late or be too hard to remedy once discovered. Also, a rare problem is harder to find than a frequent one because you don't suspect it."
The essence of the rant (which I agree with) is that it's not about the language, it's about the culture associated with it.
You can write horribly structured code in C, probably more easily than in C++. And some people do. But most C programmers read K&R at some point, or maybe even some Linux kernel code, and so they end up valuing a style that emphasizes clarity and simplicity.
If anything, the sheer easiness of shooting yourself with C puts on a Darwinian pressure that causes long-term C developers to either adopt this culture or switch to something else.
At the very least Dmitry can now add to his resume that he is full of BS as per Linus Torvalds. I would've loved to have that on my resume if I were applying for the C jobs :)
It makes the resume stand out in the crowd. I know I would've invited the guy in, especially if he'd presented Linus' assessment ironically. That's why he needs to apply for a C position for this to work the best :)
You might be interested in hn-zero, a chrome extension I wrote that makes articles on the HN homepage disappear after reading both the article and comments, or hitting a small X by the article.
For applications and frameworks, other languages provide the abstractions in a less difficult to wrangle fashion. Ada is perhaps my favorite example but you actually don't even have to leave the C family -- Objective-C is very pleasant to use in such a role. (No, it's not just an Apple thing, I use it all the time for Linux and cross-platform code.)
Linus is just having a strong reaction, the rant is more than four years old, Linus says nothing interesting about C++ and the same could be said about so many languages that its sad.
Additionally, any post about "this language is teh suxxance" - even when written by someone worth of attention - is generally full of nothing and adds little value to a community.