Programming

From Quotes
In three words I can sum up everything I've learned about life. It goes on.
Robert Frost
Jump to: navigation, search

Computer programming (often simply programming or coding) is the craft of writing a set of commands or instructions that can later be compiled and/or interpreted and then inherently transformed to an executable that an electronic machine can execute or "run".

Miscellaneous

  • One in a million is next Tuesday.
  • There is no programming language, no matter how structured, that will prevent programmers from making bad programs.
  • If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization.
    • Weinberg's Second Law
  • Beware of bugs in the above code; I have only proved it correct, not tried it.
  • Premature optimisation is the root of all evil in programming.
  • Software and cathedrals are much the same - first we build them, then we pray.
  • The problem about all graphical programming languages is that when your project becomes complex, not only will you have spaghetti code, but it will actually look like spaghetti too.
    • Anonymous
  • He who hasn't hacked assembly language as a youth has no heart. He who does as an adult has no brain.
    • John Moore, playing on the French saying that "He who is not a Socialist at 20 has no heart. He who at 40 is a Socialist has no brain."
  • Don't get suckered in by the comments ... they can be terribly misleading.
  • Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning.
  • Writing it is easy, understanding it is hard.
    • Anonymous
  • Computer programming is tremendous fun. Like music, it is a skill that derives from an unknown blend of innate talent and constant practice. Like drawing, it can be shaped to a variety of ends – commercial, artistic, and pure entertainment. Programmers have a well-deserved reputation for working long hours but are rarely credited with being driven by creative fevers. Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination, but because their imagination reveals worlds that others cannot see.
  • Why bother with subroutines when you can type fast?
    • Vaughn Rokosz
  • No matter how slick the demo is in rehearsal, when you do it in front of a live audience the probability of a flawless presentation is inversely proportional to the number of people watching, raised to the power of the amount of money involved.
  • The three chief virtues of a programmer are: Laziness, Impatience and Hubris.
    • Larry Wall
  • Beware of programmers that carry screwdrivers.
    • Anonymous
  • The best way to predict the future is to implement it.
    • David Heinemeier Hansson
  • a Netscape engineer who shan't be named once passed a pointer to JavaScript, stored it as a string and later passed it back to C, killing 30
  • Any problem in computer science can be solved with another level of indirection.
    • David Wheeler.[2][3]
    • ...But that usually will create another problem.
    • (Less quoted second line)
  • There are 10 types of people in this world, those who understand binary and those who do not
    • Anonymous
  • Programmer (n): An organism that can turn caffeine into code.
    • Anonymous
  • Computers are good at following instructions, but not at reading your mind.
    • Donald Knuth
  • Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves.
    • Alan Kay
  • On two occasions I have been asked [by members of Parliament!], 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.
  • Programming: when the ideas turn into the real things.
    • Maciej Kaczmarek
  • Real Programmers always confuse Christmas and Halloween because Oct31 == Dec25.

Programming languages

  • BASIC - A programming language. Related to certain social diseases in that those who have it will not admit it in polite company.
  • Pascal keeps your hand tied.
  • PHP: Training wheels without the bike
    • TNX

