@gilesgoat
#1 reason: very weak typing without runtime checking
C++ is worse than C! By being an almost-superset of C, it has all of the deficiencies of C, and adds many new ones of its own!
I will, however, admit that modern C++ does make it more practical to avoid the C pitfalls. Unfortunately it can't actually prevent them. The onus is in the programmer to know what to avoid. That's a crock.
@gilesgoat
C is a good language for a very limited problem domain. The problem is that it gets used for nearly everything, and mostly far outside that limited domain.
C combines some of the power of assembly language with almost all of the danger of assembly language.
@brouhaha @gilesgoat The customer or employer always gets what they want.
Unless it's FORTRAN, which I removed from my CV so that agents would stop phoning me about FORTRAN gigs, or Perl, which I always make clear at interview time that I will absolutely refuse to attempt to read, let alone write.