Programming
From Wikiquote
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".
Contents |
[edit] Miscellaneous
- 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.
- Donald Knuth, March 22, 1977[1]
- Premature optimisation is the root of all evil in programming.
- Cited by Donald Knuth, who called this "Hoare's Dictum"; but the attribution to C. A. R. Hoare is unverified.
- 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.
- Larry O'Brien and Bruce Eckel in Thinking in C#
- 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.
- Charles Babbage (Attributed).
- An early quote about the Garbage in, garbage out principle.
- Programming: when the ideas turn into the real things.
- Maciej Kaczmarek
[edit] 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
[edit] 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!
- Robert Dewar (President Ada Core Technologies)
- 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)
[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.
[edit] 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 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.
- 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
- 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
[edit] 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.
[edit] 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.
- 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."
[edit] 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
[edit] Java
- 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
- Java is to JavaScript what Car is to Carpet
- Unknown Origin
[edit] Lisp
- Lisp has three primitive operators:
car,cdrandwooder.carreturns the 1st element of the list,cdrreturns the remaining element(s) of the list andwooderis 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."
- George Boole, quoted in Kenneth E. Iverson's 1979 Turing Award Lecture
- "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.173737.16853@netlabs.com> (1994).
[edit] 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
- There's no obfuscated Perl contest because it's pointless.
- Jeff Polk (Source). Note that there was in fact an Obfuscated Perl contest.
- 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
[edit] 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.
- 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
- Given enough eyeballs, all bugs are shallow.
- Eric S. Raymond (Linus' Law)
- 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
[edit] "Real Programmers…"
- Real programmers eat Ruby for breakfast.
- Real Programmers always confuse Christmas and Halloween because Oct31 == Dec25.
- Real Programmers don't need abstract concepts to get their jobs done, they are perfectly happy with a keypunch, a compiler, and a beer.
- Real Programmers don't comment their code. If it was hard to write, it should be hard to read.
- Real Programmers aren't afraid to use GOTOs.
- Real Programmers can write five page long DO loops without getting confused.
- Real Programmers like Arithmetic IF statements—they make the code more interesting.
- Real Programmers write self-modifying code, especially if they can save 20 nanoseconds in the middle of a tight loop.
- Real Programmers don't need comments—the code is obvious.
- Real Programmers don't need debuggers, they can read core dumps.
- Real Programmers remember phone numbers in binary.
- At a party, the Real Programmers are the ones in the corner talking about operating system security and how to get around it.
- At a football game, the Real Programmer is the one comparing the plays against his simulations printed on 11 by 14 fanfold paper.
- At the beach, the Real Programmer is the one drawing flowcharts in the sand.
- At a funeral, the Real Programmer is the one saying "Poor George. And he almost had the sort routine working before the coronary."
- In a grocery store, the Real Programmer is the one who insists on running the cans past the laser checkout scanner himself, because he never could trust keypunch operators to get it right the first time.
- Real Programmers write programs, not documentation.
- Real Programmers don't wear neckties.
- Real Programmers don't wear high heeled shoes.
- Real Programmers arrive at work in time for lunch.
- A Real Programmer might or might not know his wife's birthday. He does, however, know the entire ASCII (or EBCDIC) code table.
- Real Programmers don't know how to cook. Grocery stores aren't open at three in the morning. Real Programmers survive on Twinkies and coffee.
- Real Programmers don't write specs—users should consider themselves lucky to get any programs at all, and take what they get.
- Real Programmers don't write application programs, they program right down on the bare metal. Application programming is for feebs who can't do system programming.
- Variant: Real Programmers don't write application programs, they write tools to write application programs.
- Real Programmers don't eat quiche. They eat Twinkies. And Szechwan food. (Do not go to eat Szechwan food with a group of Real Programmers unless you are prepared to argue bitterly over the last spring roll.)
- Real Programmers aren't scared of GOTOs…but they really prefer branches to absolute locations.
- Real Programmers don't write COBOL. COBOL is for wimpy application programmers.
- Real Programmers' programs never work right the first time. But if you throw them on the machine they can be patched into working in "only a few" 30-hour debugging sessions.
- Real Programmers don't write in FORTRAN. FORTRAN is for pipe stress freaks and crystallography weenies.
- Real Programmers never work 9 to 5. If they are around at 9 AM, it's because they were up all night.
- Real Programmers don't write in BASIC. Actually, no programmers write in BASIC…after age twelve.
- Real Programmers can take the scissors off the phone cord.
- Real Programmers don't write in PL/I. PL/I is for programmers who can't decide whether to write in COBOL or FORTRAN.
- Variant: Real Programmers don't write in PL/1. PL/1 is for insecure anal-retentives who can't choose between COBOL and FORTRAN.
- Real Programmers don't play tennis, or any other sport which requires you to change clothes. Mountain climbing is OK, and Real Programmers wear their climbing boots to work in case a mountain should suddenly spring up in the middle of the computer room.
- Real Programmers don't do documentation. Documentation is for simps who can't figure out the listing.
- Real Programmers don't write in PASCAL, or BLISS, or ADA, or any of those pinko computer science languages. Strong typing is for people with weak memories.
- Real Programmers don't draw flowcharts. Flowcharts are the illiterate's form of documentation. Cavemen drew flowcharts; look at how much good it did for them.
- Real Programmers don't read manuals. Reliance on a reference manual is the hallmark of the novice and the coward.
- Real Programmers don't write in RPG. RPG is for gum-chewing dimwits who maintain ancient payroll programs.
- Real Programmers don't write in COBOL. COBOL is for COmmon Business-Oriented Laymen who can't run a business, much less write a real program.
- Real Programmers don't write in FORTRAN. FORTRAN is for wimp engineers who wear white socks. They get excited over finite state analysis and nuclear reactor simulation.
- Real Programmers don't write in APL, unless the whole program can be written on one line.
- Real Programmers don't write in LISP. Only idiots' programs contain more parenthesis than actual code.
- Real Programmers disdain structured programming. Structured programming is for compulsive neurotics who were prematurely toilet trained. They wear neckties and carefully line up sharp pencils on an otherwise clear desk.
- Real Programmers don't like the team programming concept. Unless, of course they are the chief programmer.
- Real Programmers never write memos on paper. They send memos via computer mail networks.
- Real Programmers have no use for managers. Managers are a necessary evil. They exist only to deal with personnel bozos, bean counters, senior planners, and other mental defectives.
- Real Programmers scorn floating point arithmetic. The decimal point was invented for pansy bedwetters who are unable to "think big."
- Real Programmers don't drive clapped-out Mavericks. They prefer BMWs, Lincolns, or pick up trucks with floor shifts. Fast motorcycles are highly regarded.
- Real Programmers don't believe in schedules. Planners make up schedules. Managers "firm up" schedules. Frightened coders strive to meet schedules. Real Programmers ignore schedules.
- Real Programmers prefer cozy over good-looking.
- Amateur programmers think there are 1000 bytes in a kilobyte; Real Programmers know there are 1024 meters in a kilometer.
- Real programmers can write assembly code in any language.

