Hacker News new | ask | show | jobs
by YSFEJ4SWJUVU6 3354 days ago
Why did you find that crazy? They are 2 fully separate languages that have both evolved after the latter (C++) was first introduced.
2 comments

For people who aren't professionally familiar with C or C++ it's an easy mistake to make considering how often things refer to "C/C++" like they are a single skill.

Example: https://sjobs.brassring.com/TGWebHost/jobdetails.aspx?jobId=...

Once upon a time there was this thing called 'cfront'. Cfront took C++ and turned it into C which you then fed through your compiler.

At that time mixing C and C++ was trivial, especially because C++ was still quite simple and the C compiler was the target.

But after that things got more complicated. C evolved, several times in fact since that time and the C++ standard evolved as well. Leading to the impression that C and C++ are merely the old and the improved version of C but it is probably much better to think of them as two distinct species that share a common ancestor, where one of the two had some very radical mutations.

It would be relatively easy for C++ to add some kinds of C compatibility, and they just haven't bothered to. (E.g., the "static" keyword for parameter array sizes.) It's a little annoying for shared headers that have to be used in C and C++ programs.
When people use the term "C/C++", I assume that they don't know either language well.
"5 years of Java/Javascript, with emphasis on PHP"

Contact Pro IT Recruiting where we know our candidates, Referral bonuses too!

I wouldn't call them "fully separate". Mixed C/C++ codebases are still fairly common, which works as long as the interface between them is in C.
Mixed C, Objective C and C++ code-bases are still fairly common. That's not to say they're the same language.
Well, your argument doesn't really prove anything, as Obj-C is actually much closer to C than C++ is.
They have separate ISO standards. IMO, this makes them fully separate.

C - ISO/IEC 9899:2011

C++ - ISO/IEC 14882:2014

But the standards have made some effort at avoiding gratuitous incompatibility, and have even introduced changes to reflect changes in the other standard.

Also, much C code is still valid C++. Sure, you can write code that isn't, but I would guess (pulls a number out of nowhere) that 90% of the valid C code is also valid C++.

That makes them languages that have separate standards, but not completely independent standards, that share a whole lot of source code. That's something less than fully separate in my book.