> People keep saying this, but the difference is comparable to Perl5/6 or Python2/3 - you can construct programs that are valid in both, and there's a big overlap of concepts and syntax.
There's more overlap wrt mental models between C#, Java and C++ than there is betwern C and C++. Being able to compile code in both languages means close to nothing if a developer can't understand how a project is structured and how a component is supposed to work.
I would say that being able to compile code in one language means close to nothing if a developer can't understand how a project is structured and how a component is supposed to work.
Thus, the observation doesn't inform the debate about C and C++ overlap.
Obviously it does. Sharing some common syntax means zero if a developer versed in C++ can't do anything in a C project.
This is not true at all. C and C++ are about as similar as C and Objective-C: sure, your code is pretty much a superset (or in Objective-C's case, a strict superset) of C. But most of the time your code looks nothing like C at all.
In some ways it's easier to interlink C and C++ code than it is to interlink Python2 and Python3 code.