Fortune Cookies -- Computer Science


"Integration testing" is something you tell the customer you're doing.

Dan Drake


"Virtual" means never knowing where your next byte is coming from.


...speed is a virtue, but we have finally reached the point of computational affluence where other things are more important.

Dan Ingalls


...the best way to prepare [to be a programmer] is to write programs, and to study great programs that other people have written. In my case, I went to the garbage cans at the Computer Science Center and fished out listings of their operating system.

Bill Gates


...the harm was done: the topic became known as "computer science"---which, actually, is like referring to surgery as "knife science"---and it was firmly implanted in people's minds that computing science is about machines and their peripheral equipment.

Edsgar Dijkstra


...you have to go back to the very early 60s to find [mainframe] operating systems that are designed as poorly as the ones on micros.

Alan Kay, in 1985


Proof Techniques

1) Proof by referral to non-existent authorities
2) Reduction ad nauseam
3) Proof by assignment
4) Method of least astonishment
5) Proof by handwaving


More Proof Techniques

6) Proof by intimidation
7) Method of deferral until later in the course
8) Proof by reduction to a sequence of unrelated lemmas
9) Method of convergent irrelevancies


640k ought to be enough for anybody.

Bill Gates, 1981


A 'hacker' is any person who derives joy from discovering ways to circumvent limitations.

Robert Bickford


A computer lets you make more mistakes faster than any invention in human history --- with the possible exceptions of handguns and tequila.

Mitch Ratcliffe


Greer's Third Law

A computer program does what you tell it to do, not what you want it to do.


A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable.

Leslie Lamport


A good system can't have a weak command language.

Alan J. Perlis


A great programmer loves to look at his or her own code and go through it. Greatness is the notion of always wanting to simplify, always thinking you can make it better, and really loving to look at your own code.

Bill Gates, CEO of Microsoft


A logician trying to explain logic to a programmer is like a cat trying to explain to a fish what it's like to get wet.


A nerd is a guy who spends all day in front of his computer... A geek is a nerd that's proud of it.


A programming language is low level when its programs require attention to the irrelevant.

Alan J. Perlis


APL is a write-only language --- you can write it, but not read it.

Roy Kier


Adapting old programs to fit new machines usually means adapting new machines to behave like old ones.

Alan J. Perlis


Adding manpower to a late software project makes it later.

Fred Brooks


An approximate answer to the right problem is worth a good deal more than an exact answer to an approximate problem.

John Tukey


IBM Proposed Corporate Motto

An ounce of image is worth a pound of performance.


Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin.

John Von Neumann


Anyone who slaps a 'this page is best viewed with Browser X' label on a Web page appears to be yearning for the bad old days, before the Web, when you had very little chance of reading a document written on another computer, another word processor, or another network.

Tim Berners-Lee


Artificial intelligence, like fusion power, has been ten years away for the last 30 years.

Conrad Strack


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


At Group L, Stoffel oversees six first-rate programmers, a managerial challenge roughly comparable to herding cats.

The Washington Post Magazine, 9 June 9 1985


Brilliance is typically the act of an individual, but incredible stupidity can usually be traced to an organization.

Jon Bentley


Shaw's Principle

Build a system that even a fool can use, and only a fool will want to use it.


But what...is it good for?

Engineer at the Advanced Computing Systems Division of IBM commenting on the microchip, 1968.


Civilization advances by extending the number of important operations that we can perform without thinking about them.

Alfred North Whitehead


Come to think of it, there are already a million monkeys on a million typewriters, and Usenet is *nothing* like Shakespeare.

Blair Houghton


Computer system analysis is like child-rearing; you can do grievous damage, but you cannot ensure success.

Tom DeMarco


Computers are useless. They can only give you answers.

Pablo Picasso (1881-1973)


Computers in the future may weigh no more than 15 tons.

"Popular Mechanics," forecasting the relentless march of science, 1949


Computers save time the way kudzu prevents soil erosion.

Al Castanoli


Counting in binary is just like counting in decimal if you are all thumbs.

Glaser and Way


Counting in octal is just like counting in decimal, if you don't use your thumbs.

Tom Lehrer


A Thinking Man's Creed for Crypto

