BigBrian said:
Your statement sounds like you're infering that C++ is better than C
since you suggest that people graduate from C to C++. This really
isn't true in every case, both languages have tasks for which each is
better than the other. The linux kernel is writen in C, not C++. I
would bet most of the developers for the linux kernel would take issue
with the statement that they needed to graduate to C++.
I read an article (web page discussion) about why the linux kernal is still
in C and not C++. They had looked at implementing it in C++ but new would
give them many of problems. In a kernal memory is allocated in many
differnt places, since the kernal is the one that is ultimately responsible
for allocating the memory that new uses.
They could of used C++ if they were to limit uses of new, but it was decided
that since a lot of people work on the kernal that some programmer wouldn't
be aware of all the limitations and use new where they weren't supposed to
(or even std templates that use alloc such as std::string) and break things.
From what I read they would of used C++ for the kernal if they could without
these problems. So it wasn't a fact of C++ being inferior to C, but the
fact that wasn't the best language for the use.
If I program on an AS/400 I'll most likely use RPG (Report Program
Generator) even though you can get a C or C++ compiler. RPG is not better
than C or C++, but it is the most appropriate langauge for the use.
Also, it could be argued that C is a subset of C++, or C++ is a superset of
C. You can still program a C program in C++ without using any of the C++
objects or such with minimal changes.
In my opionion, no langauge is better than any other langauge. Languages
are designed with specific purposes in mind when they are designed. If they
are used for that purpose, then they are probably the best langauge for that
purpose.