Profile photo for Lawrence Stewart

I’ve used both. My big issues with C++ are

  • You can’t find the code that does the work. Sometimes it is in a header file, sometimes in .cpp, often split between them. Java is like this too.
  • You can’t find the main flow of control. Too many things are done by constructors and buried in other modules. Usually with C, you can read the main program and get the general idea, then go look at the libraries.
  • There is too much burying of control in data structures, like building lists of objects that each contribute some actions. See “you can’t find the flow of control”
  • C++ is not performance transparent. You can’t tell how fast something is by looking at the source. You can’t even tell what the types or operations are.
  • Operator overloading is just a bad idea.

The thing is that expert C++ programmers know all these things and can write extremely fast code, but the learning curve is extreme.

Also: the language is too big and the libraries are too big.

View 9 other answers to this question
About · Careers · Privacy · Terms · Contact · Languages · Your Ad Choices · Press ·
© Quora, Inc. 2025