Programming languages
From Wikiquote
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.
Contents |
[edit] Programming languages in general
- Programs must be written for people to read, and only incidentally for machines to execute.
- Abelson & Sussman, SICP, 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
- 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.
- 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
- SQL, Lisp, and Haskell are the only programming languages that I've seen where one spends more time thinking than typing.
- 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]
- 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
[edit] Specific programming languages
[edit] Ada
- When Roman engineers built a bridge, they had to stand under it while the first legion marched across. If programmers today worked under similar ground rules, they might well find themselves getting much more interested in Ada!
- Robert Dewar (President Ada Core Technologies) [citation needed]
- C treats you like a consenting adult. Pascal treats you like a naughty child. Ada treats you like a criminal.
- C was designed to be written; Ada was designed to be read.
- Beyond 100,000 lines of code you should probably be coding in Ada.
- If you're masochistic enough to program in Ada, we're not going to stop you.
[edit] ALGOL
- [ALGOL 60] is a language so far ahead of its time, that it was not only an improvement on its predecessors, but also on nearly all its successors.
- C. A. R. Hoare, Hints on Programming Language Design, December 1973
- [ALGOL W] was not only a worthy successor of ALGOL 60, it was even a worthy predecessor of PASCAL.
- C. A. R. Hoare, "The Emperor's Old Clothes", 1980 Turing Award lecture, Communications of the ACM 24 (2), (February 1981): pp. 75-83.
- There is an appreciated substance to the phrase "ALGOL-like" which is often used in arguments about programming, languages and computation. ALGOL appears to be a durable model, and even flourishes under surgery — be it explorative, plastic, or amputative.
- Alan Perlis, "The Synthesis of Algorthmic Systems", 1966 Turing Award lecture, Journal of the ACM 14 (1), January 1967, pp. 1–9
[edit] APL
- APL is the first language not based on the lambda calculus that is not word-at-a-time and uses functional programming forms.
Unfortunately, however, APL still splits programming into a world of expressions and a world of statements. Thus the effort to write one-line programs is partly motivated by the desire to stay in the world of expressions.- John Backus (August 1978), "Can Programming Be Liberated From the von Neumann Style?", 1977 Turing Award Lecture, Communications of the ACM 21 (8): p. 639, 618
- APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums.
- Edsger W. Dijkstra (May 1982), "How do we tell truths that might hurt?", SIGPLAN Notice 17 (5): pp. 13–15.
- APL is a write only language.
- *Anonymous, widely repeated remark
[edit] BASIC
- It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.
- Edsger W. Dijkstra, "How do we tell truths that might hurt?" (1975). Published in ACM SIGPLAN Notices 17:5 (May 1982), pp. 13–15.
- The teaching of BASIC should be rated as a criminal offence: it mutilates the mind beyond recovery.
- Edsger W. Dijkstra, "The Threats to Computing Science", ACM 1984 South Central Regional Conference, November 16–18, Austin, Texas. EWD898
- Basic happened to be on a GE timesharing system that was done by Dartmouth, and when GE decided to franchise that, it started spreading Basic around just because it was there, not because it had any intrinsic merits whatsoever.
- Alan Kay, quoted in Stuart Feldman, A Conversation with Alan Kay, ACM Queue 2:9 (Dec/Jan 2004-2005)
[edit] C/C++
- …one of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs.
- Writing in C or C++ is like running a chain saw with all the safety guards removed.
- What you see is all you get.
- There are only two things wrong with C++: The initial concept and the implementation.
- Fifty years of programming language research, and we end up with C++?
- A C program is like a fast dance on a newly waxed dance floor by people carrying razors.
- C is quirky, flawed, and an enormous success.
- C gives the programmer what the programmer wants; few restrictions, few complaints . . . C++ maintains the original spirit of C, that the programmer not the language is in charge.
- Herbert Schildt - ANSI C++ Standards Committee [citation needed]
- The evolution of languages: FORTRAN is a non-typed language. C is a weakly typed language. Ada is a strongly typed language. C++ is a strongly hyped language.
- Within C++, there is a much smaller and cleaner language struggling to get out.
- Bjarne Stroustrup, The Design and Evolution of C++
- In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg.
- C++: an octopus made by nailing extra legs onto a dog.
[edit] COBOL
- 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.
- 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 [citation needed]
[edit] Fortran
- As I said in my comments to the committee, [Fortran 90' would be a] nice language, too bad it's not Fortran.
- Dan Davison - http://www.netfunny.com/rhf/jokes/88q4/11267.7.html
- Also commonly applied to other such evolutions of programming languages. E.g: "Perl 6 would be a nice language, but it's not going to be Perl."
- In the good old days physicists repeated each other's experiments, just to be sure. Today they stick to FORTRAN, so that they can share each other's programs, bugs included.
- Edsger W. Dijkstra, "How do we tell truths that might hurt?" (1975) EWD498. Published in ACM SIGPLAN Notices 17:5 (May 1982), pp. 13–15.
- You can tell how far we have to go, when FORTRAN is the language of supercomputers.
- Consistently separating words by spaces became a general custom about the tenth century A.D., and lasted until about 1957, when FORTRAN abandoned the practice.
- Sun FORTRAN Reference Manual[specific citation needed]
- FORTRAN was the language of choice for the same reason that three-legged races are popular.
- Ken Thompson, 1983 Turing Award Lecture[2], Communications of the ACM 27 (8), August 1984, pp. 761-763.
- God is Real, unless declared Integer.
- J. Allan Toogood, FORTRAN programmer [citation needed]
[edit] Haskell
- Think of a monad as a spacesuit full of nuclear waste in the ocean next to a container of apples. Now, you can't put oranges in the space suite or the nuclear waste falls in the ocean, but the apples are carried around anyway, and you just take what you need.
- Don Stewart [citation needed]
- Haskell is faster than C++, more concise than Perl, more regular than Python, more flexible than Ruby, more typeful than C#, more robust than Java, and has absolutely nothing in common with PHP.
[edit] Java
- Java is, in many ways, C++--.
- Java is C++ without the guns, knives, and clubs.
- James Gosling, co-inventor of Java [citation needed]
[edit] Lisp
It has been suggested that this article or section be merged into Lisp programming language. (Discuss)
- The key to performance is elegance, not battalions of special cases.
- Lisp ... made me aware that software could be close to executable mathematics.
- Lisp has jokingly been called "the most intelligent way to misuse a computer". I think that description is a great compliment because it transmits the full flavor of liberation: it has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts.
- Edsger W. Dijkstra, "The Humble Programmer", 1972 Turing Award Lecture[3], Communications of the ACM 15 (10), October 1972: pp. 859–866
- Although my own previous enthusiasm has been for syntactically rich languages like the Algol family, I now see clearly and concretely the force of Minsky's 1970 Turing lecture, in which he argued that Lisp's uniformity of structure and power of self reference gave the programmer capabilities whose content was well worth the sacrifice of visual form.
- Robert Floyd, The Paradigms of Programming, 1978 Turing Award Lecture, Communications of the ACM 22 (8), August 1979: pp. 455–460
- Lisp is a programmable programming language.
- John Foderaro, CACM, September 1991
- Greenspun's Tenth Rule of Programming: any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp.
- (What the world needs (I think) is not (a Lisp (with fewer parentheses)) but (an English (with more.)))
- Brian Hayes, "The Semicolon Wars", American Scientist
- One of the most important and fascinating of all computer languages is Lisp (standing for "List Processing"), which was invented by John McCarthy around the time Algol was invented.
- Lisp isn't a language, it's a building material.
- The greatest single programming language ever designed.
- Alan Kay, about LISP. Quoted in Daniel H. Steinberg, "Daddy, Are We There Yet? A Discussion with Alan Kay", openP2P, 3 April 3 2003
- I finally understood that the half page of code on the bottom of page 13 of the Lisp 1.5 manual was Lisp in itself. These were "Maxwell’s Equations of Software!"
- Alan Kay, A Conversation with Alan Kay, ACM Queue 2 (9), (Dec/Jan 2004-2005)
- One can even conjecture that Lisp owes its survival specifically to the fact that its programs are lists, which everyone, including me, has regarded as a disadvantage.
- John McCarthy, "Early History of Lisp"
- Some may say Ruby is a bad rip-off of Lisp or Smalltalk, and I admit that. But it is nicer to ordinary people.
- Matz, LL2 [citation needed]
- Including Common Lisp.
- Robert Morris [citation needed]
- A Lisp programmer knows the value of everything, but the cost of nothing.
- Alan Perlis, Epigrams on Programming, ACM SIGPLAN Notices 17 (9), September 1982, pp. 7–13
- Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.
- Lisp was far more powerful and flexible than any other language of its day; in fact, it is still a better design than most languages of today, twenty-five years later. Lisp freed ITS's hackers to think in unusual and creative ways. It was a major factor in their successes, and remains one of hackerdom's favorite languages.
- Eric S. Raymond, in Open Sources on MIT's first OS, ITS [specific citation needed]
- Lisp is a programmer amplifier.
- Martin Rodgers (first said by Chuck Moore about Forth) [citation needed]
- We were not out to win over the Lisp programmers; we were after the C++ programmers. We managed to drag a lot of them about halfway to Lisp.
- Guy L. Steele, Java spec co-author [citation needed]
- Lisp has all the visual appeal of oatmeal with fingernail clippings mixed in.
- Larry Wall in Usenet article <1994Jul21.173737.16853@netlabs.com> (1994).
- The Largest Disservice to LISP is most frequently done whenever a LISP advocate opens his/her mouth. LISP advocates have been, in my limited and biased experience, some of the most arrogant and condescending bastards in the world. (…) I have heard more than one LISP advocate state such subjective comments as, "LISP is the most powerful and elegant programming language in the world" and expect such comments to be taken as objective truth. I have never heard a Java, C++, C, Perl, or Python advocate make the same claim about their own language of choice.
- Comment on Slashdot
- Response: "To be fair, the Java, C++, C, Perl or Python advocate wouldn't have much of a case..."
[edit] Pascal
- That is the great strength of PASCAL, that there are so few unnecessary features and almost no need for subsets.
- C. A. R. Hoare, "The Emperor's Old Clothes", 1980 Turing Award lecture, Communications of the ACM 24 (2), (February 1981): pp. 75-83.
[edit] Perl
- I have a pretty major problem with a language where one of the most common variables has the name $_
- If I were chained to a bench and 'perl' was the only thing that could open the lock, I'd probably cut my hand off.
- Gerald Penn [citation needed]
- There's no obfuscated Perl contest because it's pointless.
- Jeff Polk (Source). Note that there was in fact an Obfuscated Perl contest.
- Perl is designed to give you several ways to do anything, so consider picking the most readable one.
- Larry Wall in the perl man page [citation needed]
- Doing linear scans over an associative array is like trying to club someone to death with a loaded Uzi.
- A Perl program is correct if it gets the job done before your boss fires you.
- The camel has evolved to be relatively self-sufficient. On the other hand, the camel has not evolved to smell good. Neither has Perl.
[edit] PL/I
- 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
- 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.
[edit] Python
[edit] Smalltalk
- Smalltalk is dangerous. It is a drug. My advice to you would be don’t try it; it could ruin your life. Once you take the time to learn it (to REALLY learn it) you will see that there is nothing out there (yet) to touch it. Of course, like all drugs, how dangerous it is depends on your character. It may be that once you’ve got to this stage you’ll find it difficult (if not impossible) to “go back” to other languages and, if you are forced to, you might become an embittered character constantly muttering ascerbic comments under your breath. Who knows, you may even have to quit the software industry altogether because nothing else lives up to your new expectations.
- Andy Bower, C++ expert [citation needed]