Cryptography is like literacy in the Dark Ages. Infinitely potent, for good and ill... yet basically an intellectual construct, an idea, which by its nature will resist efforts to restrict it to bureaucrats and others who deem only themselves worthy of such privilege.

Vin McLellan


DOS computers manufactured by companies such as IBM, Compaq, Tandy, and millions of others are by far the most popular, with about 70 million machines in use worldwide. Macintosh fans, on the other hand, may note that cockroaches are far more numerous than humans, and that numbers alone do not denote a higher life form.

New York Times, November 26, 1991


Death has come to our windows.

Jeremiah 9:21
(undoubtedly a Biblical reference to a Microsoft product!)


Developing on IBM mainframes is very, very difficult. They're hard to use. The operating system is extremely cumbersome and very difficult to do anything with. They don't have any tools for the programmer.

Don Nelson, Chairman, Codasyl COBOL Committee


Digital is to analog as steps are to ramps.


Documentation is like term insurance: It satisfies because almost no one who subscribes to it depends on its benefits.

Alan J. Perlis


Don't have good ideas if you aren't willing to be responsible for them.

Alan J. Perlis


Computer terminology

Easy to learn = hard to use.
Easy to use = hard to learn.
Easy to learn and use = won't do what you want it to.
Powerful = hard to learn and use.
Menu-driven = easy to learn.

Stephen Manes


Einstein argued that there must be simplified explanations of nature, because God is not capricious or arbitrary. No such faith comforts the software engineer.

Fred Brooks


Every program has at least one bug and can be shortened by at least one instruction --- from which, by induction, one can deduce that every program can be reduced to one instruction which doesn't work.


Every tool carries with it the spirit by which it was created.

Werner Heisenberg


FORTRAN, "the infantile disorder", by now nearly 20 years old, is hopelessly inadequate for whatever computer application you have in mind today: it is now too clumsy, too risky, and too expensive to use.

Edsgar W. Dijkstra, writing in the 70's


Give a man a fish,
      and he will eat for a day;

Teach a man to fish,
      and he will eat for a lifetime.

The moral? READ THE MANUAL!

Sign on a computer system consultant's desk


Has everyone noticed that all the letters of the word "database" are typed with the left hand? Now the layout of the QWERTYUIOP typewriter keyboard was designed, among other things, to facilitate the even use of both hands. It follows, therefore, that writing about databases is not only unnatural, but a lot harder than it appears.


I can always spot a programmer who has only worked on one architecture. He or she looks on the basic data types of that machine as God-given. The same goes for how the system names files, how it represents lines of text, and dozens of other arbitrary design decisions. There is a level of abstract thinking that comes only from writing code that is intended to be portable across architectures.

P.J.Plauger


I have always wished that my computer would be as easy to use as my telephone. My wish has come true. I no longer know how to use my telephone.

Bjarne Stroustrup, designer of C++ (1950- )


I have never seen anything fill up a vacuum so fast and still suck.

Rob Pike, commenting on the X Window System


I have traveled the length and breadth of this country and talked with the best people, and I can assure you that data processing is a fad that won't last out the year.

Editor in charge of business books for Prentice Hall, 1957


I recognize that a class of criminals and juvenile delinquents has taken to calling themselves 'hackers', but I consider them irrelevant to the true meaning of the word; just as the Mafia calls themselves 'businessmen' but nobody pays that fact any attention.

Robert Bickford


I suspect that the more precisely you measure something, the less important it really is.

Daniel McCracken


I think there is a world market for maybe five computers.

Thomas Watson, chairman of IBM, 1943


I'd rather write programs to write programs than write programs.

Dick Sites, DEC


IBM is not a necessary evil. IBM is not necessary.

Ted Nelson


IBM: It may be slow, but it's hard to use.

Andrew Tannenbaum


If I have not seen as far as others, it is because giants were standing on my shoulders.

Hal Abelson


Weinberg's Second Law

If builders built buildings the way programmers write programs, then the first woodpecker that came along would destroy civilization.


If it weren't for C, we'd be writing programs in BASI, PASAL, and OBOL.


What is this 'Virtual' stuff?

If it's there and you can see it --- it's real.

If it's not there and you can see it --- it's virtual.

