Phlip said:
That suggestion works both ways. C makes an endless range of trivial
operations (string copy, polymorphic collections, callbacks) absurdly hard.
Such are klunky, tedious and boring in C, sure, but not
hard-to-understand, as everyone who codes in C has to deal with it and
gets used to it.
So the more C++ techniques you use, the easier your code gets, and the more
crew you can use.
Certainly, C++ makes such things easier to use for people who understand
C++. I'm skeptical it makes things easier for people who don't
understand C++.
Let me give my favorite example: a friend of mine in college decided to
teach himself programming. He picked up the Fortran reference manual,
read it, and created his first program that wrote a bunch of data to a
file. It worked, but ran incredibly slowly. Mystified, he showed it to a
programmer who pointed out that the output file was opened, one
character was appended, and closed inside a loop, and why would he write
such obviously inefficient code? My friend replied that nothing in the
Fortran manual said anything about how I/O actually worked, so how was
he supposed to make the right design decisions?
I don't believe that people who don't understand C++ will be able to
write professional quality code in it, no matter how easy it looks.
In the end, it's just another consideration. For example, if I was
designing a device driver API for an operating system, I'd have it be a
C interface in order to maximize the pool of developers who can write
device drivers. Making it a C++ template metaprogramming API would
ensure that few would ever write a device driver.