Programming languages

From Wikiquote

Jump to: navigation, search

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.
  • 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.
  • 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.

[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!

[edit] ALGOL

  • 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.

[edit] APL

  • 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.
  • 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.

[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.
  • I invented the term Object-Oriented, and I can tell you I did not have C++ in mind.
  • 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.
  • 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.

[edit] COBOL

  • 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.

[edit] Fortran

Merge-arrow.svg
It has been suggested that this article or section be merged into Fortran. (Discuss)
Main article: Fortran
  • As I said in my comments to the committee, [Fortran 90' would be a] nice language, too bad it's not Fortran.
  • 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.
  • 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.

[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.
  • 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

[edit] Lisp

Merge-arrow.svg
It has been suggested that this article or section be merged into Lisp programming language. (Discuss)
  • 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.
  • 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.
  • 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.)))
  • 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.
  • Some may say Ruby is a bad rip-off of Lisp or Smalltalk, and I admit that. But it is nicer to ordinary people.
  • 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.
  • Lisp is a programmer amplifier.
  • 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.
  • 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

[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.
  • Perl is designed to give you several ways to do anything, so consider picking the most readable one.
  • Doing linear scans over an associative array is like trying to club someone to death with a loaded Uzi.
  • 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

  • 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.

[edit] Python

Main article: 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.

[edit] See also

[edit] References

  1. Perl Internationalization and Haskell: An Interview with Autrijus Tang

[edit] External links

Wikipedia
Wikipedia has an article about: