Julie said:
The first problem is that you can't really compare C++/C#/Java -- they all have
different intended audiences and capabilities.
C++ is a systems programming language. It can be used as an applications
programming language.
Hey Julie, what exactly is a "systems" language. Nice catch phrase.
Is an operating system consider a "system". Is an application running
on an embedded system a "system?". Can one have an application running
in lisp on a System? Is C a systems language? Is FORTRAN?
Let us face the fact that C and C++ are languages. They have their own
paradigms. If you want to use Pascal for your system then it is a
system language. Let us not confine nor restrict programming languages.
One can say that hardware is easier to access using C and C++ than
using FORTRAN or Basic, but it can be done in those languages.
C# is a single-platform applications programming language.
Arrgghhhhhhh. C# is a language. If one wants to use it for multiple
platforms, then so be it. If someone wants to write an operating
system in it, so be it. So, what is the difference between an
applications programming language and a systems one? I've heard
COBOL is a systems language.
Java is a multi-platform applications programming language.
Arrrrgghhh, Uggggghhh. One nice benefit of Java is that it uses a
"standardized" virtual machine to run on. It emits a "byte-code"
language which will run on a virtual machine as long as the
virtual machine adheres to the standard (Is there one???). The
benefit is that if you can get a virtual machine for your platform,
you can execute Java programs without having to recompile. The
nice benefit of C and C++ is that if you have a compiler for them,
{and the program is compliant to the standard), you can compile
and execute them on another platform. The nice benefit about
FORTRAN is that it is a standard language. There are other
languages which have emitted "byte-codes" before. They just
didn't catch on.
Historically, C++ has been used for just about everything. Before C# and Java,
there weren't a lot of widely available alternatives, so it was used a lot for
projects that would now be better suited w/ a more applications oriented
language.
Yep, there weren't a lot of alternative languages before C# or Java.
Hmmmm, let us pause a moment and reflect on our knowledge......
..... yep, nothing like: FORTRAN, BASIC, SNOBOL, MODULA 2, Pascal, LISP,
BASIC, Logo, Smalltalk, Prolog, Algol, Ada, PL/1, OPL, ZOPLZ, Assembly,
COBOL, and more. Yep, not a lot of them. Hang on whilst I feed my
aligator, change my banjo string and add more beers to the cooler.
Now that there are more choices, more informed project managers will be using
the most appropriate language, which will mean that what may have been written
in C++ previously will now (more appropriately) be written in C# or Java.
However, that doesn't mean that the use of C++ for its intended purpose will
diminish. With the exception of the ill-informed pm, C++ will continue to be
used for systems-level programming projects.
"more informed project managers will be using the most appropriate
language", now let me clean up the beer I just spit out on my keyboard.
All of the project managers I worked for did not choose a language
that would make implementation of a project easier. Nope, they choose
the house language. Why? Probably because a lot of people know the
language and the can hire experienced people using that language.
There is a lot more at stake in producing a product (or finishing a
project) than a minor decision about a programming language.
The C++ language will live on as long as there are compiler vendors,
and support tool producers still delivering their products. The
same with C and Java. (I'm refrain from discussing C# as I have
a weighted bias against Microsoft.) So, has FORTRAN, LISP or
COBOL died? Nope, and they were among the first languages. So
why should C or C++ die out anytime soon? Java may die out when
Sun stops supporting it. Same with C# (but with M$).
Please see my rant in Shiva's Welcome.txt about not very platform
is a _________.
Pardon me, while take the transmission out of the bathtub.
(I still have to replant the grass in the front yard that was
under it.)
--
Thomas Matthews
C++ newsgroup welcome message:
http://www.slack.net/~shiva/welcome.txt
C++ Faq:
http://www.parashift.com/c++-faq-lite
C Faq:
http://www.eskimo.com/~scs/c-faq/top.html
alt.comp.lang.learn.c-c++ faq:
http://www.raos.demon.uk/acllc-c++/faq.html
Other sites:
http://www.josuttis.com -- C++ STL Library book