home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!wupost!zaphod.mps.ohio-state.edu!pitt.edu!pitt!cuphub.cup.edu!arr9734
- From: arr9734@cuphub.cup.edu
- Newsgroups: rec.humor
- Subject: Real programmers don't eat quiche
- Message-ID: <1992Nov16.091022.112@cuphub.cup.edu>
- Date: 16 Nov 92 14:10:22 GMT
- Organization: California University of Pennsylvania, California, PA
- Lines: 981
-
-
- So many people wanted a copy that I decided to post it. Here it goes :
- (this not the only version but the others vary only in minor typos or
- omissions)
-
-
- March 24, 1983
-
- Real Programmers Don't Use PASCAL
- Ed Post
- Tektronix, Inc.
- P.O. Box 1000 m/s 63-205
- Wilsonville, OR 97070
- Copyright (c) 1982
- (decvax | ucbvax | cbosg | pur-ee | lbl-unix)!teklabs!iddic!evp
-
- Back in the good old days -- the "Golden Era" of com-
- puters, it was easy to separate the men from the boys (some-
- times called "Real Men" and "Quiche Eaters" in the litera-
- ture). During this period, the Real Men were the ones that
- understood computer programming, and the Quiche Eaters were
- the ones that didn't. A real computer programmer said things
- like "DO 10 I=1,10" and "ABEND" (they actually talked in
- capital letters, you understand), and the rest of the world
- said things like "computers are too complicated for me" and
- "I can't relate to computers -- they're so impersonal". (A
- previous work [1] points out that Real Men don't "relate" to
- anything, and aren't afraid of being impersonal.)
-
- But, as usual, times change. We are faced today with a
- world in which little old ladies can get computers in their
- microwave ovens, 12 year old kids can blow Real Men out of
- the water playing Asteroids and Pac-Man, and anyone can buy
- and even understand their very own Personal Computer. The
- Real Programmer is in danger of becoming extinct, of being
- replaced by high-school students with TRASH-80s.
-
- There is a clear need to point out the differences
- between the typical high-school junior Pac-Man player and a
- Real Programmer. If this difference is made clear, it will
- give these kids something to aspire to -- a role model, a
- Father Figure. It will also help explain to the employers of
- Real Programmers why it would be a mistake to replace the
- Real Programmers on their staff with 12 year old Pac-Man
- players (at a considerable salary savings).
-
- LANGUAGES
- ---------
-
-
- The easiest way to tell a Real Programmer from the
- crowd is by the programming language he (or she) uses. Real
- Programmers use FORTRAN. Quiche Eaters use PASCAL. Nicklaus
- Wirth, the designer of PASCAL, gave a talk once at which he
- was asked "How do you pronounce your name?". He replied,
- "You can either call me by name, pronouncing it 'Veert', or
- call me by value, 'Worth'." One can tell immediately from
- this comment that Nicklaus Wirth is a Quiche Eater. The only
- parameter passing mechanism endorsed by Real Programmers is
- call-by-value-return, as implemented in the IBM/370 FORTRAN
- G and H compilers. Real programmers don't need all these
- abstract concepts to get their jobs done -- they are
- perfectly happy with a keypunch, a FORTRAN IV compiler, and
- a beer.
-
- * Real Programmers do List Processing in FORTRAN.
-
- * Real Programmers do String Manipulation in FORTRAN.
-
- * Real Programmers do Accounting (if they do it at all)
- in FORTRAN.
-
- * Real Programmers do Artificial Intelligence programs in
- FORTRAN.
-
- If you can't do it in FORTRAN, do it in assembly language.
- If you can't do it in assembly language, it isn't worth
- doing.
-
- STRUCTURED PROGRAMMING
- ---------- -----------
-
-
- The academics in computer science have gotten into the
- "structured programming" rut over the past several years.
- They claim that programs are more easily understood if the
- programmer uses some special language constructs and tech-
- niques. They don't all agree on exactly which constructs, of
- course, and the examples they use to show their particular
- point of view invariably fit on a single page of some
- obscure journal or another -- clearly not enough of an exam-
- ple to convince anyone. When I got out of school, I thought
- I was the best programmer in the world. I could write an
- unbeatable tic-tac-toe program, use five different computer
- languages, and create 1000 line programs that WORKED.
- (Really!) Then I got out into the Real World. My first task
- in the Real World was to read and understand a 200,000 line
- FORTRAN program, then speed it up by a factor of two. Any
- Real Programmer will tell you that all the Structured Coding
- in the world won't help you solve a problem like that -- it
- takes actual talent. Some quick observations on Real Pro-
- grammers and Structured Programming:
-
- * Real Programmers aren't afraid to use GOTOs.
-
- * Real Programmers can write five page long DO loops
- without getting confused.
-
- * Real Programmers like Arithmetic IF statements -- they
- make the code more interesting.
-
- * Real Programmers write self-modifying code, especially
- if they can save 20 nanoseconds in the middle of a
- tight loop.
-
- * Real Programmers don't need comments -- the code is
- obvious.
-
- * Since FORTRAN doesn't have a structured IF, REPEAT ...
- UNTIL, or CASE statement, Real Programmers don't have
- to worry about not using them. Besides, they can be
- simulated when necessary using assigned GOTOs.
-
-
- Data structures have also gotten a lot of press lately.
- Abstract Data Types, Structures, Pointers, Lists, and
- Strings have become popular in certain circles. Wirth (the
- above-mentioned Quiche Eater) actually wrote an entire book
- [2] contending that you could write a program based on data
- structures, instead of the other way around. As all Real
- Programmers know, the only useful data structure is the
- Array. Strings, Lists, Structures, Sets -- these are all
- special cases of arrays and can be treated that way just as
- easily without messing up your programing language with all
- sorts of complications. The worst thing about fancy data
- types is that you have to declare them, and Real Programming
- Languages, as we all know, have implicit typing based on the
- first letter of the (six character) variable name.
-
- OPERATING SYSTEMS
- --------- -------
-
-
- What kind of operating system is used by a Real Pro-
- grammer? CP/M? God forbid -- CP/M, after all, is basically
- a toy operating system. Even little old ladies and grade
- school students can understand and use CP/M.
-
- Unix is a lot more complicated of course -- the typical
- Unix hacker never can remember what the PRINT command is
- called this week -- but when it gets right down to it, Unix
- is a glorified video game. People don't do Serious Work on
- Unix systems: they send jokes around the world on UUCP-net
- and write adventure games and research papers.
-
- No, your Real Programmer uses OS/370. A good programmer
- can find and understand the description of the IJK305I error
- he just got in his JCL manual. A great programmer can write
- JCL without referring to the manual at all. A truly out-
- standing programmer can find bugs buried in a 6 megabyte
- core dump without using a hex calculator. (I have actually
- seen this done.)
-
- OS is a truly remarkable operating system. It's possi-
- ble to destroy days of work with a single misplaced space,
- so alertness in the programming staff is encouraged. The
- best way to approach the system is through a keypunch. Some
- people claim there is a Time Sharing system that runs on
- OS/370, but after careful study I have come to the
- conclusion that they were mistaken.
-
- PROGRAMMING TOOLS
- ----------- -----
-
-
- What kind of tools does a Real Programmer use? In
- theory, a Real Programmer could run his programs by keying
- them into the front panel of the computer. Back in the days
- when computers had front panels, this was actually done
- occasionally. Your typical Real Programmer knew the entire
- bootstrap loader by memory in hex, and toggled it in when-
- ever it got destroyed by his program. (Back then, memory was
- memory -- it didn't go away when the power went off. Today,
- memory either forgets things when you don't want it to, or
- remembers things long after they're better forgotten.)
- Legend has it that Seymour Cray, inventor of the Cray I
- supercomputer and most of Control Data's computers, actually
- toggled the first operating system for the CDC7600 in on the
- front panel from memory when it was first powered on. Sey-
- mour, needless to say, is a Real Programmer.
-
- One of my favorite Real Programmers was a systems pro-
- grammer for Texas Instruments. One day, he got a long dis-
- tance call from a user whose system had crashed in the mid-
- dle of saving some important work. Jim was able to repair
- the damage over the phone, getting the user to toggle in
- disk I/O instructions at the front panel, repairing system
- tables in hex, reading register contents back over the
- phone. The moral of this story: while a Real Programmer usu-
- ally includes a keypunch and lineprinter in his toolkit, he
- can get along with just a front panel and a telephone in
- emergencies.
-
- In some companies, text editing no longer consists of
- ten engineers standing in line to use an 029 keypunch. In
- fact, the building I work in doesn't contain a single
- keypunch. The Real Programmer in this situation has to do
- his work with a "text editor" program. Most systems supply
- several text editors to select from, and the Real Programmer
- must be careful to pick one that reflects his personal
- style. Many people believe that the best text editors in the
- world were written at Xerox Palo Alto Research Center for
- use on their Alto and Dorado computers [3]. Unfortunately,
- no Real Programmer would ever use a computer whose operating
- system is called SmallTalk, and would certainly not talk to
- the computer with a mouse.
-
- Some of the concepts in these Xerox editors have been
- incorporated into editors running on more reasonably named
- operating systems -- EMACS and VI being two. The problem
- with these editors is that Real Programmers consider "what
- you see is what you get" to be just as bad a concept in Text
- Editors as it is in Women. No, the Real Programmer wants a
- "you asked for it, you got it" text editor -- complicated,
- cryptic, powerful, unforgiving, dangerous. TECO, to be pre-
- cise.
-
- It has been observed that a TECO command sequence more
- closely resembles transmission line noise than readable text
- [4]. One of the more entertaining games to play with TECO is
- to type your name in as a command line and try to guess what
- it does. Just about any possible typing error while talking
- with TECO will probably destroy your program, or even worse
- -- introduce subtle and mysterious bugs in a once working
- subroutine.
-
- For this reason, Real Programmers are reluctant to
- actually edit a program that is close to working. They find
- it much easier to just patch the binary object code
- directly, using a wonderful program called SUPERZAP (or its
- equivalent on non-IBM machines). This works so well that
- many working programs on IBM systems bear no relation to the
- original FORTRAN code. In many cases, the original source
- code is no longer available. When it comes time to fix a
- program like this, no manager would even think of sending
- anything less than a Real Programmer to do the job -- no
- Quiche Eating structured programmer would even know where to
- start. This is called "job security". Some programming
- tools NOT used by Real Programmers:
-
- * FORTRAN preprocessors like MORTRAN and RATFOR. The
- Cuisinarts of programming -- great for making Quiche.
- See comments above on structured programming.
-
- * Source language debuggers. Real Programmers can read
- core dumps.
-
- * Compilers with array bounds checking. They stifle
- creativity, destroy most of the interesting uses for
- EQUIVALENCE, and make it impossible to modify the
- operating system code with negative subscripts. Worst
- of all, bounds checking is inefficient.
-
- * Source code maintainance systems. A Real Programmer
- keeps his code locked up in a card file, because it
- implies that its owner cannot leave his important pro-
- grams unguarded [5].
-
-
- THE REAL PROGRAMMER AT WORK
- --- ---- ---------- -- ----
-
-
- Where does the typical Real Programmer work? What kind
- of programs are worthy of the efforts of so talented an
- individual? You can be sure that no real Programmer would be
- caught dead writing accounts-receivable programs in COBOL,
- or sorting mailing lists for People magazine. A Real Pro-
- grammer wants tasks of earth-shaking importance
- (literally!).
-
- * Real Programmers work for Los Alamos National Labora-
- tory, writing atomic bomb simulations to run on Cray I
- supercomputers.
-
- * Real Programmers work for the National Security Agency,
- decoding Russian transmissions.
-
- * It was largely due to the efforts of thousands of Real
- Programmers working for NASA that our boys got to the
- moon and back before the Russkies.
-
- * The computers in the Space Shuttle were programmed by
- Real Programmers.
-
- * Real Programmers are at work for Boeing designing the
- operating systems for cruise missiles.
-
-
- Some of the most awesome Real Programmers of all work
- at the Jet Propulsion Laboratory in California. Many of them
- know the entire operating system of the Pioneer and Voyager
- spacecraft by heart. With a combination of large ground-
- based FORTRAN programs and small spacecraft-based assembly
- language programs, they are able to do incredible feats of
- navigation and improvisation -- hitting ten-kilometer wide
- windows at Saturn after six years in space, repairing or
- bypassing damaged sensor platforms, radios, and batteries.
- Allegedly, one Real Programmer managed to tuck a pattern-
- matching program into a few hundred bytes of unused memory
- in a Voyager spacecraft that searched for, located, and pho-
- tographed a new moon of Jupiter.
-
- The current plan for the Galileo spacecraft is to use a
- gravity assist trajectory past Mars on the way to Jupiter.
- This trajectory passes within 80 +/- 3 kilometers of the
- surface of Mars. Nobody is going to trust a PASCAL program
- (or PASCAL programmer) for navigation to these tolerances.
-
- As you can tell, many of the world's Real Programmers
- work for the U.S. Government -- mainly the Defense Depart-
- ment. This is as it should be. Recently, however, a black
- cloud has formed on the Real Programmer horizon. It seems
- that some highly placed Quiche Eaters at the Defense Depart-
- ment decided that all Defense programs should be written in
- some grand unified language called "ADA" ((r), DoD). For a
- while, it seemed that ADA was destined to become a language
- that went against all the precepts of Real Programming -- a
- language with structure, a language with data types, strong
- typing, and semicolons. In short, a language designed to
- cripple the creativity of the typical Real Programmer.
- Fortunately, the language adopted by DoD has enough
- interesting features to make it approachable -- it's incred-
- ibly complex, includes methods for messing with the operat-
- ing system and rearranging memory, and Edsgar Dijkstra
- doesn't like it [6]. (Dijkstra, as I'm sure you know, was
- the author of "GoTos Considered Harmful" -- a landmark work
- in programming methodology, applauded by Pascal Programmers
- and Quiche Eaters alike.) Besides, the determined Real Pro-
- grammer can write FORTRAN programs in any language.
-
- The real programmer might compromise his principles and
- work on something slightly more trivial than the destruction
- of life as we know it, providing there's enough money in it.
- There are several Real Programmers building video games at
- Atari, for example. (But not playing them -- a Real Program-
- mer knows how to beat the machine every time: no challange
- in that.) Everyone working at LucasFilm is a Real Program-
- mer. (It would be crazy to turn down the money of fifty mil-
- lion Star Trek fans.) The proportion of Real Programmers in
- Computer Graphics is somewhat lower than the norm, mostly
- because nobody has found a use for Computer Graphics yet. On
- the other hand, all Computer Graphics is done in FORTRAN, so
- there are a fair number people doing Graphics in order to
- avoid having to write COBOL programs.
-
- THE REAL PROGRAMMER AT PLAY
- --- ---- ---------- -- ----
-
-
- Generally, the Real Programmer plays the same way he
- works -- with computers. He is constantly amazed that his
- employer actually pays him to do what he would be doing for
- fun anyway (although he is careful not to express this opin-
- ion out loud). Occasionally, the Real Programmer does step
- out of the office for a breath of fresh air and a beer or
- two. Some tips on recognizing real programmers away from the
- computer room:
-
- * At a party, the Real Programmers are the ones in the
- corner talking about operating system security and how
- to get around it.
-
- * At a football game, the Real Programmer is the one com-
- paring the plays against his simulations printed on 11
- by 14 fanfold paper.
-
- * At the beach, the Real Programmer is the one drawing
- flowcharts in the sand.
-
- * A Real Programmer goes to discos to watch the light
- shows.
-
- * At a funeral, the Real Programmer is the one saying
- "Poor George. And he almost had the sort routine work-
- ing before the coronary."
-
- * In a grocery store, the Real Programmer is the one who
- insists on running the cans past the laser checkout
- scanner himself, because he never could trust keypunch
- operators to get it right the first time.
-
-
- THE REAL PROGRAMMER'S NATURAL HABITAT
- --- ---- ------------ ------- -------
-
-
- What sort of environment does the Real Programmer func-
- tion best in? This is an important question for the
- managers of Real Programmers. Considering the amount of
- money it costs to keep one on the staff, it's best to put
- him (or her) in an environment where he can get his work
- done.
-
- The typical Real Programmer lives in front of a com-
- puter terminal. Surrounding this terminal are:
-
- * Listings of all programs the Real Programmer has ever
- worked on, piled in roughly chronological order on
- every flat surface in the office.
-
- * Some half-dozen or so partly filled cups of cold cof-
- fee. Occasionally, there will be cigarette butts float-
- ing in the coffee. In some cases, the cups will contain
- Orange Crush.
-
- * Unless he is very good, there will be copies of the OS
- JCL manual and the Principles of Operation open to some
- particularly interesting pages.
-
- * Taped to the wall is a line-printer Snoopy calender for
- the year 1969.
-
- * Strewn about the floor are several wrappers for peanut
- butter filled cheese bars -- the type that are made
- pre-stale at the bakery so they can't get any worse
- while waiting in the vending machine.
-
- * Hiding in the top left-hand drawer of the desk is a
- stash of double-stuff Oreos for special occasions.
-
- * Underneath the Oreos is a flow-charting template, left
- there by the previous occupant of the office. (Real
- Programmers write programs, not documentation. Leave
- that to the maintainence people.)
-
-
- The Real Programmer is capable of working 30, 40, even
- 50 hours at a stretch, under intense pressure. In fact, he
- prefers it that way. Bad response time doesn't bother the
- Real Programmer -- it gives him a chance to catch a little
- sleep between compiles. If there is not enough schedule
- pressure on the Real Programmer, he tends to make things
- more challenging by working on some small but interesting
- part of the problem for the first nine weeks, then finishing
- the rest in the last week, in two or three 50-hour
- marathons. This not only inpresses the hell out of his
- manager, who was despairing of ever getting the project done
- on time, but creates a convenient excuse for not doing the
- documentation. In general:
-
- * No Real Programmer works 9 to 5. (Unless it's the ones
- at night.)
-
- * Real Programmers don't wear neckties.
-
- * Real Programmers don't wear high heeled shoes.
-
- * Real Programmers arrive at work in time for lunch.
-
- * A Real Programmer might or might not know his wife's
- name. He does, however, know the entire ASCII (or
- EBCDIC) code table.
-
- * Real Programmers don't know how to cook. Grocery stores
- aren't open at three in the morning. Real Programmers
- survive on Twinkies and coffee.
-
-
- THE FUTURE
- --- ------
-
-
- What of the future? It is a matter of some concern to
- Real Programmers that the latest generation of computer pro-
- grammers are not being brought up with the same outlook on
- life as their elders. Many of them have never seen a com-
- puter with a front panel. Hardly anyone graduating from
- school these days can do hex arithmetic without a calcula-
- tor. College graduates these days are soft -- protected from
- the realities of programming by source level debuggers, text
- editors that count parentheses, and "user friendly" operat-
- ing systems. Worst of all, some of these alleged "computer
- scientists" manage to get degrees without ever learning FOR-
- TRAN! Are we destined to become an industry of Unix hackers
- and Pascal programmers?
-
- From my experience, I can only report that the future
- is bright for Real Programmers everywhere. Neither OS/370
- nor FORTRAN show any signs of dying out, despite all the
- efforts of Pascal programmers the world over. Even more
- subtle tricks, like adding structured coding constructs to
- FORTRAN have failed. Oh sure, some computer vendors have
- come out with FORTRAN 77 compilers, but every one of them
- has a way of converting itself back into a FORTRAN 66 com-
- piler at the drop of an option card -- to compile DO loops
- like God meant them to be.
-
- Even Unix might not be as bad on Real Programmers as it
- once was. The latest release of Unix has the potential of
- an operating system worthy of any Real Programmer -- two
- different and subtly incompatible user interfaces, an arcane
- and complicated teletype driver, virtual memory. If you
- ignore the fact that it's "structured", even 'C' programming
- can be appreciated by the Real Programmer: after all,
- there's no type checking, variable names are seven (ten?
- eight?) characters long, and the added bonus of the Pointer
- data type is thrown in -- like having the best parts of FOR-
- TRAN and assembly language in one place. (Not to mention
- some of the more creative uses for #define.)
-
- No, the future isn't all that bad. Why, in the past
- few years, the popular press has even commented on the
- bright new crop of computer nerds and hackers ([7] and [8])
- leaving places like Stanford and M.I.T. for the Real World.
- From all evidence, the spirit of Real Programming lives on
- in these young men and women. As long as there are ill-
- defined goals, bizarre bugs, and unrealistic schedules,
- there will be Real Programmers willing to jump in and Solve
- The Problem, saving the documentation for later. Long live
- FORTRAN!
-
- ACKNOWLEGEMENT
- --------------
-
-
- I would like to thank Jan E., Dave S., Rich G., Rich E.
- for their help in characterizing the Real Programmer,
- Heather B. for the illustration, Kathy E. for putting up
- with it, and atd!avsdS:mark for the initial inspriration.
-
-
- REFERENCES
- ----------
-
-
- [1] Feirstein, B., Real Men Don't Eat Quiche, New York,
- Pocket Books, 1982.
-
- [2] Wirth, N., Algorithms + Datastructures = Programs,
- Prentice Hall, 1976.
-
- [3] Xerox PARC editors . . .
-
- [4] Finseth, C., Theory and Practice of Text Editors -
- or - a Cookbook for an EMACS, B.S. Thesis,
- MIT/LCS/TM-165, Massachusetts Institute of Technology,
- May 1980.
-
- [5] Weinberg, G., The Psychology of Computer Programming,
- New York, Van Nostrabd Reinhold, 1971, page 110.
-
- [6] Dijkstra, E., On the GREEN Language Submitted to the DoD,
- Sigplan notices, Volume 3, Number 10, October 1978.
-
- [7] Rose, Frank, Joy of Hacking, Science 82, Volume 3, Number 9,
- November 1982, pages 58 - 66.
-
- [8] The Hacker Papers, Psychology Today, August 1980.
-
-
- ==================================================================
- - Real programmers don't write specs. Users should consider
- themselves lucky to get any programs at all and take what they get.
-
- - Real programmers don't comment their code. If it was hard to
- write, it should be hard to read.
-
- - Real programmers don't write application programs, they pro-
- gram right down on the bare metal. Application programming
- is for feebs who can't do systems programming.
-
- - Real programmers don't eat quiche. Real programmers don't even know how to
- spell quiche. They eat Twinkies, Coke and palate-scorching Szechwan food.
-
- - Real programmers don't draw flowcharts. Flowcharts are, after all, the
- illiterate's form of documentation. Cavemen drew flowcharts; look how
- much it did for them.
-
- - Real programmers don't read manuals. Reliance on a reference is a hallmark
- of the novice and the coward.
-
- - Real programmers programs never work right the first time.
- But if you throw them on the machine they can be patched
- into working in only a few 30-hours debugging sessions.
-
- - Real programmers don't use Fortran. Fortran is for wimpy engineers who
- wear white socks, pipe stress freaks, and crystallography weenies. They
- get excited over finite state analysis and nuclear reactor simulation.
-
- - Real programmers don't use COBOL. COBOL is for wimpy application
- programmers.
-
- - Real programmers never work 9 to 5. If any real programmers
- are around at 9 am, it's because they were up all night.
-
- - Real programmers don't write in BASIC. Actually, no program-
- mers write in BASIC, after the age of 12.
-
- - Real programmers don't document. Documentation is for simps
- who can't read the listings or the object deck.
-
- - Real programmers don't write in Pascal, or Bliss, or Ada, or
- any of those pinko computer science languages. Strong typing
- is for people with weak memories.
-
- - Real programmers know better than the users what they need.
-
- - Real programmers think structured programming is a communist
- plot.
-
- - Real programmers don't use schedules. Schedules are for man-
- ager's toadies. Real programmers like to keep their manager
- in suspense.
-
- - Real programmers think better when playing adventure.
-
- - Real programmers don't use PL/I. PL/I is for insecure momma's boys
- who can't choose between COBOL and Fortran.
-
- - Real programmers don't use APL, unless the whole program can be written
- on one line.
-
- - Real programmers don't use LISP. Only effeminate programmers use more
- parentheses than actual code.
-
- - Real programmers disdain structured programming. Structured programming
- is for compulsive, prematurely toilet-trained neurotics who wear neckties
- and carefully line up sharpened pencils on an otherwise uncluttered desk.
-
- - Real programmers don't like the team programming concept. Unless, of
- course, they are the Chief Programmer.
-
- - Real programmers have no use for managers. Managers are a necessary evil.
- Managers are for dealing with personnel bozos, bean counters, senior
- planners and other mental defectives.
-
- - Real programmers scorn floating point arithmetic. The decimal point was
- invented for pansy bedwetters who are unable to "think big."
-
- - Real programmers don't drive clapped-out Mavericks. They prefer BMWs,
- Lincolns or pick-up trucks with floor shifts. Fast motorcycles are
- highly regarded.
-
- - Real programmers don't believe in schedules. Planners make up schedules.
- Managers "firm up" schedules. Frightened coders strive to meet schedules.
- Real programmers ignore schedules.
-
- - Real programmers like vending machine popcorn. Coders pop it in the
- microwave oven. Real programmers use the heat given off by the cpu.
- They can tell what job is running just by listening to the rate of popping.
-
- - Real programmers know every nuance of every instruction and use them all
- in every real program. Puppy architects won't allow execute instructions
- to address another execute as the target instruction. Real programmers
- despise such petty restrictions.
-
- - Real programmers don't bring brown bag lunches to work. If the vending
- machine sells it, they eat it. If the vending machine doesn't sell it,
- they don't eat it. Vending machines don't sell quiche.
-
- - Real programmers know that the word is disk, not disc. Disc is
- a definite commie plot put forth by blubbering quiche eaters.
-
- -----8<-----snip----------snip----------snip----------snip----------snip-----
-
-
- T h e V O G O N N e w s S e r v i c e
-
- VNS TECHNOLOGY WATCH: [Mike Taylor, VNS Correspondent
- ]
- ===================== [Littleton, MA, USA
- ]
-
- COMPUTERWORLD 1 April
-
- CREATORS ADMIT UNIX, C HOAX
-
- In an announcement that has stunned the computer industry, Ken Thompson,
- Dennis Ritchie and Brian Kernighan admitted that the Unix operating
- system and C programming language created by them is an elaborate April
- Fools prank kept alive for over 20 years. Speaking at the recent
- UnixWorld Software Development Forum, Thompson revealed the following:
-
- "In 1969, AT&T had just terminated their work with the GE/Honeywell/AT&T
- Multics project. Brian and I had just started working with an early
- release of Pascal from Professor Nichlaus Wirth's ETH labs in
- Switzerland and we were impressed with its elegant simplicity and
- power. Dennis had just finished reading 'Bored of the Rings', a
- hilarious National Lampoon parody of the great Tolkien 'Lord of the
- Rings' trilogy. As a lark, we decided to do parodies of the Multics
- environment and Pascal. Dennis and I were responsible for the operating
- environment. We looked at Multics and designed the new system to be as
- complex and cryptic as possible to maximize casual users' frustration
- levels, calling it Unix as a parody of Multics, as well as other more
- risque allusions. Then Dennis and Brian worked on a truly warped
- version of Pascal, called 'A'. When we found others were actually
- trying to create real programs with A, we quickly added additional
- cryptic features and evolved into B, BCPL and finally C. We stopped
- when we got a clean compile on the following syntax:
-
- for(;P("\n"),R-;P("|"))for(e=C;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);
-
- To think that modern programmers would try to use a language that
- allowed such a statement was beyond our comprehension! We actually
- thought of selling this to the Soviets to set their computer science
- progress back 20 or more years. Imagine our surprise when AT&T and
- other US corporations actually began trying to use Unix and C! It has
- taken them 20 years to develop enough expertise to generate even
- marginally useful applications using this 1960's technological parody,
- but we are impressed with the tenacity (if not common sense) of the
- general Unix and C programmer. In any event, Brian, Dennis and I have
- been working exclusively in Pascal on the Apple Macintosh for the past
- few years and feel really guilty about the chaos, confusion and truly
- bad programming that have resulted from our silly prank so long ago."
-
- Major Unix and C vendors and customers, including AT&T, Microsoft,
- Hewlett-Packard, GTE, NCR, and DEC have refused comment at this time.
- Borland International, a leading vendor of Pascal and C tools,
- including the popular Turbo Pascal, Turbo C and Turbo C++, stated they
- had suspected this for a number of years and would continue to enhance
- their Pascal products and halt further efforts to develop C. An IBM
- spokesman broke into uncontrolled laughter and had to postpone a
- hastily convened news conference concerning the fate of the RS-6000,
- merely stating 'VM will be available Real Soon Now'. In a cryptic
- statement, Professor Wirth of the ETH institute and father of the
- Pascal, Modula 2 and Oberon structured languages, merely stated that P.
- T. Barnum was correct.
-
- In a related late-breaking story, usually reliable sources are stating
- that a similar confession may be forthcoming from William Gates
- concerning the MS-DOS and Windows operating environments. And IBM
- spokesman have begun denying that the Virtual Machine (VM) product is
- an internal prank gone awry.
- {COMPUTERWORLD 1 April}
- {contributed by Bernard L. Hayes}
-
- <><><><><><><><> VNS Edition : 2336 Tuesday 4-Jun-1991 <><><><><><><><
- >
-
- -----8<-----snip----------snip----------snip----------snip----------snip-----
-
-
- Real Computer Scientists Don't Write Code
-
- 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 don't comment their code. The
- identifiers are so long they can't afford the disk space.
-
- Real Computer Scientists don't write the user interface, they
- merely argue about what they should look like.
-
- Real Computer Scientists don't eat quiche. They shun Schezuan
- food since the hackers discovered it. Many Real Computer Scientists
- consider eating an implementation detail. (Others break down and eat
- with the hackers, but only if they can have ice cream for dessert).
-
- If it doesn't have a programming environment complete with
- interactive debugger, structure editor and extensive cross module
- type checking, Real Computer Scientists won't be seen tinkering with
- it. They may have to use it to balance their checkbooks, as their own
- systems can't.
-
- 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 debug programs, they
- dynamically modify them. This is safer, since no one has invented a
- way to do anything dynamic to FORTRAN, COBOL or BASIC.
-
- Real Computer Scientists like C's structured constructs, but
- they are suspicious of it because it's compiled. (Only Batch Freaks
- and Efficiency Weirdos bother with compilers, they're soooo un-
- dynamic).
-
- Real Computer Scientists play Go. They have nothing against
- the concept of mountain climbing, but the actual climbing is an
- implementation detail best left to programmers.
-
- Real Computer Scientists admire ADA for its overwhelming
- esthetic value, but they find it difficult to actually program in, 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 work from 5 pm to 9 am because
- that's the only time they can get the 8 megabytes of main memory they
- need to edit specs. (Real work starts around 2 am when enough MIPS
- are free for their dynamic systems). Real Computer Scientists find it
- hard to share 3081s when they are doing 'REAL' work.
-
- 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 Computer Scientists like planning their own environments
- to use bit mapped graphics. Bit mapped graphics is great because no
- one can afford it, so their systems can be experimental.
-
- Real Computer Scientists regret the existence of PL/1, PASCAL
- and LISP. ADA is getting there, but it still allows people to make
- mistakes.
-
- Real Computer Scientists love the concept of users. Users are
- always real impressed by the stuff computer scientists are talking
- about; it sure sounds better than the stuff they are being forced to
- use now.
-
- 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 love conventions. No one is expected
- to lug a 3081 attached to a bit map screen to a convention, so no one
- will ever know how slow their systems run.
-
-
-
- Real Software Engineers Don't Read Dumps
-
- Real Software Engineers don't read dumps. They never generate
- them, and on the rare occasions that they come across them, they are
- vaguely amused.
-
- Real Software Engineers don't comment their code. The
- identifiers are so mnemonic they don't have to.
-
- Real Software Engineers don't write applications programs,
- they implement algorithms. If someone has an application that the
- algorithm might help with, that's nice. Don't ask them to write the
- user interface, though.
-
- Real Software Engineers eat quiche.
-
- If it doesn't have recursive function calls, Real Software
- Engineers don't program in it.
-
- Real Software Engineers don't program in assembler. They
- become queasy at the very thought.
-
- Real Software Engineers don't debug programs, they verify
- correctness. This process doesn't necessarily involve executing
- anything on a computer, except perhaps a Correctness Verification Aid
- package.
-
- Real Software Engineers like C's structured constructs, but
- they are suspicious of it because they have heard that it lets you
- get "close to the machine."
-
- Real Software Engineers play tennis. In general, they don't
- like any sport that involves getting hot and sweaty and gross when
- out of range of a shower. (Thus mountain climbing is Right Out). They
- will occasionally wear their tennis togs to work, but only on very
- sunny days.
-
- Real Software Engineers admire PASCAL for its discipline and
- Spartan purity, but they find it difficult to actually program in.
- They don't tell this to their friends, because they are afraid it
- means they are somehow Unworthy.
-
- 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 write in languages that have not
- actually been implemented for any machine, and for which only the
- formal spec (in BNF) is available. This keeps them from having to
- take any machine dependencies into account. Machine dependencies make
- Real Software Engineers very uneasy.
-
- Real Software Engineers don't write in ADA, because the
- standards bodies have not quite decided on a formal spec yet.
-
- Real Software Engineers like writing their own compilers,
- preferably in PROLOG (they also like writing them in unimplemented
- languages, but it turns out to be difficult to actually RUN these).
-
- Real Software Engineers regret the existence of COBOL,
- FORTRAN and BASIC; PL/1 is getting there, but it is not nearly
- disciplined enough; far too much built-in function.
-
- Real Software Engineers aren't too happy about the existence
- of users, either. Users always seem to have the wrong idea about what
- the implementation and verification of algorithms is all about.
-
- 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), execpt that they need 8 megabytes
- to run their Correctness Verification Aid packages.
-
- Real Software Engineers think better while playing WFF 'N'
- PROOF.
-
-
- Real Programmers Don't Write Specs.
-
- Real Programmers don't write specs -- users should consider
- themselves lucky to get any programs at all and take what they get.
-
- Real Programmers don't comment their code. If it was hard to
- write, it should be hard to understand.
-
- Real Programmers don't write application programs, they
- program down to the bare metal. Application programming is for feebs
- who can't do systems programming.
-
- Real Programmers don't eat quiche. They eat Twinkies, and
- Szechwan food.
-
- Real Programmers don't write in COBOL. COBOL is for wimpy
- applications programmers.
-
- Real Programmers' programs never work right the first time.
- But if you throw them on the machine they can be patched into working
- in "only a few" 30-hour debugging sessions.
-
- Real Programmers don't write in FORTRAN. FORTRAN is for pipe
- stress freaks and crystallography weenies.
-
- Real Programmers don't work 9 to 5. If any Real Programmers
- are around at 9 AM, it's because they were up all night.
-
- Real Programmers don't write in BASIC. Actually, no
- programmers write in BASIC, after the age of 12.
-
- Real Programmers don't write in PL/1. PL/1 is for programmers
- who can't decide whether to write in COBOL or FORTRAN.
-
- Real Programmers don't write in APL. Any fool can be obscure
- in APL.
-
- 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 PASCAL, or BLISS, or ADA, or
- any of those pinko computer science languages. Strong typing is for
- people with weak memories.
-
- Real Programmers know better than the users what they need.
-
- Real Programmers think structured programming is a communist
- plot.
-
- Real Programmers don't use schedules. Schedules are for
- manager's toadies. Real Programmers like to keep their managers in
- suspense.
-
- Real Programmers think better while playing ADVENTURE.
-
- Real Programmers do it middle-out.
-
- Real Programmers enjoy machine coding PASCAL compilers for
- their micros which they improve but never use.
- or
- Real Programmers enjoy getting CP/M to work on 370 machines
- and MVS on their ZX81s.
-
- Real Programmers write their own assemblers, preferably in
- LISP.
-
- Real Programmers never get annoyed by security systems, they
- turn off the RACF bits and leave unsigned messages in the security
- data sets.
-
- Real Programmers never update the source to reflect the ZAPs,
- after all, it will have changed again tomorrow.
-
- --
- Michael Krus. Email : krus@cs.concordia.ca
- Concordia University Universite d'Orsay - Paris XI
- Montreal, Canada Paris, France
- Tonight's the night: Sleep in a eucalyptus tree.
-