He's definitely not being sarcastic, Torvalds is an arrogant douchebag. While I understand that some people "just don't like C++" and are allowed to have preferences, to insult other people based on their own perfectly valid opinions is just immature.
Well that was a mouthful. I can“t believe Torvalds actually wrote this and he is wrong in my things. How so many game companies for instance can be using "horrible" programming language? Were the developers of C++ out of their minds? If he would think about these things for instance he would realize how ridiculous he sounds like.
I'm not sure whether this is an interesting view. C++ has problems. I thought that was a given. Though if you strip away all the insults to C++ programmers, it seems that what he hates is not C++ but rather any higher level concepts..
@HenriK, if something is popular, it isn't necessarily good.
While I believe that C's beauty really is in its simplicity (only 32 reserved words in the *entire* language!), as a C++ develloper by preference, I drool at the idea of having an operating system kernel written in C++ using a modular, fully OOP microkernel approach backed by the STL...
As a side note:
It *really* bugs me when people try to use OOP in C using halfass techniques (GOBJECT for example, feels really really clumsy to me)...why go through all that trouble when C++ treats all of these constructs as first class citizens? It makes no sense to me, and seems to me like it's nothing but stubborn elitsm...
I've been hating on Torvalds a lot lately, but the aforementioned Halfassed OOP C techniques are rampant in the Linux kernel...yet he hates on C++?! wtf dude?!
Well, someone must defend Torvalds otherwise the thread is no fun:
it seems that what he hates is not C++ but rather any higher level concepts..
I interpret Torvalds' sentiments like this: I personally dislike the idea that higher level concepts should involve language that is given from the outside world (say, the std:: containers), rather than one own's common sense and implementation.
Although std:: containers certainly make sense in many contexts, I personally don't use them (in my main project) and am quite happy with writing my own, completely customized (and home-brewed), containers.
tition, have you ever benchmarked your home-brewed stuff to compare it to whatever STL is supplied (whether it be VC++, stlPort, or whatever)?
Now, I'm not saying that the STL is perfect or lightweight. The idea of the STL being present in kernel code is laughable. But what is often produced by home-brews is even more of a joke.
And I think Linus Torvalds is as full of bullshit as he accuses other people to be.
I've come to the conclusion that any programmer that would prefer the project to be
in C++ over C is likely a programmer that I really *would* prefer to piss
off, so that he doesn't come and screw up any project I'm involved with.
Right back at ya buddy...
EDIT: I could probably picture Linus being punched in the face in real life for saying bullshit like that.
I think that the time you use (possibly waste, depending on the project), making your own containers would probably be better spent actually working on the project.
I think that I am hearing from some of the posters that one of strengths of C++ over C is oop; but there are quite a few individuals who are not so fond of oop.
Alexander Stepanov I believe has been known to criticize oop -- I believe he called it a hoax. I also have read articles written by Bjarne Stroustrup where he indicates that oop is not the beginning and end of programming. I always assumed that that was why c++ was designed that way it is (oop is not forced on you unlike some other languages).
I know I don't understand oop; everytime that I have created and class I realize after reviewing my own work that my program could have been written better using a modular approach.
I believe to do oop right you have to be pretty smart There may be some wisdom in avoiding oop.
I only use OOP when dealing with things that are actually objects. It makes sense to use OOP for games because games deal with objects - players, enemies, NPCs, etc.
tition, have you ever benchmarked your home-brewed stuff to compare it to whatever STL is supplied
Nope, but my version of std::vector provides direct access to the elements of the array, rather than overloading the operator[], so there is not a chance that my class is slower than std::vector.
[Edit:] My problem with OOP is that I never understood what kind of a concept is it exactly. To me OOP means: "A collection of common sense programming techniques used promote, roughly speaking, by people liking the term Object Oriented Programming."
"A rather random collection of common sense programming techniques, united by the fact that the people promoting the term "Object Oriented Programming" seem to like most of those techniques."
Dammit. There's more I want to say, but I have to go.
OOP is not inherently appropriate for every design. It tends to lend itself well to describe things made of many parts, that can be modeled as self-contained boxes. For example, it works well in physical simulations. It works poorly for filter-like things, such as data compression, encryption, etc.
Some of the backlash against OOP is not so much to the concept itself, but to the fact that it's being used in totally inappropriate contexts, where other approaches would make more sense. Hype and buzzwordiness plays a part in all this.
I think that the time you use (possibly waste, depending on the project), making your own containers would probably be better spent actually working on the project.
My Method:
1. Use STL conatiners
2. Finish core project
3. Make your own containers and replace the STL conatiners with yours (maybe via typedef)
Ding! Time spent on core project first, and time refining it spent later.
Anway, on the main topic, I agree that opinions are personal, and that hating others for their own opinions is fine, but being ignorant in that your opinion is the correct opinion is not right. Linus or whoever is clearly being ignorant and/or immature in this sense; if he had left out the parts of his post about wanting to piss off people for liking C++, then all would have been fine, if not a little argumentative.
I was ready to dismiss this but as I scrolled up I saw "From Linus Torvalds" I had a "oh shi*" moment. Don't know anything about the guy, but that's not a great first impression. I don't see how a respected man with a lot of voice in the open source and programming community can make so general and retarded of a statement as "C++, the STL and anyone who uses them is retarded." He just lost all of my respect in one e-mail. What a prick.
Some of the backlash against OOP is not so much to the concept itself, but to the fact that it's being used in totally inappropriate contexts, where other approaches would make more sense. Hype and buzzwordiness plays a part in all this.
Totally agree with this.
1. Use STL conatiners
2. Finish core project
3. Make your own containers and replace the STL conatiners with yours (maybe via typedef)
I would do this basically, except put a step in between 2/3 where I test to see if I need to actually bother to make my own containers.