(ref.doc)ACM-0281

Next ACM-0985 Up: ACM

February 1981
vol 24, pp 75-83

The Emperor's Old Clothes
1908 ACM Turing Award Lecture
by C.A.R. Hoare

I have regarded it as the highest goal of programming language design
to enable good ideas to be elegantly expressed.

The first principle was security: [...] every syntactically incorrect
program should be rejected by the compiler and [...] every
syntactically correct program should give a result or an error message
that was predictable and comprehensible.

[W]e certainly want programs to be read by people.

You shouldn't trust us intelligent programmers. We can think up such
good arguments for convincing ourselves and each other of the utterly
absurd.

[T]here are two ways of constructing a software design: One way is to
make it so simple that there are obviously no deficiencies and the
other way is to make it so complicated that there are no obvious
deficiencies.

Programmers are always surrounded by complexity: we cannot avoid it.
Our applications are complex because we are ambitious to use our
computers in ever more sophisticated ways. Programming is complex
because of the large number of conflicting objectives for each of our
programming projects.

At first I hoped that such a technically unsound project would
collapse but I soon realized it was doomed to success. Almost anything
in software can be implemented, sold, and even used given enough
determination.

automatically generated by info2www version 1.2.2.8