# Programming languages

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer. Programming languages can be used to create programs that specify the behavior of a machine, to express algorithms precisely, or as a mode of human communication.

## Quotes

    Quotes are arranged alphabetically by author

### A - F

* Programs must be written for people to read, and only incidentally for machines to execute.
** Abelson & Sussman, "Structure and Interpretation of Computer Programs", preface to the first edition
* For twenty years programming languages have been steadily progressing toward their present condition of obesity; as a result, the study and invention of programming languages has lost much of its excitement. Instead, it is now the province of those who prefer to work with thick compendia of details rather than wrestle with new ideas. Discussions about programming languages often resemble medieval debates about the number of angels that can dance on the head of a pin instead of exciting contests between fundamentally differing concepts.
** John Backus, "Can Programming Be Liberated From the von Neumann Style?", 1977 Turing Award Lecture, Communications of the ACM 21 (8), (August 1978): p. 614
* That language is an instrument of human reason, and not merely a medium for the expression of thought, is a truth generally admitted.
** George Boole, quoted in Kenneth E. Iverson's 1979 Turing Award Lecture
* Cheatham's amendment of Conway's Law: If a group of N persons implements a [COBOL] compiler, there will be N-1 passes. Someone in the group has to be the manager.
** Tom Cheatham
* When FORTRAN has been called an infantile disorder, full PL/1, with its growth characteristics of a dangerous tumor, could turn out to be a fatal disease.
** Edsger W. Dijkstra, "The Humble Programmer", 1972 Turing Award Lecture, Communications of the ACM 15 (10), October 1972: pp. 859–866
* The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence.
** Edsger W. Dijkstra, "How do we tell truths that might hurt?" (1975). Published in ACM SIGPLAN Notices 17:5 (May 1982), pp. 13–15.
* Write a paper promising salvation, make it a 'structured' something or a 'virtual' something, or 'abstract', 'distributed' or 'higher-order' or 'applicative' and you can almost be certain of having started a new cult.
** Edsger W. Dijkstra, EWD 709: "My Hopes of Computing Science"
* About the use of language: it is impossible to sharpen a pencil with a blunt axe. It is equally vain to try to do it with ten blunt axes instead.
** Edsger W. Dijkstra, "How do we tell truths that might hurt?" (1975). Published in ACM SIGPLAN Notices 17:5 (May 1982), pp. 13–15.
* If there is ever a science of programming language design, it will probably consist largely of matching languages to the design methods they support.
** Robert Floyd , The Paradigms of Programming, 1978 Turing Award Lecture, Communications of the ACM 22 (8), August 1979: pp. 455–460
* To the designer of programming languages, I say: unless you can support the paradigms I use when I program, or at least support my extending your language into one that does support my programming methods, I don't need your shiny new languages.
** Robert Floyd , The Paradigms of Programming, 1978 Turing Award Lecture, Communications of the ACM 22 (8), August 1979: pp. 455–460

### G - L

* SQL, Lisp, and Haskell are the only programming languages that I've seen where one spends more time thinking than typing.
** Philip Greenspun (2005) "How long is the average Internet discussion forum posting?" blogs.law.harvard.edu/philg. March 7, 2005. Epilogue
* Typing is no substitute for thinking.
** Richard W. Hamming cited in: John G. Kemeny, ‎Thomas E. Kurtz (1987) Structured BASIC programming. p. 118
* 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.
** C. A. R. Hoare, "The Emperor's Old Clothes", 1980 Turing Award lecture, Communications of the ACM 24 (2), (February 1981): pp. 75-83.
* My original postulate, which I have been pursuing as a scientist all my life, is that one uses the criteria of correctness as a means of converging on a decent programming language design—one which doesn’t set traps for its users, and ones in which the different components of the program correspond clearly to different components of its specification, so you can reason compositionally about it. [...] The tools, including the compiler, have to be based on some theory of what it means to write a correct program.
** C. A. R. Hoare, Oral history interview by Philip L. Frana, 17 July 2002 [ http://www.cbi.umn.edu/oh/display.phtml?id=343]

### M - R

* Computer languages of the future will be more concerned with goals and less with procedures specified by the programmer.
** Marvin Minsky, "Form and Content in Computer Science", 1969 Turing Award Lecture, Journal of the Association for Computing Machinery 17 (2), April 1970
* Computer scientists have so far worked on developing powerful programming languages that make it possible to solve the technical problems of computation. Little effort has gone toward devising the languages of interaction.
** Donald Norman, The Design of Everyday Things (1988), Ch. 6
* Programmers should never be satisfied with languages which permit them to program everything, but to program nothing of interest easily.
** Alan Perlis, "The Synthesis of Algorthmic Systems", 1966 Turing Award lecture, Journal of the ACM 14 (1), January 1967, pp. 1–9
* When someone says "I want a programming language in which I need only say what I wish done," give him a lollipop.
** Alan Perlis ACM-SIGPLAN '82, Epigrams in Programming

### S - Z

* If someone claims to have the perfect programming language, he is either a fool or a salesman or both.
** Bjarne Stroustrup on Wired.com
* Some people, when confronted with a problem, think "I know, I'll use sed." Now they have two problems.
** Jamie Zawinski, in [[w:The UNIX-HATERS Handbook|The UNIX-HATERS Handbooks.

## See also

For quotes about individual programming languages, see Category:Programming languages
* Computers
* Programming