Last modified on 20 August 2014, at 13:58

Programming

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

Computer Programming quotesEdit

  • The cleaner and nicer the program, the faster it's going to run. And if it doesn't, it'll be easy to make it fast.
  • On two occasions I have been asked, – "Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?" In one case a member of the Upper, and in the other a member of the Lower House put this question. I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.
    • Charles Babbage, Passages from the Life of a Philosopher (1864), ch. 5: "Difference Engine No. 1"
  • The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures....
    Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. […] The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be.
  • Computer programs are the most intricate, delicately balanced and finely interwoven of all the products of human industry to date. They are machines with far more moving parts than any engine: the parts don't wear out, but they interact and rub up against one another in ways the programmers themselves cannot predict.
    • James Gleick (2002) What just happened: a chronicle from the information frontier. p.19 cited in: George Stepanek (2005) Software Project Secrets: Why Software Projects Fail. p.10
  • Applications programming is a race between software engineers, who strive to produce idiot-proof programs, and the universe which strives to produce bigger idiots. So far the Universe is winning.
    • Rick Cook, The Wizardry Compiled (1989) Ch. 6
  • Computers are man's attempt at designing a cat: it does whatever it wants, whenever it wants, and rarely ever at the right time.
  • If you lie to the computer, it will get you.
  • There is no programming language, no matter how structured, that will prevent programmers from making bad programs.
    • Larry Flon (1975) "On research in structured programming". SIGPLAN Not., 10(10), pp.16–17
  • If I ask another professor what he teaches in the introductory programming course, whether he answers proudly "Pascal" or diffidently "FORTRAN," I know that he is teaching a grammar, a set of semantic rules, and some finished algorithms, leaving the students to discover, on their own, some process of design.
  • 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.
  • [This] reminds me of a quotation from somebody that, whenever he tried to explain the logical structure of a programming language to a programmer, it was like a cat trying to explain to a fish what it feels like to be wet.
  • To me programming is more than an important practical art. It is also a gigantic undertaking in the foundations of knowledge.
    • Grace Hopper, quoted in Management and the Computer of the Future (1962) by Sloan School of Management, p. 277
  • Programming: when the ideas turn into the real things.
  • 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.
  • Premature optimization is the root of all evil.
    • Donald Knuth, "Structured Programming with Goto Statements". Computing Surveys 6:4 (December 1974), pp. 261–301, §1.
    • Premature optimization is the root of all evil (or at least most of it) in programming.
    • Knuth refers to this as "Hoare's Dictum" 15 years later in "The Errors of Tex", Software—Practice & Experience 19:7 (July 1989), pp. 607–685. However, the attribution to C. A. R. Hoare is doubtful.[2]
      • All three of these papers are reprinted in Knuth, Literate Programming, 1992, Center for the Study of Language and Information ISBN 0937073806
  • The most important thing in a programming language is the name. A language will not succeed without a good name. I have recently invented a very good name, and now I am looking for a suitable language.
  • "Present-day computers are designed primarily to solve preformulated problems or to process data according to predetermined procedures. The course of the computation may be conditional upon results obtained during the computation, but all the alternatives must be foreseen in advance. ... The requirement for preformulation or predetermination is sometimes no great disadvantage. It is often said that programming for a computing machine forces one to think clearly, that it disciplines the thought process. If the user can think his problem through in advance, symbiotic association with a computing machine is not necessary.
    • J. C. R. Licklider (1960) Man-Computer Symbiosis |journal=Transactions on Human Factors in Electronic
  • One in a million is next Tuesday.
  • He who hasn't hacked assembly language as a youth has no heart. He who does as an adult has no brain.
    • John Moore [citation needed], 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."
  • Languages shape the way we think, or don't.
    • Erik Naggum [3]
  • 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.
  • The best book on programming for the layman is Alice in Wonderland, but that's because it's the best book on anything for the layman.
  • Computer Science is embarrassed by the computer.
    • Alan Perlis, "Epigrams on Programming"
  • Prolonged contact with the computer turns mathematicians into clerks and vice versa.
    • Alan Perlis, "Epigrams on Programming"
  • Structured Programming supports the law of the excluded muddle.
    • Alan Perlis, "Epigrams on Programming"
  • There are two ways to write error-free programs; only the third one works.
    • Alan Perlis, "Epigrams on Programming"
  • Software and cathedrals are much the same – first we build them, then we pray.
    • Sam Redwine [Proceedings of the 4th International Software Process Workshop, Moretonhampstead, Devon, U.K., 11–13 May 1988, IEEE Computer Society]
  • Why bother with subroutines when you can type fast?
  • 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.
  • Anyone even peripherally involved with computers agrees that object-oriented programming (OOP) is the wave of the future. Maybe one in 50 of them has actually tried to use OOP – which has a lot to do with its popularity.
    • Steve Steinberg, "Hype List", Wired, Vol. 1, No. 1, Mar/Apr 1993,
  • The three chief virtues of a programmer are: Laziness, Impatience and Hubris.
    • Larry Wall – from the book Programming in Perl, Preface, Page xxi
  • One day my daughter came in, looked over my shoulder at some Perl 4 code, and said, "What is that, swearing?"
    • Larry Wall [4]
  • Zawinski's Law: Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.
    • Jamie Zawinski (who called it the "Law of Software Envelopment") [citation needed]
  • There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies.
    • C.A.R. Hoare
  • Asking for efficiency and adaptability in the same program is like asking for a beautiful and modest wife. Although beauty and modesty have been known to occur in the same woman, we'll probably have to settle for one or the other. At least that's better than neither.
  • Weinberg's Second Law: If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization.
    • Gerald Weinberg cited in: Murali Chemuturi (2010) Mastering Software Quality Assurance: Best Practices, Tools and Technique for Software Developers. p.ix
  • The main activity of programming is not the origination of new independent programs, but in the integration, modification, and explanation of existing ones.
    • Terry Winograd (1991) "Beyond Programming Languages", in Artificial intelligence & software engineering, ed. Derek Partridge, p. 317
  • When someone says: "I want a programming language in which I need only say what I wish done", give him a lollipop.
    • Alan J. Perlis

DebuggingEdit

  • 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
  • Much to the surprise of the builders of the first digital computers, programs written for them usually did not work.
    • Rodney Brooks, Programming in Common Lisp, Wiley, 1985, p. 94
  • 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.
  • 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.
  • From then on, when anything went wrong with a computer, we said it had bugs in it.
    • RADM Grace Hopper, on the removal of a 2-inch-long moth from the Harvard Mark I experimental computer at Harvard in August 1945, as quoted in Time (16 April 1984)
  • 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
  • Beware of bugs in the above code; I have only proved it correct, not tried it.
  • A documented bug is not a bug; it is a feature.
  • 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.

See alsoEdit

External linksEdit

Wikipedia
Wikipedia has an article about:
Wiktionary-logo-en.svg
Look up programming in Wiktionary, the free dictionary