# Programming

Computer programming (often simply programming or informally, 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 quotes

* 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.
** Joshua Bloch, in an interview by Peter Seibel in Coders At Work book
* 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"
* Playing with pointers is like playing with fire. Fire is perhaps the most important tool known to man. Carefully used, fire brings enormous benefits; but when fire gets out of control, disaster strikes.
** John Barnes, Programming in Ada 2012, Cambridge University Press, 2014, p. 189
* 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.
** Fred Brooks (1975) The Mythical Man-Month: Essays on Software Engineering Page 7
* And programming computers was so fascinating. You create your own little universe, and then it does what you tell it to do.
** Vint Cerf, a "father of the internet," quoted in "Your Life: Vinton Cerf" interview with David Frank in AARP Bulletin (December 2016, Vol. 57, No. 10, p. 28.)
* 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
* The effective exploitation of his powers of abstraction must be regarded as one of the most vital activities of a competent programmer.
** Edsger W. Dijkstra, The Humble Programmer, 1972 Turing Award Lecture, Communications of the ACM 15 (10), (October 1972): pp. 859–866
* Computers are man's attempt at designing a cat: it does whatever it wants, whenever it wants, and rarely ever at the right time.
** EMCIC, Keenspot Elf Life Forum, 2001-Apr-26
* If you lie to the computer, it will get you.
** Perry Farrar (1985) attributed to Farrar in John Bentley (1985) "Bumper-Sticker Computer Science". In: Communications of the ACM, Vol 28. Nr.9, p. 899
* 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.
** Robert Floyd (1979) "The Paradigms of Programming" 1978 Turing Award Lecture. Communications of the ACM Vol 22 (8) p. 455–460
* 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.
** Mark Gibbs
* [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.
** Saul Gorn, quoted by Julien Green in Microprogramming, Emulators and Programming languages, Communications of the ACM, Vol. 9, No. 3 (March 1966), pp. 230-232
* 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
* 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.
** Maciej Kaczmarek
* 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, in ACM Queue A Conversation with Alan Kay Vol. 2, No. 9 - Dec/Jan 2004-2005
* 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.
*** Variant in Computer Programming as an Art, 1974 Turing Award Lecture, Communications of the ACM 17:12 (December 1974), pp. 667–673
** 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.
*** 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.
** Donald Knuth (1938–)
* "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.
** Gordon Letwin (architect for DOS 4)
* 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."
* Languages shape the way we think, or don't.
** Erik Naggum
* 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#
* 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.
** Alan Perlis, "Epigrams on Programming", ACM SIGPLAN Notices 17 (9), September 1982, pp. 7–13
* 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"
* 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
* 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?
** Vaughn Rokosz
* 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.
** Blake Ross
* Real Programmers always confuse Christmas and Halloween because Oct31 == Dec25.
** Andrew Rutherford
* Real programmers don't comment their code. If it was hard to write it should be hard to understand.
** Appeared in "Real Programmers Don't Use Pascal", but may or may not have been in existence beforehand.
* 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,
* Don't get suckered in by the comments … they can be terribly misleading.
** Dave Storer
* 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
* 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
** Previously attributed to Dennis Hall at the Lawrence Berkeley Labs, in Clifford Stoll's "The Cuckoo's Egg" (1989), p. 89. "If people built houses the way we write programs, the first woodpecker would wipe out civilization."
* 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.
** Gerald M. Weinberg, The Psychology of Computer Programming (1971), Chapter 2, page 22
* All problems in computer science can be solved by another level of indirection.
** Attributed to David Wheeler in Diomidis Spinellis, "Another Level of Indirection", Beautiful Code (2007), ed. Andrew Oram and Greg Wilson, Section 17.6
** … But that usually will create another problem.
*** (Less quoted second line)
* 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
* 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")
* If you are not willing to put a fragment of your soul into the code, don’t program. Do pursue a different path instead…
** Dmitry Galuscenko (2001), in Story of One Byte, page 15

### Clive Thompson, “The Secret History of Women in Coding”, The New York Times, (Feb. 13, 2019)

* It might seem strange now that they were happy to take on a random applicant with absolutely no experience in computer programming. But in those days, almost nobody had any experience writing code. The discipline did not yet really exist; there were vanishingly few college courses in it, and no majors. (Stanford, for example, didn’t create a computer-science department until 1965.) So instead, institutions that needed programmers just used aptitude tests to evaluate applicants’ ability to think logically.
* Almost 200 years ago, the first person to be what we would now call a coder was, in fact, a woman: Lady Ada Lovelace. As a young mathematician in England in 1833, she met Charles Babbage, an inventor who was struggling to design what he called the Analytical Engine, which would be made of metal gears and able to execute if/then commands and store information in memory. Enthralled, Lovelace grasped the enormous potential of a device like this. A computer that could modify its own instructions and memory could be far more than a rote calculator, she realized. To prove it, Lovelace wrote what is often regarded as the first computer program in history, an algorithm with which the Analytical Engine would calculate the Bernoulli sequence of numbers. (She wasn’t shy about her accomplishments: “That brain of mine is something more than merely mortal; as time will show,” she once wrote.)
* [A]s programming enjoyed its first burst of cultural attention, so many students were racing to enroll in computer science that universities ran into a supply problem: They didn’t have enough professors to teach everyone. Some added hurdles, courses that students had to pass before they could be accepted into the computer-science major. Punishing workloads and classes that covered the material at a lightning pace weeded out those who didn’t get it immediately. All this fostered an environment in which the students mostly likely to get through were those who had already been exposed to coding — young men, mostly. “Every time the field has instituted these filters on the front end, that’s had the effect of reducing the participation of women in particular,” says Eric S. Roberts, a longtime professor of computer science, now at Reed College, who first studied this problem and called it the “capacity crisis.”
* In 1991, Ellen Spertus, now a computer scientist at Mills College, published a report on women’s experiences in programming classes. She cataloged a landscape populated by men who snickered about the presumed inferiority of women and by professors who told female students that they were “far too pretty” to be studying electrical engineering; when some men at Carnegie Mellon were asked to stop using pictures of naked women as desktop wallpaper on their computers, they angrily complained that it was censorship of the sort practiced by “the Nazis or the Ayatollah Khomeini.” As programming was shutting its doors to women in academia, a similar transformation was taking place in corporate America. The emergence of what would be called “culture fit” was changing the who, and the why, of the hiring process. Managers began picking coders less on the basis of aptitude and more on how well they fit a personality type: the acerbic, aloof male nerd. The shift actually began far earlier, back in the late ’60s, when managers recognized that male coders shared a growing tendency to be antisocial isolates, lording their arcane technical expertise over that of their bosses. Programmers were “often egocentric, slightly neurotic,” as Richard Brandon, a well-known computer-industry analyst, put it in an address at a 1968 conference, adding that “the incidence of beards, sandals and other symptoms of rugged individualism or nonconformity are notably greater among this demographic.” In addition to testing for logical thinking, as in Mary Allen Wilkes’s day, companies began using personality tests to select specifically for these sorts of caustic loner qualities. “These became very powerful narratives,” says Nathan Ensmenger, a professor of informatics at Indiana University, who has studied this transition. The hunt for that personality type cut women out. Managers might shrug and accept a man who was unkempt, unshaven and surly, but they wouldn’t tolerate a woman who behaved the same way. Coding increasingly required late nights, but managers claimed that it was too unsafe to have women working into the wee hours, so they forbid them to stay late with the men.

## See also

* Computer science
* Programming languages
* Debugging

## External links

* Epigrams on Programming by Alan Perlis
* Programming Quotes - Twitter
* Programming Quotes - Mastodon