If it's there and you can't see it --- it's transparent.

If it's not there and you can't see it --- you erased it!


If the designers of X Windows built cars, there would be no fewer than five steering wheels hidden about the cockpit, none of which follow the same principles --- but you'd be able to shift gears with your car stereo. Useful feature, that.


If you were plowing a field, which would you rather use? Two strong oxen or 1024 chickens?

Seymour Cray


If you don't have a good system, make sure you get good users.


If you have a procedure with ten parameters, you probably missed some.

Alan J. Perlis


Consultant's Creed

If you think *I'm* expensive, wait until you hire an amateur.


If you were plowing a field, which would you rather use? Two strong oxen or 1024 chickens?

Seymour Cray


If your computer speaks English, it was probably made in Japan.

Alan J. Perlis


If you're building something and you have a tech writer trying to document it, and the tech writer walks into your office and says, "I don't know how to describe this," it means one of two things. Either you've got a really stupid tech writer who you should fire. Or much more likely, you've got a bad piece of design and you ought to rethink it. You have to rethink, because an API that isn't comprehensible isn't usable.

James Gosling


In addition to prototyping, Dan put together a reference card for users. If we couldn't figure out how to explain a feature on the reference card we would change the program. The original method for copying formulas was too complicated so we just changed the design rather than try to explain it.

Bob Frankston, author (with Dan Bricklin) of VisiCalc


In fact, you can throw away the last three syllables of 'superhighway'. It's a soup. Call it Information Soup and we're getting somewhere

Charles S. Murray


In headlines today, the dreaded killfile virus spread across the country adding 'aol.com' to people's Usenet kill files everywhere. The programmer of the virus still remains anonymous, but has been nominated several times for a Nobel peace prize.

Mark Atkinson


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.

Edsgar W. Dijkstra


Increasingly, people seem to misinterpret complexity as sophistication, which is baffling---the incomprehensible should cause suspicion rather than admiration. Possibly this trend results from a mistaken belief that using a somewhat mysterious device confers an aura of power on the user.

Niklaus Wirth, inventor of the Pascal language


Indeed, it would not be an exaggeration to describe the history of the computer industry for the past decade as a massive attempt to keep up with Apple.

Byte magazine, December 1994


Information's pretty thin stuff unless mixed with experience.

Clarence Day


Inside every large program is a small program struggling to get out.

C. A. R. Hoare


It goes against the grain of modern education to teach children to program. What fun is there in making plans, acquiring discipline in organizing thoughts, devoting attention to detail, and learning to be self-critical?

Alan J. Perlis


It is easier to write an incorrect program than understand a correct one.

Alan J. Perlis


It is impossible to make anything foolproof, because fools are so ingenious.


It is impossible to sharpen a pencil with a blunt axe. It is equally vain to try to do it with ten blunt axes instead.

Edsgar W. Dijkstra


It is not possible to simultaneously understand and appreciate the Intel architecture.

Ben Scott


It is not the computer's fault that Maxwell's equations are not adequate to design the electric motor.

Alan J. Perlis


It is practically impossible to teach good programming to students that have had a prior exposure to BASIC; as potential programmers they are mentally mutilated beyond hope of regeneration.

Edsgar W. Dijkstra


It is professionally unacceptable to write a program that does something out of control merely because a naive (or malicious) customer contrives to type input at it that is out of the ordinary.

P.J.Plauger


It occurred to me a while ago that Unix is much like the U.S. Government:

A long time ago, a few brilliant men created a system that empowered its users, gave them freedom, and provided a few essential services. Now it is old, slow, easily corrupted, overly restrictive, too large and confusing for anyone to understand, plagued with inconsistencies, and run by men who only care about money.

lee@puck.mport.com


Junior programmers create simple solutions to simple problems. Senior programmers create complex solutions to complex problems. Great programmers find simple solutions to complex problems. The code written by topnotch programmers may appear obvious, once it is finished, but it is vastly more difficult to create.

Charles Connell


Knowing what to optimize matters as much as knowing how to optimize. Otherwise, you'll optimize the wrong thing, and end up with really fast slow code.

Michael Abrash


Linux is free only if your time has no value.

