Tony Hoare

Tony Hoare
Sir Charles Antony Richard Hoare FRS FREng, commonly known as Tony Hoare or C. A. R. Hoare, is a British computer scientist. He developed the sorting algorithm quicksort in 1959/1960. He also developed Hoare logic for verifying program correctness, and the formal language communicating sequential processesto specify the interactions of concurrent processesand the inspiration for the occam programming language...
NationalityBritish
ProfessionScientist
Date of Birth11 January 1934
roots evil debugging
Premature optimization is the root of all evil in programming.
basis challenges computing directed easy exploit future grand power predict towards unexpected
It is easy to predict that some of the discoveries of research directed towards Grand Challenges - but only the most unexpected ones, and at the most unexpected times - will be the basis of revolutionary improvements in the way that we exploit the power of our future computing devices.
computer deepest human hundred million nerve program single social throws
A single human brain has about a hundred million nerve cells... and a computer program that throws light on the mind/brain problem will have to incorporate the deepest insights of biologists, nerve scientists, psychologists, physiologists, linguists, social scientists, and even philosophers.
design methods obviously program
There are two methods in software design. One is to make the program so simple, there are obviously no errors. The other is to make it so complicated, there are no obvious errors.
jobs assumption formal
The job of formal methods is to elucidate the assumptions upon which formal correctness depends.
art learning simple
What is the central core of the subject [computer science]? What is it that distinguishes it from the separate subjects with which it is related? What is the linking thread which gathers these disparate branches into a single discipline. My answer to these questions is simple -it is the art of programming a computer. It is the art of designing efficient and elegant methods of getting a computer to solve problems, theoretical or practical, small or large, simple or complex. It is the art of translating this design into an effective and accurate computer program.
problem
Some problems are better evaded than solved.
design tools language
Programmers are always surrounded by complexity; we cannot avoid it.... 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.
learning numbers errors
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.
years looks language
I don't know what the language of the year 2000 will look like, but I know it will be called Fortran.
simplicity reliability may
The price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich may find hard to pay.
understanding challenges brain
An ultimate joint challenge for the biological and the computational sciences is the understanding of the mechanisms of the human brain, and its relationship with the human mind.
pain years errors
I couldn't resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years.
trust top-down beginners
You cannot teach beginners top-down programming, because they don't know which end is up.