3 ms·
I get the feeling the anguish arises from working with a large codebase with varying quality of developers. For me the main problem of C++ as a language is that
by fsloth 12y ago
I get the feeling the anguish arises from working with a large codebase with varying quality of developers. For me the main problem of C++ as a language is that it is marketed as a general purpose programming language while in reality only particular types of developers are capable of using it properly in an industrial context. You have to be an a) expert with b) a good taste or the whole codebase will in time become unmaintainable and/or unstable, or both. And even in the best case scenario there will be horrible bugs arising from some minutiae you forgot to take into account.
The expert part is required just to cope. The good taste part comes from the requirement that other people must comprehend your code. i.e. it needs to be simple, pithy and correct. Some languages make it more obvious how to reach this goal than others, while in C++ I see this being mostly the result of trial and error. You require taste, restraint and experience not to implement your production solution in some unmaintaineable template-class-Gang-of-four mishmash "just because you can" and because "it's the C++ way".
The main problem with all this, IMHO, is C++'s continuing popularity. There are some problem contraints where it still is the best tool for the job but those contraints should be well understood and realized when selecting it as the implementation language.
> C++ works great for millions of programmers who get it
I feel this is a huge productivity loss for the industry as a whole. C++ creates a huge bureaucratic burden on the developers where they must spend their efforts to trivial minutiae and not in value adding work. C++11 improves on this considerably, though. I do not presume to impose some other language on those developers - rather my point is that the issues the FAQ author raises are real and that since lots of people are using the language the severity of these issues is multiplied by the number of people using it.
Note: I'm a developer who mostly writes C++ in an industrial context :).