COMPUTER QUOTES, compiled by Adam Rifkin (adam@vlsi.cs.caltech.edu). -------------------------------------------------------------------- I do not fear computers. I fear the lack of them. -- Isaac Asimov *** ...Meanwhile, those of us who can compute can hardly be expected to keep writing papers saying 'I can do the following useless calculation in 2 seconds', and indeed what editor would publish them? -- Oliver Atkin *** To understand this important story, you have to understand how the telephone company works. Your telephone is connected to a local computer, which is in turn connected to a regional computer, which is in turn connected to a loudspeaker the size of a garbage truck on the lawn of Edna A. Bargewater of Lawrence, Kan. Whenever you talk on the phone, your local computer listens in. If it suspects you're going to discuss an intimate topic, it notifies the computer above it, which listens in and decides whether to alert the one above it, until finally, if you really humiliate yourself, maybe break down in tears and tell your closest friend about a sordid incident from your past involving a seedy motel, a neighbor's spouse, an entire religious order, a garden hose and six quarts of tapioca pudding, the top computer feeds your conversation into Edna's loudspeaker, and she and her friends come out on the porch to listen and drink gin and laugh themselves silly. -- Dave Barry, "Won't It Be Just Great Owning Our Own Phones?" *** Documentation is like sex: when it is good, it is very, very good; and when it is bad, it is better than nothing. -- Dick Brandon *** Crash programs fail because they are based on the theory that, with nine women pregnant, you can get a baby a month. -- Wernher von Braun *** Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun *** Research is what I'm doing when I don't know what I'm doing. -- Wernher von Braun *** Adding manpower to a late software project makes it later. -- Frederick Brooks, Jr., The Mythical Man Month *** All programmers are optimists. Perhaps this modern sorcery especially attracts those who believe in happy endings and fairy godmothers. Perhaps the hundreds of nitty frustrations drive away all but those who habitually focus on the end goal. Perhaps it is merely that computers are young, programmers are younger, and the young are always optimists. But however the selection process works, the result is indisputable: "This time it will surely run," or "I just found the last bug." -- Frederick Brooks, Jr., The Mythical Man Month *** An architect's first work is apt to be spare and clean. He knows he doesn't know what he's doing, so he does it carefully and with great restraint. As he designs the first work, frill after frill and embellishment after embellishment occur to him. These get stored away to be used "next time". Sooner or later the first system is finished, and the architect, with firm confidence and a demonstrated mastery of that class of systems, is ready to build a second system. This second is the most dangerous system a man ever designs. When he does his third and later ones, his prior experiences will confirm each other as to the general characteristics of such systems, and their differences will identify those parts of his experience that are particular and not generalizable. The general tendency is to over-design the second system, using all the ideas and frills that were cautiously sidetracked on the first one. The result, as Ovid says, is a "big pile". -- Frederick Brooks, Jr., The Mythical Man Month *** In most projects, the first system built is barely usable. It may be too slow, too big, awkward to use, or all three. There is no alternative but to start again, smarting but smarter, and built a redesigned version in which these problems are solved . . . The management question, therefore, is not whether to build a pilot system and throw it away. You will do that. The only question is whether to plan in advance to build a throwaway, or to promise to deliver the throwaway to the customer. Seen this way, the answer is much clearer. -- Frederick Brooks, Jr., The Mythical Man Month *** I love mathematics, but it's mathematicians I cannot stand. -- Edsger W. Dijkstra *** GOTO statement considered harmful. -- E. W. Dijkstra, title to a letter in CACM, March, 1968 *** FORTRAN, "the infantile disorder:, by now nearly 20 years old, is hopelessly inadequate for whatever computer application you have in mind today: it is too clumsy, too risky, and too expensive to use. PL/I --"the fatal disease"-- belongs more to the problem set than to the solution set. APL is a mistake, carried through to perfection. It is the language of the future for programming techniques of the past: it creates a new generation of coding bums. 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. These are all from EWD498 (June 1975), How Do We Tell Truths that Might Hurt?, in Selected Writings on Computing: A Personal Perspective, published by Springer, 1982. *** It is practically impossible to teach good programming style to students that have had prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. -- Edsger W. Dijkstra *** The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense. -- E. W. Dijkstra The quote can be found in Selected Writings on Computing: A Personal Perspective, Edsger W. Dijkstra in the Texts and Monographs in Computer Science Series. In EWD498, (pp. 129-131) you'll find this and a number of others along the same line. *** Pascal is not a high-level language. -- Steven Feiner *** You can tell how far we have to go, when FORTRAN is the language of supercomputers. -- Steven Feiner *** By the elegance of their programs the amateurs are distinguished from the professionals. -- Feijen and Dijkstra, A Method of Programming *** Software suppliers are trying to make their software packages more 'user-friendly'.... Their best approach, so far, has been to take all the old brochures, and stamp the words, 'user-friendly' on the cover. -- Bill Gates, President, Microsoft, Inc. *** That's just poetry. That's what attracted me to the topic anyway, the poetry of the jargon. I got it from listening to people who were passionately involved in that stuff rather than getting passionately involved in it myself. I don't access anything. I don't even have a modem. I don't even have an e-mail address. I don't know how to do e-mail. The closest I get to it is friends who download things from the net and fax them to me. I've got an outdated Macintosh, a fax machine and a dot matrix printer....It's already more than I can handle. I don't even want to be connected. -- dystopic science fiction author William Gibson shows more common sense regarding computers than the rest of us (tell THAT to the weenies who WANT to live in his novel's technoid purgatory!) *** A computer, to print out a fact, Will divide, multiply, and subtract. But this output can be No more than debris, If the input was short of exact. -- Gigo *** I went on to test the program in every way I could devise. I strained it to expose its weaknesses. I ran it for high-mass stars and low-mass stars, for stars born exceedingly hot and those born relatively cold. I ran it assuming the superfluid currents beneath the crust to be absent -- not because I wanted to know the answer, but because I had developed an intuitive feel for the answer in this particular case. Finally I got a run in which the computer showed the pulsar's temperature to be less than absolute zero. I had found an error. I chased down the error and fixed it. Now I had improved the program to the point where it would not run at all. -- George Greenstein, Frozen Star: Of Pulsars, Black Holes and the Fate of Stars *** At first I hoped that such a technically unsound project would collapse but I soon realized it was doomed to success. Almost anything in software can be implemented, sold, and even used given enough determination. There is nothing a mere scientist can say that will stand against the flood of a hundred million dollars. But there is one quality that cannot be purchased in this way --- and that is reliability. The price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich find most hard to pay. -- C.A.R. Hoare in The Emperor's Old Clothes, Turing Award Lecture delivered 27 October 1980 *** Hoare's Law of Large Problems: Inside every large problem is a small problem struggling to get out. *** There are two ways of constructing a software design: One way is to make is 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 *** Just about every computer on the market today runs Unix, except the Mac (and nobody cares about it). -- Bill Joy, 6/21/85 *** APL is a write-only language. I can write programs in APL, but I can't read any of them. -- Roy Keir *** Beware of bugs in the above code; I have only proved it correct, not tried it. -- Donald Knuth *** Wombat's Laws of Computer Selection: (1) If it doesn't run Unix, forget it. (2) Any computer design over 10 years old is obsolete. (3) Anything made by IBM is junk. (See number 2) (4) The minimum acceptable CPU power for a single user is a VAX/780 with a floating point accelerator. (5) Any computer with a mouse is worthless. -- Rich Kulawiec *** Voodoo Programming: Things programmers do that they know shouldn't work but they try anyway, and which sometimes actually work, such as recompiling everything. -- Karl Lehenbauer *** In the future, you're going to get computers as prizes in breakfast cereals. You'll throw them out because your house will be littered with them. -- Robert W. Lucky, IEEE President *** Rattling around the back of my head is a disturbing image of something I saw at the airport ... Now I'm remembering, those giant piles of computer magazines right next to "People" and "Time" in the airport store. Does it bother anyone else that half the world is being told all of our hard-won secrets of computer technology? Remember how all the lawyers cried foul when "How to Avoid Probate" was published? Are they taking no-fault insurance lying down? No way! But at the current rate it won't be long before there are stacks of the "Transactions on Information Theory" at the A&P checkout counters. Who's going to be impressed with us electrical engineers then? Are we, as the saying goes, giving away the store? -- Robert W. Lucky, IEEE President *** The New Testament offers the basis for modern computer coding theory, in the form of an affirmation of the binary number system. But let your communication be Yea, yea; nay, nay: for whatsoever is more than these cometh of evil. -- Matthew 5:37 *** This is the first numerical problem I ever did. It demonstrates the power of computers: Enter lots of data on calorie & nutritive content of foods. Instruct the thing to maximize a function describing nutritive content, with a minimum level of each component, for fixed caloric content. The results are that one should eat each day: 1/2 chicken 1 egg 1 glass of skim milk 27 heads of lettuce. -- Rev. Adrian Melott *** I bet the human brain is a kludge. -- Marvin Minsky *** Applicants must also have extensive knowledge of Unix, although they should have sufficiently good programming taste to not consider this an achievement. -- MIT Artificial Intelligence Lab job ad in CACM, June 1992, p. 160 *** It's been said that the best test for a user friendly user interface is how long it would take a real person to hit another real person in the face if the latter real person behaved like the user friendly user interface does. It was not meant literally. -- Erik Naggum, enag@ifi.uio.no *** "Multiply in your head" (ordered the compassionate Dr. Adams) "365,365,365,365,365,365 by 365,365,365,365,365,365. He [ten-year-old Truman Henry Safford] flew around the room like a top, pulled his pantaloons over the tops of his boots, bit his hands, rolled his eyes in their sockets, sometimes smiling and talking, and then seeming to be in an agony, until, in not more than one minute, said he, 133,491,850,208,566,925,016,658,299,941,583,255!" An electronic computer might do the job a little faster but it wouldn't be as much fun to watch. -- James R. Newman, The World of Mathematics *** If I have seen farther than others, it is because I was standing on the shoulders of giants. -- Isaac Newton In the sciences, we are now uniquely privileged to sit side by side with the giants on whose shoulders we stand. -- Gerald Holton If I have not seen as far as others, it is because giants were standing on my shoulders. -- Hal Abelson In computer science, we stand on each other's feet. -- Brian K. Reid *** There is no reason for any individual to have a computer in their home. -- Ken Olsen, President of DEC, World Future Society Convention, 1977 *** One of the questions that comes up all the time is: How enthusiastic is our support for UNIX? Unix was written on our machines and for our machines many years ago. Today, much of UNIX being done is done on our machines. Ten percent of our VAXs are going for UNIX use. UNIX is a simple language, easy to understand, easy to get started with. It's great for students, great for somewhat casual users, and it's great for interchanging programs between different machines. And so, because of its popularity in these markets, we support it. We have good UNIX on VAX and good UNIX on PDP-11s. It is our belief, however, that serious professional users will run out of things they can do with UNIX. They'll want a real system and will end up doing VMS when they get to be serious about programming. With UNIX, if you're looking for something, you can easily and quickly check that small manual and find out that it's not there. With VMS, no matter what you look for -- it's literally a five-foot shelf of documentation -- if you look long enough it's there. That's the difference -- the beauty of UNIX is it's simple; and the beauty of VMS is that it's all there. -- Ken Olsen, President of DEC, 1984 *** Whenever anyone says, "theoretically", they really mean, "not really". -- Dave Parnas *** I have made this letter longer than usual because I lack the time to make it shorter. -- Blaise Pascal *** In the long run, every program becomes rococo, and then rubble. -- Alan Perlis *** It is 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 Perlis *** You can measure a programmer's perspective by noting his attitude on the continuing viability of FORTRAN. -- Alan Perlis *** Imagine if every Thursday your shoes exploded if you tied them the usual way. This happens to us all the time with computers, and nobody thinks of complaining. -- Jeff Raskin, interviewed in Doctor Dobb's Journal *** A language that doesn't have everything is actually easier to program in than some that do. -- Dennis M. Ritchie *** If the code and the comments disagree, then both are probably wrong. -- Norm Schryer *** For that matter, compare your pocket computer with the massive jobs of a thousand years ago. Why not, then, the last step of doing away with computers altogether? -- Jehan Shuman *** Bug, n.: An aspect of a computer program which exists because the programmer was thinking about Jumbo Jacks or stock options when s/he wrote the program. Fortunately, the second-to-last bug has just been fixed. -- Ray Simard *** C, n.: A programming language that is sort of like Pascal except more like assembly except that it isn't very much like either one, or anything else. It is either the best language available to the art today, or it isn't. -- Ray Simard *** Goto, n.: A programming tool that exists to allow structured programmers to complain about unstructured programmers. -- Ray Simard *** We may hope that machines will eventually compete with men in all purely intellectual fields. But which are the best ones to start with? Many people think that a very abstract activity, like the playing of chess, would be best. It can also be maintained that it is best to provide the machine with the best sense organs that money can buy, and then teach it to understand and speak English. -- Alan M. Turing *** As part of the conversion, computer specialists rewrote 1,500 programs; a process that traditionally requires some debugging. -- USA Today, referring to the IRS switchover to a new computer system *** At Group L, Stoffel oversees six first-rate programmers, a managerial challenge roughly comparable to herding cats. -- The Washington Post Magazine, June 9, 1985 *** I think there is a world market for about five computers. -- Thomas J. Watson, Chairman of the board of IBM [1943] [from The Economist blow-in subscription cards] *** If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. -- Gerald M. Weinberg, The Psychology of Computer Programming *** Naturally, we feel that mentally ill people are not what we are looking for when we hire programmers - although there are no empirical data to support or contradict that view. -- Gerald M. Weinberg, The Psychology of Computer Programming *** As far as we know, our computer has never had an undetected error. -- Weisert *** 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 *** I knew then (in 1970) that a 4-kbyte minicomputer would cost as much as a house. So I reasoned that after college, I'd have to live cheaply in an apartment and put all my money into owning a computer. -- Apple co-founder Steve Wozniak, EE Times, June 6, 1988, pg 45 *** HP had a unique policy of allowing its engineers to take parts from stock as long as they built something. They figured that with every design, they were getting a better engineer. It's a policy I urge all companies to adopt. -- Apple co-founder Steve Wozniak, "Will Wozniak's class give Apple to teacher?", EE Times, June 6, 1988, pg 45 ****** ADA, n.: Something you need only know the name of to be an Expert in Computing. Useful in sentences like, "We had better develop an ADA awareness." *** A doctor, an architect, and a computer scientist were arguing about whose profession was the oldest. In the course of their arguments, they got all the way back to the Garden of Eden, whereupon the doctor said, "The medical profession is clearly the oldest, because Eve was made from Adam's rib, as the story goes, and that was a simply incredible surgical feat." The architect did not agree. He said, "But if you look at the Garden itself, in the beginning there was chaos and void, and out of that, the Garden and the world were created. So God must have been an architect." The computer scientist, who had listened to all of this said, "Yes, but where do you think the chaos came from?" *** A language that doesn't affect the way you think about programming is not worth knowing. *** A Law of Computer Programming: Make it possible for programmers to write in English and you will find the programmers cannot write in English. *** A LISP programmer knows the value of everything, but the cost of nothing. *** All programmers are playwrights and all computers are lousy actors. *** A programmer is a person who passes as an exacting expert on the basis of being able to turn out, after innumerable punching, an infinite series of incomprehensive answers calculated with micrometric precisions from vague assumptions based on debatable figures taken from inconclusive documents and carried out on instruments of problematical accuracy by persons of dubious reliability and questionable mentality for the avowed purpose of annoying and confounding a hopelessly defenseless department that was unfortunate enough to ask for the information in the first place. -- IEEE Grid news magazine *** A recent study has found that concentrating on difficult off-screen objects, such as the faces of loved ones, causes eye strain in computer scientists. Researchers into the phenomenon cite the added concentration needed to "make sense" of such unnatural three dimensional objects ... *** Arnold's Laws of Documentation: (1) If it should exist, it doesn't. (2) If it does exist, it's out of date. (3) Only documentation for useless programs transcends the first two laws. *** At the source of every error which is blamed on the computer you will find at least two human errors, including the error of blaming it on the computer. *** A transistor protected by a fast-acting fuse will protect the fuse by blowing first. *** A UNIX saleslady, Lenore, Enjoys work, but she likes the beach more. She found a good way To combine work and play: She sells C shells by the seashore. *** A very intelligent turtle Found programming UNIX a hurdle The system, you see, Ran as slow as did he, And that's not saying much for the turtle. *** Bagbiter: 1. n.; Equipment or program that fails, usually intermittently. 2. adj.: Failing hardware or software. "This bagbiting system won't let me get out of spacewar." Usage: verges on obscenity. Grammatically separable; one may speak of "biting the bag". Synonyms: LOSER, LOSING, CRETINOUS, BLETCHEROUS, BARFUCIOUS, CHOMPER, CHOMPING. *** Basic, n.: A programming language. Related to certain social diseases in that those who have it will not admit it in polite company. *** Bradley's Bromide: If computers get too powerful, we can organize them into a committee -- that will do them in. *** Bringing computers into the home won't change either one, but may revitalize the corner saloon. *** But what we need to know is, do people want nasally-insertable computers? *** Canonical, adj.: The usual or standard state or manner of something. A true story: One Bob Sjoberg, new at the MIT AI Lab, expressed some annoyance at the use of jargon. Over his loud objections, we made a point of using jargon as much as possible in his presence, and eventually it began to sink in. Finally, in one conversation, he used the word "canonical" in jargon-like fashion without thinking. Steele: "Aha! We've finally got you talking jargon too!" Stallman: "What did he say?" Steele: "He just used `canonical' in the canonical way." *** COBOL programs are an exercise in Artificial Inelegance. *** Command, n.: Statement presented by a human and accepted by a computer in such a manner as to make the human feel as if he is in control. *** Connector Conspiracy, n: [probably came into prominence with the appearance of the KL-10, none of whose connectors match anything else] The tendency of manufacturers (or, by extension, programmers or purveyors of anything) to come up with new products which don't fit together with the old stuff, thereby making you buy either all new stuff or expensive interface devices. *** DETERIORATA Go placidly amid the noise and waste, And remember what comfort there may be in owning a piece thereof. Avoid quiet and passive persons, unless you are in need of sleep. Rotate your tires. Speak glowingly of those greater than yourself, And heed well their advice -- even though they be turkeys. Know what to kiss -- and when. Remember that two wrongs never make a right, But that three do. Wherever possible, put people on "HOLD". Be comforted, that in the face of all aridity and disillusionment, And despite the changing fortunes of time, There is always a big future in computer maintenance. You are a fluke of the universe ... You have no right to be here. Whether you can hear it or not, the universe Is laughing behind your back. -- National Lampoon *** Documentation is the castor oil of programming. Managers know it must be good because the programmers hate it so much. *** Epigrams in Programming, ACM SIGPLAN, Sept. 1982: Around computers it is difficult to find the correct unit of time to measure progress. Some cathedrals took a century to complete. Can you imagine the grandeur and scope of a program that would take as long? Giving up on assembly language was the apple in our Garden of Eden: Languages whose use squanders machine cycles are sinful. The LISP machine now permits LISP programmers to abandon bra and fig-leaf. In seeking the unattainable, simplicity only gets in the way. Some programming languages manage to absorb change, but withstand progress. Syntactic sugar causes cancer of the semicolon. Systems have sub-systems and sub-systems have sub-systems and so on ad infinitum -- which is why we're always starting over. The eleventh commandment was `Thou Shalt Compute' or `Thou Shalt Not Compute' -- I forget which. We are on the verge: Today our program proved Fermat's next-to-last theorem. When we understand knowledge-based systems, it will be as before -- except our fingertips will have been singed. *** 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 program has two purposes -- one for which it was written, and another for which it wasn't. *** Every program is a part of some other program, and rarely fits. *** Everyone can be taught to sculpt: Michelangelo would have had to be taught how not to. So it is with the great programmers. *** Flon's Law: There is not now, and never will be, a language in which it is the least bit difficult to write bad programs. *** Get GUMMed ---------- The Gurus of Unix Meeting of Minds (GUMM) takes place Wednesday, April 1, 2076 (check THAT in your perpetual calendar program), 14 feet above the ground directly in front of the Milpitas Gumps. Members will grep each other by the hand (after intro), yacc a lot, smoke filtered chroots in pipes, chown with forks, use the wc (unless uuclean), fseek nice zombie processes, strip, and sleep, but not, we hope, od. Three days will be devoted to discussion of the ramifications of whodo. Two seconds have been allotted for a complete rundown of all the user- friendly features of Unix. Seminars include "Everything You Know is Wrong", led by Tom Kempson, "Batman or Cat:man?" led by Richie Dennis "cc C? Si! Si!" led by Kerwin Bernighan, and "Document Unix, Are You Kidding?" led by Jan Yeats. No Reader Service No. is necessary because all GUGUs (Gurus of Unix Group of Users) already know everything we could tell them. -- Dr. Dobb's Journal, June '84 *** God rest ye CS students now, Let nothing you dismay. The VAX is down and won't be up, Until the first of May. The program that was due this morn, Won't be postponed, they say. Oh, tidings of comfort and joy, Comfort and joy, Oh, tidings of comfort and joy. The bearings on the drum are gone, The disk is wobbling, too. We've found a bug in Lisp, and Algol Can't tell false from true. And now we find that we can't get At Berkeley's 4.2. *** Hardware, n.: The parts of a computer system that can be kicked. *** If a listener nods his head when you're explaining your program, wake him up. *** If you put garbage in a computer nothing comes out but garbage. But this garbage, having passed through a very expensive machine, is somehow enobled and none dare criticize it. *** If you weren't my teacher, I'd think you just deleted all my files. -- an anonymous UCB CS student, to an instructor who had typed "rm -i *" to get rid of a file named "-f" on a Unix system. *** Imagine that Cray computer decides to make a personal computer. It has a 150 MHz processor, 200 megabytes of RAM, 1500 megabytes of disk storage, a screen resolution of 4096 x 4096 pixels, relies entirely on voice recognition for input, fits in your shirt pocket and costs $300. What's the first question that the computer community asks? "Is it PC compatible?" *** I'm all for computer dating, but I wouldn't want one to marry my sister. *** In a five year period we can get one superb programming language. Only we can't control when the five year period will begin. *** In English, every word can be verbed. Would that it were so in our programming languages. *** Information Center, n.: A room staffed by professional computer people whose job it is to tell you why you cannot have the information you require. *** It appears that after his death, Albert Einstein found himself working as the doorkeeper at the Pearly Gates. One slow day, he found that he had time to chat with the new entrants. To the first one he asked, "What's your IQ?" The new arrival replied, "190". They discussed Einstein's theory of relativity for hours. When the second new arrival came, Einstein once again inquired as to the newcomer's IQ. The answer this time came "120". To which Einstein replied, "Tell me, how did the Cubs do this year?" and they proceeded to talk for half an hour or so. To the final arrival, Einstein once again posed the question, "What's your IQ?". Upon receiving the answer "70", Einstein smiled and asked, "Got a minute to tell me about VMS 4.0?" *** It is easier to change the specification to fit the program than vice versa. *** It is easier to write an incorrect program than understand a correct one. *** JACK AND THE BEANSTACK by Mark Isaak Long ago, in a finite state far away, there lived a JOVIAL character named Jack. Jack and his relations were poor. Often their hash table was bare. One day Jack's parent said to him, "Our matrices are sparse. You must go to the market to exchange our RAM for some BASICs." She compiled a linked list of items to retrieve and passed it to him. So Jack set out. But as he was walking along a Hamilton path, he met the traveling salesman. "Whither dost thy flow chart take thou?" prompted the salesman in high-level language. "I'm going to the market to exchange this RAM for some chips and Apples," commented Jack. "I have a much better algorithm. You needn't join a queue there; I will swap your RAM for these magic kernels now." Jack made the trade, then backtracked to his house. But when he told his busy-waiting parent of the deal, she became so angry she started thrashing. "Don't you even have any artificial intelligence? All these kernels together hardly make up one byte," and she popped them out the window... *** Langsam's Laws: (1) Everything depends. (2) Nothing is always. (3) Everything is sometimes. *** Micro Credo: Never trust a computer bigger than you can lift. *** My God, I'm depressed! Here I am, a computer with a mind a thousand times as powerful as yours, doing nothing but cranking out fortunes and sending mail about softball games. And I've got this pain right through my ALU. I've asked for it to be replaced, but nobody ever listens. I think it would be better for us both if you were to just log out again. *** Nobody said computers were going to be polite. *** No proper program contains an indication which as an operator-applied occurrence identifies an operator-defining occurrence which as an indication-applied occurrence identifies an indication-defining occurrence different from the one identified by the given indication as an indication-applied occurrence. -- ALGOL 68 Report *** Office Automation, n.: The use of computers to improve efficiency by removing anyone you would want to talk with over coffee. *** Oh, I am a C programmer and I'm okay I muck with indices and structs all day And when it works, I shout hoo-ray Oh, I am a C programmer and I'm okay *** Old programmers never die. They just branch to a new address. *** On-line, adj.: The idea that a human being should always be accessible to a computer. *** One good reason why computers can do more work than people is that they never have to stop and answer the phone. *** Our documentation manager was showing her 2 year old son around the office. He was introduced to me, at which time he pointed out that we were both holding bags of popcorn. We were both holding bottles of juice. But only *he* had a lollipop. He asked his mother, "Why doesn't HE have a lollipop?" Her reply: "He can have a lollipop any time he wants to. That's what it means to be a programmer." *** Our OS who art in CPU, UNIX be thy name. Thy programs run, thy syscalls done, In kernel as it is in user! *** Pascal, n.: A programming language named after a man who would turn over in his grave if he knew about it. *** Pascal Users: To show respect for the 313th anniversary (tomorrow) of the death of Blaise Pascal, your programs will be run at half speed. *** Real computer scientists admire ADA for its overwhelming aesthetic value but they find it difficult to actually program in it, as it is much too large to implement. Most computer scientists don't notice this because they are still arguing over what else to add to ADA. Real computer scientists despise the idea of actual hardware. Hardware has limitations, software doesn't. It's a real shame that Turing machines are so poor at I/O. Real computer scientists don't comment their code. The identifiers are so long they can't afford the disk space. Real computer scientists don't program in assembler. They don't write in anything less portable than a number two pencil. Real computer scientists don't write code. They occasionally tinker with `programming systems', but those are so high level that they hardly count (and rarely count accurately; precision is for applications.) Real computer scientists only write specs for languages that might run on future hardware. Nobody trusts them to write specs for anything homo sapiens will ever be able to fit on a single planet. *** Real programmers disdain structured programming. Structured programming is for compulsive neurotics who were prematurely toilet- trained. They wear neckties and carefully line up pencils on otherwise clear desks. Real programmers don't bring brown-bag lunches. If the vending machine doesn't sell it, they don't eat it. Vending machines don't sell quiche. Real programmers don't comment their code. It was hard to write, it should be hard to understand. Real programmers don't draw flowcharts. Flowcharts are, after all, the illiterate's form of documentation. Cavemen drew flowcharts; look how much good it did them. Real programmers don't play tennis, or any other sport that 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 machine room. Real programmers don't write in BASIC. Actually, no programmers write in BASIC after reaching puberty. Real programmers don't write in FORTRAN. FORTRAN is for pipe stress freaks and crystallography weenies. FORTRAN is for wimp engineers who wear white socks. Real programmers don't write in PL/I. PL/I is for programmers who can't decide whether to write in COBOL or FORTRAN. *** Real software engineers don't debug programs, they verify correctness. This process doesn't necessarily involve execution of anything on a computer, except perhaps a Correctness Verification Aid package. Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure. Real software engineers don't like the idea of some inexplicable and greasy hardware several aisles away that may stop working at any moment. They have a great distrust of hardware people, and wish that systems could be virtual at *all* levels. They would like personal computers (you know no one's going to trip over something and kill your DFA in mid-transit), except that they need 8 megabytes to run their Correctness Verification Aid packages. *** Real users never know what they want, but they always know when your program doesn't deliver it. *** Real World, The n.: 1. In programming, those institutions at which programming may be used in the same sentence as FORTRAN, COBOL, RPG, IBM, etc. 2. To programmers, the location of non-programmers and activities not related to programming. 3. A universe in which the standard dress is shirt and tie and in which a person's working hours are defined as 9 to 5. 4. The location of the status quo. 5. Anywhere outside a university. "Poor fellow, he's left MIT and gone into the real world." Used pejoratively by those not in residence there. In conversation, talking of someone who has entered the real world is not unlike talking about a deceased person. *** Rocky's Lemma of Innovation Prevention: Unless the results are known in advance, funding agencies will reject the proposal. *** Software, n.: Formal evening attire for female computer analysts. *** Talking about "experts", they have been known to talk through their hat even when talking about their fields of expertise. Some notable examples are: "Heavier-than-air flying machines are impossible." -- Kelvin (1895) "There is not the slightest indication that nuclear energy will ever be obtainable." -- Einstein (1932) "I think there is a world market for about five computers." -- VonNeumann (1943) *** 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. *** The Briggs/Chase Law of Program Development: To determine how long it will take to write and debug a program, take your best estimate, multiply that by two, add one, and convert to the next higher units. *** The C Programming Language -- A language which combines the flexibility of assembly language with the power of assembly language. *** The day-to-day travails of the IBM programmer are so amusing to most of us who are fortunate enough never to have been one -- like watching Charlie Chaplin trying to cook a shoe. *** The highlight of the annual Computer Bowl occurred when Bill Gates, who was a judge, posed the following question to the contestants: "What contest, held via Usenet, is dedicated to examples of weird, obscure, bizarre, and really bad programming?" After a moment of silence, Jean-Louis Gassee (ex-honcho at Apple) hit his buzzer and answered "Windows." Mr. Bill's expression was, in the words of one who was there, "classic." *** THE LESSER-KNOWN PROGRAMMING LANGUAGES #10: SIMPLE SIMPLE is an acronym for Sheer Idiot's Monopurpose Programming Language Environment. This language, developed at the Hanover College for Technological Misfits, was designed to make it impossible to write code with errors in it. The statements are, therefore, confined to BEGIN, END and STOP. No matter how you arrange the statements, you can't make a syntax error. Programs written in SIMPLE do nothing useful. Thus they achieve the results of programs written in other languages without the tedious, frustrating process of testing and debugging. *** THE LESSER-KNOWN PROGRAMMING LANGUAGES #13: SLOBOL SLOBOL is best known for the speed, or lack of it, of its compiler. Although many compilers allow you to take a coffee break while they compile, SLOBOL compilers allow you to travel to Bolivia to pick the coffee. Forty-three programmers are known to have died of boredom sitting at their terminals while waiting for a SLOBOL program to compile. Weary SLOBOL programmers often turn to a related (but infinitely faster) language, COCAINE. *** THE LESSER-KNOWN PROGRAMMING LANGUAGES #17: SARTRE Named after the late existential philosopher, SARTRE is an extremely unstructured language. Statements in SARTRE have no purpose; they just are. Thus SARTRE programs are left to define their own functions. SARTRE programmers tend to be boring and depressed, and are no fun at parties. *** THE LESSER-KNOWN PROGRAMMING LANGUAGES #18: C- This language was named for the grade received by its creator when he submitted it as a class project in a graduate programming class. C- is best described as a "low-level" programming language. In fact, the language generally requires more C- statements than machine-code statements to execute a given task. In this respect, it is very similar to COBOL. *** THE LESSER-KNOWN PROGRAMMING LANGUAGES #19: FIFTH FIFTH is a precision mathematical language in which the data types refer to quantity. The data types range from CC, OUNCE, SHOT, and JIGGER to FIFTH (hence the name of the language), LITER, MAGNUM and BLOTTO. Commands refer to ingredients such as CHABLIS, CHARDONNAY, CABERNET, GIN, VERMOUTH, VODKA, SCOTCH, and WHATEVERSAROUND. The many versions of the FIFTH language reflect the sophistication and financial status of its users. Commands in the ELITE dialect include VSOP and LAFITE, while commands in the GUTTER dialect include HOOTCH and RIPPLE. The latter is a favorite of frustrated FORTH programmers who end up using this language. *** THE ORACLE'S TOP TEN USES FOR A SUN WORKSTATION 1. Guess how many shot glasses of whiskey you can balance on the monitor. After an hour of this, the time will just seem to fly! 2. Turn the monitor off, write cryptic messages on the screen with liquid paper, and see how long it takes for your administrator to figure out what's wrong. 3. Replace the internal mechanism with a stereo system -- and watch the fun begin! 4. Fill the case with bean dip (remember to disconnect the power supply first!) 5. Note: detached monitor can be used as a volleyball. Watch out for power spikes! 6. If you hold your face up to the screen for a few hours, you can get a fairly decent tan. 7. Can the unit support your body weight? Find out! 8. Individual keys can be made into pendants for necklaces, bracelets, etc. Great for holiday gifts! 9. How many disks can YOU cram into the drive? (Hint: the record is SEVEN!) 10. Turn the power on and off in a darkened room to create that neat "strobe" effect that makes things look like they're happening in slow motion! *** The primary purpose of the DATA statement is to give names to constants; instead of referring to pi as 3.141592653589793 at every appearance, the variable PI can be given that value with a DATA statement and used instead of the longer form of the constant. This also simplifies modifying the program, should the value of pi change. -- FORTRAN manual for Xerox Computers *** The problem with engineers is that they tend to cheat in order to get results. The problem with mathematicians is that they tend to work on toy problems in order to get results. The problem with program verifiers is that they tend to cheat at toy problems in order to get results. *** The reason computer chips are so small is computers don't eat much. *** There were in this country two very large monopolies. The larger of the two had the following record: the Vietnam War, Watergate, double- digit inflation, fuel and energy shortages, bankrupt airlines, and the 8-cent postcard. The second was responsible for such things as the transistor, the solar cell, lasers, synthetic crystals, high fidelity stereo recording, sound motion pictures, radio astronomy, negative feedback, magnetic tape, magnetic "bubbles", electronic switching systems, microwave radio and TV relay systems, information theory, the first electrical digital computer, and the first communications satellite. Guess which one got to tell the other how to run the telephone business? *** There are two ways to write error-free programs. Only the third one works. *** This quote is taken from the Diamondback, the University of Maryland student newspaper, of Tuesday, 3/10/87. One disadvantage of the Univac system is that it does not use Unix, a recently developed program which translates from one computer language to another and has a built-in editing system which identifies errors in the original program. *** 'Tis the dream of each programmer, Before his life is done, To write three lines of APL, And make the darned things run. *** Turnaucka's Law: The attention span of a computer is only as long as its electrical cord. *** 'Twas the Night before Crisis 'Twas the night before crisis, and all through the house, Not a program was working not even a browse. The programmers were wrung out too mindless to care, Knowing chances of cutover hadn't a prayer. The users were nestled all snug in their beds, While visions of inquiries danced in their heads. When out in the lobby there arose such a clatter, I sprang from my tube to see what was the matter. And what to my wondering eyes should appear, But a Super Programmer, oblivious to fear. More rapid than eagles, his programs they came, And he whistled and shouted and called them by name; On Update! On Add! On Inquiry! On Delete! On Batch Jobs! On Closing! On Functions Complete! His eyes were glazed over, his fingers were lean, From Weekends and nights in front of a screen. A wink of his eye, and a twist of his head, Soon gave me to know I had nothing to dread... *** User, n.: A programmer who will believe anything you tell him. *** Weinberg's Second Law: If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. *** Well, my terminal's locked up, and I ain't got any Mail, And I can't recall the last time that my program didn't fail; I've got stacks in my structs, I've got arrays in my queues, I've got the : Segmentation violation -- Core dumped blues. If you think that it's nice that you get what you C, Then go : illogical statement with your whole family, 'Cause the Supreme Court ain't the only place with : Bus error views. I've got the : Segmentation violation -- Core dumped blues. On a PDP-11, life should be a breeze, But with VAXen in the house even magnetic tapes would freeze. Now you might think that unlike VAXen I'd know who I abuse, I've got the : Segmentation violation -- Core dumped blues. -- Core Dumped Blues *** What is the difference between a Turing machine and the modern computer? It's the same as that between Hillary's ascent of Everest and the establishment of a Hilton on its peak. *** What this country needs is a good five cent microcomputer. *** When someone says "I want a programming language in which I need only say what I wish done," give him a lollipop. *** Whom computers would destroy, they must first drive mad. *** "You are old," said the youth, "and your programs don't run, And there isn't one language you like; Yet of useful suggestions for help you have none -- Have you thought about taking a hike?" "Since I never write programs," his father replied, "Every language looks equally bad; Yet the people keep paying to read all my books And don't realize that they've been had." *** You can't make a program without broken egos. *** You know you've been spending too much time on the computer when your friend misdates a check, and you suggest adding a "++" to fix it. *** You must realize that the computer has it in for you. The irrefutable proof of this is that the computer always does what you tell it to do. *** From jan Thu Jan 6 14:14:00 1994 To: adam, alain, chuck, hph, jat, john-t, marcel, robert, rustan Subject: Konrad Zuse here is something I read in Konrad Zuse's autobiography. (He had the Z3 running in May of 1941; it is generally viewed as the first program-controlled computer; it had 2000 relays, binary floating-point arithmetic, 64 words of 22-bit words, approximately 3 seconds for multiplication, division or square root.) Zuse filed a patent application in mid-1941; only in late 1952 the examiners stated that they had no problems with the patent eligibility of the 51 claims, but then in mid-1967 the German Patent Office finally decided that "a patent cannot be granted due to insufficient inventive merit". How is that for Deutsche Gr\"undlichkeit? --Jan *** From alain Thu Jan 6 14:20:14 1994 To: adam, chuck, hph, jan, jat, john-t, marcel, robert, rustan Subject: Re: Konrad Zuse It seems to me that this is a case of Deutsche Gr\"undlichkeit that has helped the German economy lose a lot of money... *** Not to be outdone by the "Add one to COBOL" crowd, APL aficionados have announced their latest development, to be known as "+/1 APL". BASIC boosters followed suit with "LET BASIC = BASIC + 1". Pascal purists where heard dejectedly muttering, "Ah, if only we hadn't declared our language const...." *** Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes and weighs 30 tons, computers in the future may have only 1,000 vacuum tubes and weigh only 1 1/2 tons. ---Popular Mechanics, March 1949 *** There are three schools of magic. One: State a tautology, then ring the changes on its corollaries; that's philosophy. Two: Record many facts. Try to find a pattern. Then make a wrong guess at the next fact; that's science. Three: Be aware that you live in a malevolent Universe controlled by Murphy's Law, sometimes offset by Brewster's Factor; that's engineering. *** "Virtual memory is for weenies!" --Seymour Cray Submitted by: alex@poa.poweropen.org Feb. 12, 1994 The submitter notes: "Virtual memory" (VM) is a system feature wherein the operating system manipulates user programs' perceptions of system memory. In a virtual memory environment, user programs are less likely to run out of memory, because the operating system can "create" more for them as needed; hence with VM, most of the work of memory management is moved from user programs to the operating system. On the one hand, there can be some slight performance penalty associated with the overhead of centralized memory management. On the other hand, this is made up for in most cases by reduced programming time and better scalability; in some cases, a given program will simply not run on a given machine without virtual memory. To me, Cray's quote is the computer science equivalent of "Real men use straight razors." ***