On Sat, Sep 27, 2014 at 12:50 AM, Dave G4UGM <dave.g4ugm at gmail.com> wrote:
On reading [Dijkstra's] quotes he sounds very
bitter and twisted about all the
languages in common use in commercial and scientific computing when he wrote
that quote (around 1975 I believe)...
He slates Basic, Cobol, Fortran, APL and PL1..
Because they all sucked, for various reasons. Being in common use
doesn't mean that they're good in any absolute sense. It might mean that
they were slightly less awful than some other things available at the time.
But it might not even mean that. In the 1970s the choice of programming
language was often dictated by what happened to be available, and for
many systems there were few choices.
Things haven't really improved much since then either, despite the bewildering
number of language choices now available. C is an absolutely awful programming
language by any objective standard, worse than COBOL in some ways, yet it is one
of the most prevalent programming languages in terms of actual lines of code in
use worldwide (think internet infrastructure and/or embedded systems). I make my
living predominantly by writing C code, despite my considerable
misgivings about it.
Why? Because the customer is always right, even when they're completely wrong.
If the customer wants code written in C, that's what I deliver. In
that regard things
haven't changed since the 1970s, or, for that matter, since the first
business transactions
in human prehistory. Perhaps at some point customers will actually
start to recognize
the merits of programming in a high-level language, rather than C
which is just portable
assembly language, but that doesn't seem to have happened yet. I thought
the Heartbleed bug might move us in that direction, but it hasn't.
Some people claim that C++ has fewer problems than C, but they are
delusional. As a near superset of C, C++ has all of C's problems, plus
new ones that it has added. Possibly a sufficiently restricted subset of
C++ might actually be a decent language.
"The more I ponder the principles of language design, and the
techniques which put them into practice, the more is my amazement and
admiration of ALGOL 60. Here is a language so far ahead of its time,
that it was not only an improvement on its predecessors, but also on
nearly all its successors."
-- "Hints on Programming Language Design", C.A.R. Hoare,
Stanford Artificial Intelligence Laboratory Memo
AIM-224,December 1973
With the benefit of hindsight, ALGOL definitely got some things wrong,
but it got
an amazing number of things right, including some that are still being
done wrong
in languages invented thirty or more years later.
Note however that neither FORTRAN nor COBOL were successors of ALGOL.
Almost all other programming languages are either successors of ALGOL, or
at least have appeared sufficiently later than the appearance of ALGOL that
they should have taken some lessons from ALGOL (either positive or negative).