Dave Love (d.love at dl.ac.uk) wrote:
: >>>>> "Daz" == Daz <darrenp at bruce.cs.monash.edu.au> writes:
: Daz> I think C++ is the best
: Daz> general purpose programming language around. It's well supported,
: Daz> a lot safer than C, more flexible, and allows a high level of
: Daz> abstraction, or low level interaction if needed.
: I wouldn't argue for a `best' language, but several things in this
: thread show up C++ in a bad light against, for instance, Lisp, which
: wins as above too: development time; tension between prototyping and
: performance; lack of built-in data types; compiler/linker problems;
: general clunkiness...
I'm not going to get into a language war here - too many of them going on
elsewhere anyway, and I won't defend C++ to death either - there are better
alternatives for some applications, and I personally find functional
programming languages suitable for some kinds of programming - and lisp isn't
my first choice in the functional department.
Development time is a very hazy term - I can write things very quickly
and badly in any langauge - the large number of libraries designed for
C++/C makes it very easy to plug in predesigned components.
C++ has quite good encapsulation and hiding of implementational detail,
so you can go back and get performance later by improving the stuff
under the bonnet.
Built in types are a two edged sword - they enable slightly better compiler
checking and implementation, but are fundamentally inflexible. Anyone who
doesn't use the very large number of predefined C++ classes floating around
for arrays, strings, hash tables, linked lists etc is missing out on half the
things which make C++ nice to use. Does lisp have a built in B-Tree type ?
In C++, all I do is include the definitions and use one.
'Compiler/linker problems' is a bit vague. It has a compiler, and it has a
linker - and the linker only gives you problems when you have done something
naughty (ie it's typesafe which I understand is still not 100% true in lisp
programming). The compilers are a little lacking in maturity (in general -
borland is very good in this dept.), but the sheer volume of users will fix
that quite quickly.
C++ is still evolving very rapildy, which is a strong point in my opinion -
there haven't been many astounding advances in langauges since the algol
generation of compilers, so it's about time people investigated the issues
of templated types, object oriented languages etc. C++, whilst not the purest
language, is certainly well and truly the fastest, being totally checked
at compile time (the latest ansi spec allows run time type checking mind
you).
General clunkiness: ? details ?
Enough said, I shall shut up now.