Mr. John "Anonymous" Doe said:
... When people talk about C/C++ it is a bridge between
low level language and a high level language....
It's really a mistake to speak of C/C++. They are two
languages.
I use both at work: C for firmware, C++ for Windows-based
development.
C is great for firmware because it requires very little
run-time startup code, and C compilers are widely
available for microprocessors, whereas C++ compilers
are not. Not to mention, C is "closer to the machine",
which is important when you are counting every byte on a
execution processor with a total RAM space of 512 bytes.
No, not 512 megabytes, not 512 kilobytes... 512 BYTES.
Usage of fixed-size built-in arrays instead of fancy
containers, macros instead of functions (to avoid stack
use), and very tight code is essential on a machine like
that. C will survive for decades (or centuries) to come;
count on it.
C++, on the other hand, is great for apps to be run on
execution machines with fast processors and large
RAMs. Std. containers, std. algorithms, class hierarchies,
etc. -- I use them all. In a large program to be run on
a powerful machine, the problem isn't trying to save
resources, the problem is how to tame vast reams of
source code. I'm currently doing maintainance on a
legacy C program in excess of 650,000 lines, slowly
converting it to C++, pruning dross, simplifying,
down-sizing. Dude who wrote it should have wrote it in
C++; but he didn't, and then he got fired; so now I
(and two coworkers) have to clean up the mess, and
I'm finding conversion to C++ is key in this. C++,
too, will survive, grow, mutate, for decades to come,
I have no doubt of it.
... There is no argument that java/c# will kill
c/c++ ...
Java mostly runs on virtual machines. Interpreted,
basically. Very, very slow. I've not toyed with
programs compiled from Java to native machine language;
perhaps they're faster. But I suspect still not as
fast as C++.
C# is Microsoft-specific. It'll probably be obsolete
in a few short years, replaced by the latest MS fad.
C and C++ will survive because they're ubiquitous and
non-platform-specific. You can run them on just about
everything from the 8-bit controller chip in your
microwave oven, to a Cray supercomputer. You can't
say that about too many languages.
--
Cheers,
Robbie Hatley
Tustin, CA, USA
email: lonewolfintj at pacbell dot net
web: home dot pacbell dot net slant earnur slant