On Sun, Apr 13, 2014 at 12:38 AM, H. S. Teoh <hsteoh@quickfur.ath.cx> wrote:
C++ is better in theory, but not all that much better than C in
practice. The design flaws of the language often makes it worse than C
in terms of maintainability. At my day job, we switched a major project
from C++ back to C, because the C++ codebase was over-engineered and
full of abstractions that nobody understood, patched over multiple times
by people who were reassigned to take the place of the original people
who left, who didn't understand the original design but had unreasonable
deadlines to meet, so as a result they just added hacks and workarounds
to get their job done before they got fired. By the time a few years had
passed, *nobody* understood what the system even does, and every new
code change was a "blindly copy-n-paste from other parts of the code and
pray it won't break something else" deal. It was bloated, slow, and
riddled with bugs nobody dared to fix, because nobody understood what it
does. Certain features were dependent on dtor side-effects, and other
such pathological things, and it was maintenance hell.

I don't understand what is the C++ fault when the management of the project forces people to 
write shit. The same situation would have happen with any language and a full rewrite by a fixed team
would have been better whatever the new language.
I've heard the same story with Java, C# and Python in the last few years. Always management fault.

I'm not sure I understand the arguments against C++ in your examples, in particular if you use D which have destructors and "magic" too.