• A lot of C programmers fear C++ for the same reason that VB programmers fear C: If you think pointers are "useless" or "confusing", the language is not the one with the problem. The same holds true for templates, multiple inheritance, encapsulation, etc. Somebody who's driven a horse and buggy all his life would consider a steering wheel equally "useless".

  • Those who have used the static keyword in C have used encapsulation. Encapsulation is good.

  • 99.9% of people who call C++ "inefficient" have no idea what they mean by it. The other 0.1% are sometimes mistaken, depending on what feature they're referring to. Sometimes they're dead right, though.

  • In fact, people who hate C++ usually seem to be either in the early stages of learning it, or in the late stages of avoiding learning it. It's hard to learn; C++ is subtle and quick to anger, you might say. But lots of good things (e.g. C) cost something to get in the door. It's painful for me to go back to C now. There's a "paradigm shift": If you're thinking in structured programming terms, OOP features will naturally seem useless, just as structured programming features seemed useless to the old guard during the GOTO wars twenty-five years ago. Mastering C++ is a matter of learning why the features are there as much as learning the syntax. The syntax is the easy part.

    Some people like OOP, but they don't understand relatively low level languages; others like relatively low level languages, but they don't understand OOP. Well, there you go: C++ is both.