Born 1934, Colombo, Sri Lanka), British computer scientist and winner of the 1980 A.M. Turing Award, the highest honour in computer science, for “his fundamental contributions to the definition and design of programming languages.”
In 1956 Tony Hoare earned a bachelor’s degree in classics from the University of Oxford. Following graduation, he studied Russian during his national service in the Royal Navy (1956–58) and then took some graduate-level courses in statistics and computer programming at Oxford. In 1959 Hoare moved to Russia for graduate work in probability theory and computer translation of human languages at Moscow State University. At that time, Hoare devised Quicksort, a computer algorithm for efficiently looking up information in computer tables.
Hoare returned to England in 1960 and joined Elliot Brothers, Ltd., a computer manufacturer, where he worked on programming languages, especially the development of a compiler for a version of ALGOL. In 1968 Hoare accepted a professorship in computer science at Queen’s University of Belfast. He returned to Oxford as a computer science professor in 1977. Following his retirement from Oxford in 1999, Hoare became a senior researcher at Microsoft Research, a division of the Microsoft Corporation, in Cambridge, England.
He was working with Niklaus Wirth a lot during the years. Their work on Algol, ALgol-W for example, Hoare influenced the design of Pascal and other projects by Wirth.
Some influencal articles and books by C.A.R. Hoare
Quotes from “The Emperor’s Old Clothes” lecture
There 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. The first method is far more difficult. It demands the same skill, devotion, insight, and even inspiration as the discovery of the simple physical laws which underlie the complex phenomena of nature.
[About Fortran] On October 11, 1963, my suggestion was to pass on a request of our customers to relax the ALGOL 60 rule of compulsory declaration of variable names and adopt some reasonable default convention such as that of FORTRAN. […] The story of the Mariner space rocket to Venus, lost because of the lack of compulsory declarations in FORTRAN, was not to be published until later.
[About Algol 60] Due credit must be paid to the genius of the designers of ALGOL 60 who included recursion in their language and enabled me to describe my invention [Quicksort] so elegantly to the world.
[About Algol 60 subset implementation] [E]very occurrence of every subscript of every subscripted variable was on every occasion checked at run time against both the upper and the lower declared bounds of the array. Many years later we asked our customers whether they wished us to provide an option to switch off these checks in the interests of efficiency on production runs. Unanimously, they urged us not to – they already knew how frequently subscript errors occur on production runs where failure to detect them could be disastrous. I note with fear and horror that even in 1980, language designers and users have not learned this lesson. In any respectable branch of engineering, failure to observe such elementary precautions would have long been against the law.
[About Algol W] It was not only a worthy successor of ALGOL 60, it was even a worthy predecessor of PASCAL […] I was astonished when the working group, consisting of all the best known international experts of programming languages, resolved to lay aside the commissioned draft on which we had all been working and swallow a line with such an unattractive bait.
[About Algol 68] The best we could do was to send with it a minority report, stating our considered view that, “… as a tool for the reliable creation of sophisticated programs, the language was a failure.”
[About PL/I] 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. 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.
[About Pascal] That is the great strength of PASCAL, that there are so few unnecessary features and almost no need for subsets. That is why the language is strong enough to support specialized extensions–Concurrent PASCAL for real time work, PASCAL PLUS for discrete event simulation, UCSD PASCAL for microprocessor work stations.
[About Ada] For none of the evidence we have so far can inspire confidence that this language has avoided any of the problems that have afflicted other complex language projects of the past. […] It is not too late! I believe that by careful pruning of the ADA language, it is still possible to select a very powerful subset that would be reliable and efficient in implementation and safe and economic in use.
I have learned more from my failures than can ever be revealed in the cold print of a scientific article.
Failures are much more fun to hear about afterwards; they are not so funny at the time.
One fine morning, when the emperor felt hot and bored, he extricated himself carefully from under the mountain of clothes and is now living happily as a swineherd in another story. The tailor is canonized as the patron saint of all consultants, because in spite of the enormous fees he extracted, he was never able to convince his clients of his dawning realization that their clothes have no Emperor.