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".
- One in a million is next Tuesday.
- Gordon Letwin (architect for DOS 4)
- 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.
- 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.
- 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.
- The best way to predict the future is to implement it.
- David Heinemeier Hansson
- Any problem in computer science can be solved with another level of indirection.
- There are 10 types of people in this world, those who understand binary and those who do not
- Programmer (n): An organism that can turn caffeine into code.
- 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.
- 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
- 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!
- Robert Dewar (President Ada Core Technologies)
- 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 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.
- 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 is quirky, flawed, and an enormous success.
- What you see is all you get.
- 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.
- Bjarne Stroustrup, The Design and Evolution of C++
- c++; /* this makes c bigger but returns the old value */
- C programmers never die. They are just cast into void.
- 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
- 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
- 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.
- 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.
- Ken Thompson (in "Reflections on Trusting Trust")
- 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.
- "I don't know which programming language I will use [in the year 2000], but I know its name will be Fortran."
- Source unknown.
- See: http://tech.groups.yahoo.com/group/hackers-il/message/4557
- "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."
- "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 is, in many ways, C++--.
- 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
- Unknown Origin
- Lisp has three primitive operators:
carreturns the 1st element of the list,
cdrreturns the remaining element(s) of the list and
wooderis 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.)))
- Brian Hayes, "The Semicolon Wars", American Scientist
- "Programs must be written for people to read, and only incidentally for machines to execute."
- Abelson & Sussman, SICP, preface to the first edition
- "That language is an instrument of human reason, and not merely a medium for the expression of thought, is a truth generally admitted."
- "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
- Lisp has all the visual appeal of oatmeal with fingernail clippings mixed in.
- Larry Wall in Usenet article <1994Jul21.email@example.com> (1994).
- 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
- There's no obfuscated Perl contest because it's pointless.
- 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.
- 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
- 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.
- Brian Kernighan, "Unix for Beginners" (1979)
- 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.
- Testing can only prove the presence of bugs, not their absence.
- 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