Jamie Zawinski


Logic is a system whereby one may go wrong with confidence.

Charles Kettering


MS-DOS is the OS/360 of the 1980s.

Hal W. Hardenbergh in 1985


Many years ago, IBM's customer base insisted that IBM retain its old familiar operating systems. Those customers today suffer from obsolete, clumsy, inefficient, and troublesome software that is truly laughable by today's standards.

John R. Culleton


Measuring software productivity by lines of code is like measuring progress on an airplane by how much it weighs.

Bill Gates


Most of the VAX instructions are in microcode, but HALT and NO-OP are in hardware for efficiency.


My experience trying to "sell" the concepts of swarm intelligence to the commercial world is that managers would rather live with a problem they can't solve than with a solution they don't fully understand or control.

Eric Bonabeau


Gray's Law of Programming

N+1 trivial tasks are expected to be accomplished in the same time as N trivial tasks.


Computer Acquisition Policy

Never accept second best when you can get third best for only twice the price.


Steinbach's Guideline for Systems Programmers

Never test for an error condition you don't know how to handle.


Never underestimate the bandwidth of a station wagon full of tapes hurtling down the highway

Andrew S. Tanenbaum


Petreley's First Law of Computer Journalism

No technology exists until Microsoft invents it.

Nicholas Petreley


Of course, unless one has a theory, one cannot expect much help from a computer (unless _it_ has a theory)...

Marvin Minsky


Oh, boy, virtual memory! Now I'm gonna make myself a really *big* RAMdisk!


One can't proceed from the informal to the formal by formal means.

Alan J. Perlis


One man's constant is another man's variable.

Alan J. Perlis


One of my most productive days was throwing away 1000 lines of code.

Ken Thompson


One of the chief triumphs of modern mathematics consists in having discovered what mathematics really is.

Bertrand Russell, 1901


One of the other great ironies of the early 21st Century is that it is trivial for secretaries to put cubicle floorplans in their documents, but nearly impossible for programmers to put class diagrams in code.

Gregory V. Wilson


Overall, OS/2's problems fall into two categories: IBM and Microsoft.

Jean-Louis Gassee


PROGRAM n. A magic spell cast over a computer allowing it to turn one's input into error messages. tr.v. To engage in a pastime similar to banging one's head against a wall, but with fewer opportunities for reward.


Perhaps there should be a new 'quantum' datatype; you would be able to take its address or value, but not both simultaneously.

Michael Shields (in comp.std.c++)


Profanity is the language all programmers know best.


Programmers are tools for converting caffeine into code.


Programming is like sex: One mistake and you're providing support for a lifetime.


Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians.

Edsgar W. Dijkstra


Prolonged contact with the computer turns mathematicians into clerks and vice versa.

Alan J. Perlis


Q: How many Microsoft programmers does it take to change a light bulb?

A: None. They don't bother with that; they just declare darkness a standard.


Q: How many software engineers does it take to change a lightbulb?

A: None; it's a hardware problem.


Restrictive, centralized control of personal computer use results in the exact problems this control is intended to prevent: computers lying idle or underutilized on the desks of unmotivated, untrained, unsupported workers.

J.E.Fawcette of InfoWorld


Science is supposedly the method by which we stand on the shoulders of those who came before us. In computer science, we all are standing on each others' feet.

G. Popek


Consultant's Creed

Sell a man a fish and he will eat for a day and come back tomorrow to buy another one from you. Teach a man to fish and your consulting company will be out of business.

Dan Drake


So we went to Atari and said, "Hey, we've got this amazing thing, even built with some of your parts, and what do you think about funding us? Or we'll give it to you. We just want to do it. Pay our salary, we'll come work for you." And they said, "No." So then we went to Hewlett-Packard, and they said, "Hey, we don't need you; you haven't got through college yet."

Apple Computer founder Steve Jobs on attempts to get Atari and HP interested in his and Steve Wozniak's personal computer.


Software entities are more complex for their size than perhaps any other human construct because no two parts are alike. If they are, we make the two similar parts into a subroutine --- open or closed. In this respect, software systems differ profoundly from computers, buildings, or automobiles, where repeated elements abound.

Fred Brooks


