Quotation Technology Design
I was eventually persuaded of the need to design programming notations so as to maximize the number of errors which cannot be made, or if made, can be reliably detected at compile time.
Tony Hoare The Emperor’s Old Clothes · 1981

This statement comes from Tony Hoare’s 1980 Turing Award lecture, “The Emperor’s Old Clothes”. It sets out a principle for designing programming languages: their notation should be shaped so that as many errors as possible either cannot be expressed at all, or are caught automatically when the program is translated.

Hoare accepts that this may make programs longer, requiring more declarations and information to be written out. He regards that as a worthwhile trade. In his illustration, most programmers would gladly accept extra keying in exchange for the removal of their errors, and he argues that brevity should be gained through procedures rather than by leaving out vital information.

The idea places responsibility for reliability partly in the design of the tools themselves. Rather than relying solely on programmers to avoid mistakes, a well-designed language can make whole categories of error impossible or immediately visible.

Full quotation

I was eventually persuaded of the need to design programming notations so as to maximize the number of errors which cannot be made, or if made, can be reliably detected at compile time. Perhaps this would make the text of programs longer. Never mind! Wouldn’t you be delighted if your Fairy Godmother offered to wave her wand over your program to remove all its errors and only made the condition that you should write out and key in your whole program three times! The way to shorten programs is to use procedures, not to omit vital declarative information.

✓Copied