Ada

  • C was designed to be written; Ada was designed to be read.
  • 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!
  • If you're masochistic enough to program in Ada, we're not going to stop you.
  • C treats you like a consenting adult. Pascal treats you like a naughty child. Ada treats you like a criminal.
  • Beyond 100,000 lines of code you should probably be coding in Ada.
  • Ada allowed me to concisely express the algorithms I wanted to implement.
    • Joachim Schüeth (The winner of National Museum of Computing's Colossus Cipher Challenge)

APL

C/C++

  • C gives you enough rope to hang yourself.
  • C++ gives you enough rope to shoot yourself in the foot.
  • …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.
  • C++: an octopus made by nailing extra legs onto a dog.
  • A C program is like a fast dance on a newly waxed dance floor by people carrying razors.
  • The C Programming Language - A language which combines the flexibility of assembly language with the power of assembly language.
    • Variant: The C Programming Language - A language which combines the flexibility and power of assembly language with the readability and maintainablity of assembly language.
  • Fifty years of programming language research, and we end up with C++?
  • C++: Hard to learn and built to stay that way.
  • Without C we only have Obol, Pasal and BASI.
  • Writing in C or C++ is like running a chain saw with all the safety guards removed.
  • 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.
  • In C++ it's harder to shoot yourself in the foot, but when you do, you blow off your whole leg.
  • C++: where friends have access to your private members.
  • Within C++, there is a much smaller and cleaner language struggling to get out.
  • c++; /* this makes c bigger but returns the old value */
  • C programmers never die. They are just cast into void.
    • Anonymous
  • Manually managing blocks of memory in C is like juggling bars of soap in a prison shower: It's all fun and games until you forget about one of them.
    • Unknown Usenet poster
  • 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.

COBOL

  • The use of COBOL cripples the mind; its teaching should therefore be regarded as a criminal offense.
  • Q: How will we call COBOL if it becomes an object-oriented language? A: ADD 1 TO COBOL GIVING COBOL! B: ADD 1 TO COBOL!
  • COBOL programmers understand why women hate periods.

Fortran

Main article: Fortran
  • 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
  • You can tell how far we have to go, when FORTRAN is the language of supercomputers.
  • FORTRAN was the language of choice for the same reason that three-legged races are popular.
  • God is Real, unless declared Integer.
    • J.Allan Toogood, FORTRAN programmer
    • In FORTRAN, undeclared variables are typed according to their first letter, so "God" would be a real number.
  • 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.
  • "As I said in my comments to the committee, [Fortran 90' would be a] nice language, too bad it's not Fortran."

Haskell

  • "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."
    • Audrey Tang
  • "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

Java

  • Java is C++ without the guns, knives, and clubs.
    • James Gosling, co-inventor of Java
  • Saying that Java is good because it works on all platforms is like saying anal sex is good because it works on all genders.
    • Unknown Origin
  • Java is to JavaScript what Car is to Carpet
    • Unknown Origin

Lisp

  • Lisp has three primitive operators: car, cdr and wooder. car returns the 1st element of the list, cdr returns the remaining element(s) of the list and wooder is what a programmer gets if they can ever get their Lisp program to compile and run.
  • (What the world needs (I think) is not (a Lisp (with fewer parentheses)) but (an English (with more.)))
  • "Programs must be written for people to read, and only incidentally for machines to execute."
    • Abelson & Sussman, SICP, preface to the first edition
  • "the greatest single programming language ever designed"
    • Alan Kay, on Lisp
  • "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."
    • Douglas Hofstadter, Godel, Escher, Bach
  • "Lisp is a programmable programming language."
    • John Foderaro, CACM, September 1991
  • "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"
  • "Lisp isn't a language, it's a building material."
    • Alan Kay
  • "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."
    • Philip Greenspun
  • "Including Common Lisp."
    • Robert Morris
  • "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."
    • Eric Raymond, "How to Become a Hacker"
  • "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
  • "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 Steele, Java spec co-author
  • "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 Dijkstra, CACM, 15:10
  • "Lisp is a programmer amplifier."
    • Martin Rodgers (first said by Chuck Moore about Forth)
  • "Lisp ... made me aware that software could be close to executable mathematics."
    • L. Peter Deutsch
  • "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 Raymond, in Open Sources on MIT's first OS, ITS
  • "SQL, Lisp, and Haskell are the only programming languages that I've seen where one spends more time thinking than typing."
    • Philip Greenspun
  • "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."
  • "To be fair, the Java, C++, C, Perl or Python advocate wouldn't have much of a case..."
    • The Response
  • "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, Turing Award Lecture, 1979
  • "The key to performance is elegance, not battalions of special cases."
    • Jon Bentley and Doug McIlroy

Perl

  • 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
  • I have a pretty major problem with a language where one of the most common variables has the name $_
  • Doing linear scans over an associative array is like trying to club someone to death with a loaded Uzi.
    • Larry Wall
  • 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
  • A Perl program is correct if it gets the job done before your boss fires you.
    • Larry Wall
  • If a million monkeys were typing on computers, one of them will eventually write a Java program. The rest of them will write Perl programs.
    • Anonymous
  • The camel has evolved to be relatively self-sufficient. On the other hand, the camel has not evolved to smell good. Neither has Perl.
    • Larry Wall

Debugging

  • As soon as we started programming, we found to our surprise that it wasn't as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs.
    • Maurice Wilkes discovers debugging, 1949
  • Lubarsky's Law of Cybernetic Entomology: There's always one more bug.
  • Law 1: Every program can be optimised to be smaller. Law 2: There's always one more bug. Corollary: Every program can be reduced to a one-line bug.
  • bug, n: An elusive creature living in a program that makes it incorrect. The activity of "debugging", or removing bugs from a program, ends when people get tired of doing it, not when the bugs are removed.
    • "Datamation", January 15, 1984
  • silver bullet (SIL-vuhr BOOL-it) noun: A quick solution to a thorny problem. [From the belief that werewolves could be killed when shot with silver bullets.] "Writing code, he (Stuart Feldman) explains, is like writing poetry: every word, each placement counts. Except that software is harder, because digital poems can have millions of lines which are all somehow interconnected. Try fixing programming errors, known as bugs, and you often introduce new ones. So far, he laments, nobody has found a silver bullet to kill the beast of complexity."
    • Survey: The Beast of Complexity; The Economist (London, UK); Apr 14, 2001.
  • Even perfect program verification can only establish that a program meets its specification. [...] Much of the essence of building a program is in fact the debugging of the specification.
    • Fred Brooks (1986), "No Silver Bullet", Information Processing 1986, the Proceedings of the IFIP Tenth World Computing Conference, H. K. Kugler, ed., Elsevier Science, 1986, p. 1069 ff.
    • Reprinted in the IEEE magazine Computer 20 (4), (April 1987), p. 43 ff.; and in The Mythical Man-Month Anniversary Edition (1995), ISBN 0-201-83595-9
  • The most effective debugging tool is still careful thought, coupled with judiciously placed print statements.
  • Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?
    • Brian Kernighan, "The Elements of Programming Style", 2nd edition, chapter 2
  • If debugging is the process of removing bugs, then programming must be the process of putting them in.
  • The paradox of software testing: In theory, testing software for correctness is impossible. In practice, it is given to freshmen because it's the least demanding task available.
  • A known bug is better than an unknown feature.
  • A documented bug is not a bug; it is a feature.
    • James P. MacLennan


Collections

References

  1. http://www-cs-faculty.stanford.edu/~knuth/faq.html
  2. http://research.microsoft.com/Lampson/Slides/TuringLecture.doc
  3. Beautiful Code, Section 17.6. Layers Forever?
Wiktionary-logo-en.png
Look up programming in Wiktionary, the free dictionary