This article was originally published on Medium.
About ALGOL 60 which introduced recursion and enabled him to express his quick sort algorithm:
“The highest goal of programming language design to enable good ideas to be elegantly expressed.”
On shortening programs (meaningful name -> a1):
“The way to shorten programs is to use procedures, not to omit vital declarative information.”
On complexity and the role of a programming language:
“Programmers are always surrounded by complexity; we cannot avoid it. Out applications are complex because e are ambitious to use our computers in ever more sophisticated ways. Programming is complex because of the large number of conflicting objective for each of our programming projects. If our basic tool, the language in which we design and code our programs, is also complicated, the language itself becomes part of the problem rather than part of its solution.”
He was talking about ALGOL 68, which never saw a light due to “technical flaws in the design”. Later he was part of the committee (“even chairman”) for designing yet another language, which later sacrificed reliability, readability of programs, the formality of the language definition, and even simplicity in favor of power.
It looks like he had many debates with other language designers and many times was not happy (“in the mood of black depression”) with the result.
“There is nothing a mere scientist can say that will stand against the flood of a hundred million dollars. But there is one quality that cannot be purchased in this way - and that is reliability. The price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich find most hard to pay.”
However, despite many failures (“The entire .. project had to be abandoned, and with it, over thirty man-years of programming effort, … and I was responsible … for wasting it”) he continued to improve, solve problems and remained faithful to one’s principles.
Thank you, Tony, for the fantastic read!