Software is like entropy. It is difficult to grasp, weighs nothing, and obeys the second law of thermodynamics; i.e., it always increases.

Norman R. Augustine


Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.

Jamie Zawinski


Sufficiently advanced cluelessness is indistinguishable from malice.

Alex Martelli


Systems programmers are the high priests of a low cult.

B. S. Barton, 1967


The cheapest and fastest parts of a system are those that don't exist.

Gordon Bell of DEC


The day Microsoft creates a product that doesn't suck is the day they make vacuum cleaners.


The human race will decree from time to time: "There is something at which it is absolutely forbidden to laugh."

Nietzche on C++


The limits of my language mean the limits of my world.

Ludwig Wittgenstein


The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair.

Douglas Adams


The meta-Turing test counts a thing as intelligent if it seeks to apply Turing tests to objects of its own creation.


The practical scientist is trying to solve tomorrow's problem with yesterday's computer; the computer scientist...often has it the other way around.

William H. Press


The purpose of software engineering is to control complexity, not to create it.

Pamela Zave


The question of whether a computer can think is no more interesting than the question of whether a submarine can swim.

Edsgar W. Dijkstra


The stored-program digital computer has three major attributes: it is fast, it is accurate, and it is stupid. The first two attributes are often used to disguise the third.

P.J.Plauger


The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence.

Edsgar W. Dijkstra


The use of anthropomorphic terminology when dealing with computing systems is a symptom of professional immaturity.

Edsgar W. Dijkstra


There are many reasons why Apple 'does poorly vis a vis Microsoft'. Most of them have nothing to do with technology. One big reason is that people are stupid, easily fooled, and seem to be extraordinarily willing to spend their money on inferior products. This is not something unique to the computer industry.

John Norstad (author of Disinfectant)


There are ten kinds of people in world: those who understand binary, and those who don't.


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


There are two ways to write error-free programs; only the third one works.

Alan J. Perlis


There is no reason anyone would want a computer in their home.

Ken Olson, president, chairman and founder of Digital Equipment Corp, 1977


Those who do not understand Unix are condemned to reinvent it, poorly.

Henry Spencer


To understand recursion, you must first understand recursion.


Trying to outsmart a compiler defeats much of the purpose of using one.

Kernighan & Plauger, "The Elements of Programming Style"


Unix *is* user-friendly; it's just picky about its friends.


We all live in a yellow subroutine.


We have arrived at the megabyte millenium, using our sophisticated worldwide communications system to talk dirty to strangers.

Ellen Goodman, The Boston Globe


Smith's Test for Artifical Life

When animal-rights activists and right-to-life protesters are marching outside your laboratory, then you know you've definitely made progress in your artificial life research.

Donald A. Smith


When cryptography is outlawed, bayl bhgynjf jvyy unir cevinpl.


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


Whenever two programmers meet to criticize their programs, both are silent.

Alan J. Perlis


Who can afford to do professional work for nothing? What hobbyist can put three man-years into programming, finding all bugs, documenting his product, and distribute it for free?

Bill Gates, 1976


Why does my UPS have an ON/OFF switch?


Windows95: It's like upgrading from Reagan to Bush.

Andy G Ihnatko


Writing a new OS only for the 386 in 1991 gets you your second F for this term.

Prof. Andrew S. Tanenbaum (author of Minix) in a newsgroup posting to Linus Torvalds (author of Linux)


Writing a program is nothing but debugging a blank page.

An anonymous but frustrated Stanford programmer


X Windows n. A system for displaying pixels along the X-axis using xlib calls. Two-dimensional displays require the addition of ylib.

Stan Kelly-Bootle


You can identify members of the Mandelbrot Set by beards, glasses, computers, and jugs of real ale.

Charlie Stross


You don't need a great product today to be successful, just a good product. Marketing always beats technology.

Ron Ricci, Cunningham Communications


How to tell you've been hanging around computers for too long

You remember when the documentation was a looseleaf binder that you could tuck under your arm, and it took a forklift to move the computer.


You shouldn't anthropomorphize computers; they don't like it.


You think you know when you learn, are more sure when you can write, even more when you can teach, but certain when you can program.

Alan J. Perlis


Choose another aphorism collection