s X-NEWS: spcvxb alt.folklore.computers: 3956Relay-Version: VMS News - V6.0 10/3/90 VAX/VMS V5.3; site spcvxb.spc.edu X Path: spcvxb.spc.edu!njin!princeton!udel!wuarchive!uunet!mcsun!hp4nl!star.cs.vu.nl!maart, Newsgroups: comp.misc,alt.folklore.computers$ Subject: Real Programmers (TM) Rerun  Message-ID: <7826@star.cs.vu.nl>' From: maart@cs.vu.nl (Maarten Litmaath)  Date: 3 Oct 90 21:06:34 GMT + Reply-To: maart@cs.vu.nl (Maarten Litmaath)  Sender: news@cs.vu.nl F Organization: VU Dept. of Computer Science, Amsterdam, The Netherlands
 Lines: 6817 Xref: spcvxb comp.misc:2069 alt.folklore.computers:3956   < - Real programmers don't write specs.  Users should considerE   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 programming0   is for feebs who can't do systems programming.  M - Real programmers don't eat quiche.  Real programmers don't even know how to L   spell quiche.  They eat Twinkies, Coke and palate-scorching Szechwan food.  I - Real programmers don't draw flowcharts.  Flowcharts are, after all, the H   illiterate's form of documentation.  Cavemen drew flowcharts; look how   much it did for them.   M - 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 patched9   into working in only a few 30-hours debugging sessions.   I - Real programmers don't use Fortran.  Fortran is for wimpy engineers who J   wear white socks, pipe stress freaks, and crystallography weenies.  TheyH   get excited over finite state analysis and nuclear reactor simulation.  C - 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 1   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.  7 - Real programmers think better when playing adventure.   E - Real programmers don't use PL/I.  PL/I is for insecure momma's boys -   who can't choose between COBOL and Fortran.   I - Real programmers don't use APL, unless the whole program can be written    on one line.  H - Real programmers don't use LISP.  Only effeminate programmers use more   parentheses than actual code.   J - Real programmers disdain structured programming.  Structured programmingK   is for compulsive, prematurely toilet-trained neurotics who wear neckties K   and carefully line up sharpened pencils on an otherwise uncluttered desk.   G - Real programmers don't like the team programming concept.  Unless, of (   course, they are the Chief Programmer.  L - Real programmers have no use for managers.  Managers are a necessary evil.F   Managers are for dealing with personnel bozos, bean counters, senior'   planners and other mental defectives.   J - Real programmers scorn floating point arithmetic.  The decimal point was>   invented for pansy bedwetters who are unable to "think big."  H - Real programmers don't drive clapped-out Mavericks.  They prefer BMWs,E   Lincolns or pick-up trucks with floor shifts.  Fast motorcycles are    highly regarded.  K - Real programmers don't believe in schedules.  Planners make up schedules. L   Managers "firm up" schedules.  Frightened coders strive to meet schedules.$   Real programmers ignore schedules.  F - Real programmers like vending machine popcorn.  Coders pop it in theF   microwave oven.  Real programmers use the heat given off by the cpu.M   They can tell what job is running just by listening to the rate of popping.   J - Real programmers know every nuance of every instruction and use them allK   in every real program.  Puppy architects won't allow execute instructions I   to address another execute as the target instruction.  Real programmers "   despise such petty restrictions.  I - Real programmers don't bring brown bag lunches to work.  If the vending I   machine sells it, they eat it.  If the vending machine doesn't sell it, 9   they don't eat it.  Vending machines don't sell quiche.   O -------------------------------------------------------------------------------   3                 "Real Programmers Don't Use PASCAL"   <     +------------------------------------------------------+<     |Ed Post, "Real Programmers Don't Use Pascal",         |<     |_DATAMATION_, July 1983, pp. 263-265 (Readers' Forum).|<     +------------------------------------------------------+  O         Back in the good old days -- the "Golden Era" of computers, it was easy J to separate the men from the boys (sometimes called "Real Men" and "QuicheO Eaters" in the literature). During this period, the Real Men were the ones that I understood computer programming, and the Quiche Eaters were the ones that O didn't.  A real computer programmer said things like "DO 10 I=1,10" and "ABEND" N (they actually talked in capital letters, you understand), and the rest of theJ world said things like "computers are too complicated for me" and "I can'tN relate to computers -- they're so impersonal". (A previous work [1] points outD that Real Men don't "relate" to anything, and aren't afraid of being impersonal.)  M         But, as usual, times change. We are faced today with a world in which N little old ladies can get computers in their microwave ovens, 12-year-old kidsL can blow Real Men out of the water playing Asteroids and Pac-Man, and anyoneG can buy and even understand their very own Personal Computer.  The Real M Programmer is in danger of becoming extinct, of being replaced by high-school  students with TRASH-80's.   N         There is a clear need to point out the differences between the typicalN high-school junior Pac-Man player and a Real Programmer. If this difference isM made clear, it will give these kids something to aspire to -- a role model, a M Father Figure. It will also help explain to the employers of Real Programmers M 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"                          ---------  J         The easiest way to tell a Real Programmer from the crowd is by theL programming language he (or she) uses. Real Programmers use FORTRAN.  QuicheN Eaters use PASCAL. Nicklaus Wirth, the designer of PASCAL, gave a talk once atJ which he was asked "How do you pronounce your name?". He replied, "You canN either call me by name, pronouncing it 'Veert', or call me by value, 'Worth'."J One can tell immediately from this comment that Nicklaus Wirth is a QuicheK Eater. The only parameter passing mechanism endorsed by Real Programmers is N call-by-value-return, as implemented in the IBM\370 FORTRAN-G and H compilers.N Real programmers don't need all these abstract concepts to get their jobs doneO -- they are perfectly happy with a keypunch, a FORTRAN IV compiler, and a beer.   5    *  Real Programmers do List Processing in FORTRAN.   9    *  Real Programmers do String Manipulation in FORTRAN.   G    *  Real Programmers do Accounting (if they do it at all) in FORTRAN.   F    *  Real Programmers do Artificial Intelligence programs in FORTRAN.  N 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 )                    ----------------------x  J         The academics in computer science have gotten into the "structuredO programming" rut over the past several years. They claim that programs are moreaM easily understood if the programmer uses some special language constructs andlL techniques. They don't all agree on exactly which constructs, of course, andN the examples they use to show their particular point of view invariably fit onL a single page of some obscure journal or another -- clearly not enough of anN example to convince anyone. When I got out of school, I thought I was the bestM programmer in the world. I could write an unbeatable tic-tac-toe program, usetM five different computer languages, and create 1000-line programs that WORKED.iM (Really!) Then I got out into the Real World. My first task in the Real WorldmN was to read and understand a 200,000-line FORTRAN program, then speed it up byJ a factor of two. Any Real Programmer will tell you that all the StructuredO Coding in the world won't help you solve a problem like that -- it takes actualnO talent. Some quick observations on Real Programmers and Structured Programming:l  3    *  Real Programmers aren't afraid to use GOTO's.e  @    *  Real Programmers can write five-page-long DO loops without       getting confused.e  E    *  Real Programmers like Arithmetic IF statements -- they make the        code more interesting.  H    *  Real Programmers write self-modifying code, especially if they can8       save 20 nanoseconds in the middle of a tight loop.  B    *  Real Programmers don't need comments -- the code is obvious.  F    *  Since FORTRAN doesn't have a structured IF, REPEAT ... UNTIL, orD       CASE statement, Real Programmers don't have to worry about notE       using them. Besides, they can be simulated when necessary using        assigned GOTO's.  M         Data Structures have also gotten a lot of press lately. Abstract DatasN Types, Structures, Pointers, Lists, and Strings have become popular in certainO circles. Wirth (the above-mentioned Quiche Eater) actually wrote an entire book O [2] contending that you could write a program based on data structures, insteadtK of the other way around. As all Real Programmers know, the only useful dataoI structure is the Array. Strings, lists, structures, sets -- these are all J special cases of arrays and can be treated that way just as easily withoutN messing up your programing language with all sorts of complications. The worstG thing about fancy data types is that you have to declare them, and RealmN Programming Languages, as we all know, have implicit typing based on the first, letter of the (six character) variable name.                &                      OPERATING SYSTEMS&                      -----------------  N         What kind of operating system is used by a Real Programmer?  CP/M? GodL forbid -- CP/M, after all, is basically a toy operating system.  Even littleA old ladies and grade school students can understand and use CP/M.p  K         Unix is a lot more complicated of course -- the typical Unix hacker L never can remember what the PRINT command is called this week -- but when itO gets right down to it, Unix is a glorified video game.  People don't do Serious L Work on Unix systems: they send jokes around the world on UUCP-net and write$ adventure games and research papers.  L         No, your Real Programmer uses OS\370. A good programmer can find andN understand the description of the IJK305I error he just got in his JCL manual.K A great programmer can write JCL without referring to the manual at all.  AsK truly outstanding programmer can find bugs buried in a 6 megabyte core dumpnB without using a hex calculator.  (I have actually seen this done.)  K         OS is a truly remarkable operating system. It's possible to destroyeK days of work with a single misplaced space, so alertness in the programming O staff is encouraged. The best way to approach the system is through a keypunch.nO Some people claim there is a Time Sharing system that runs on OS\370, but afterdD careful study I have come to the conclusion that they were mistaken.    &                      PROGRAMMING TOOLS&                       ----------------  H         What kind of tools does a Real Programmer use? In theory, a RealL Programmer could run his programs by keying them into the front panel of theN computer.  Back in the days when computers had front panels, this was actuallyJ done occasionally.  Your typical Real Programmer knew the entire bootstrapK loader by memory in hex, and toggled it in whenever it got destroyed by hismO program. (Back then, memory was memory -- it didn't go away when the power wentbG off.  Today, memory either forgets things when you don't want it to, orfI remembers things long after they're better forgotten.) Legend has it thatnM Seymore Cray, inventor of the Cray I supercomputer and most of Control Data's-L computers, actually toggled the first operating system for the CDC7600 in onO the front panel from memory when it was first powered on.  Seymore, needless tot say, is a Real Programmer.  N         One of my favorite Real Programmers was a systems programmer for TexasN Instruments.  One day he got a long distance call from a user whose system hadO crashed in the middle of saving some important work. Jim was able to repair thehM damage over the phone, getting the user to toggle in disk I/O instructions attO the front panel, repairing system tables in hex, reading register contents backeI over the phone.  The moral of this story: while a Real Programmer usuallyoN includes a keypunch and lineprinter in his toolkit, he can get along with just- a front panel and a telephone in emergencies.t              K         In some companies, text editing no longer consists of ten engineers H standing in line to use an 029 keypunch. In fact, the building I work inO doesn't contain a single keypunch. The Real Programmer in this situation has tosK do his work with a "text editor" program.  Most systems supply several textdK editors to select from, and the Real Programmer must be careful to pick oneyI that reflects his personal style.  Many people believe that the best textMO editors in the world were written at Xerox Palo Alto Research Center for use oneM their Alto and Dorado computers [3].  Unfortunately, no Real Programmer wouldsI ever use a computer whose operating system is called SmallTalk, and wouldt0 certainly not talk to the computer with a mouse.  O         Some of the concepts in these Xerox editors have been incorporated into J editors running on more reasonably named operating systems -- EMACS and VIL being two.  The problem with these editors is that Real Programmers considerM "what you see is what you get" to be just as bad a concept in Text Editors asaN it is in women.  No the Real Programmer wants a "you asked for it, you got it"O text editor -- complicated, cryptic, powerful, unforgiving, dangerous. TECO, to  be precise.l  F         It has been observed that a TECO command sequence more closelyJ resembles transmission line noise than readable text [4].  One of the moreN entertaining games to play with TECO is to type your name in as a command lineJ and try to guess what it does.  Just about any possible typing error whileF talking with TECO will probably destroy your program, or even worse --B introduce subtle and mysterious bugs in a once working subroutine.  J         For this reason, Real Programmers are reluctant to actually edit aM program that is close to working.  They find it much easier to just patch thedN binary object code directly, using a wonderful program called SUPERZAP (or itsO equivalent on non-IBM machines).  This works so well that many working programsrM on IBM systems bear no relation to the original FORTRAN code.  In many cases,pM the original source code is no longer available.  When it comes time to fix aaN program like this, no manager would even think of sending anything less than aM Real Programmer to do the job -- no Quiche Eating structured programmer wouldu9 even know where to start.  This is called "job security".   <         Some programming tools NOT used by Real Programmers:  F    *  FORTRAN preprocessors like MORTRAN and RATFOR. The Cuisinarts ofC       programming -- great for making Quiche. See comments above ons       structured programming.r  F    *  Source language debuggers. Real Programmers can read core dumps.  K    *  Compilers with array bounds checking. They stifle creativity, destroyrJ       most of the interesting uses for EQUIVALENCE, and make it impossibleL       to modify the operating system code with negative subscripts. Worst of*       all, bounds checking is inefficient.  G    *  Source code maintenance systems. A Real Programmer keeps his code H       locked up in a card file, because it implies that its owner cannot1       leave his important programs unguarded [5].g              +                 THE REAL PROGRAMMER AT WORKW+                 ---------------------------o  N         Where does the typical Real Programmer work? What kind of programs areL worthy of the efforts of so talented an individual?  You can be sure that noL Real Programmer would be caught dead writing accounts-receivable programs inM COBOL, or sorting mailing lists for People magazine.  A Real Programmer wants / tasks of earth-shaking importance (literally!).e  H    *  Real  Programmers work for Los Alamos National Laboratory, writing>       atomic bomb simulations to run on Cray I supercomputers.  F    *  Real Programmers work for the National Security Agency, decoding       Russian transmissions.  H    *  It was largely due to the efforts of thousands of Real ProgrammersD       working for NASA that our boys got to the moon and back before       the Russkies.   F    *  Real Programmers are at work for Boeing  designing the operating"       systems for cruise missiles.  H         Some of the most awesome Real Programmers of all work at the JetK Propulsion Laboratory in California. Many of them know the entire operatingaM system of the Pioneer and Voyager spacecraft by heart.  With a combination ofLG large ground-based FORTRAN programs and small spacecraft-based assemblyvI language programs, they are able to do incredible feats of navigation andaM improvisation -- hitting ten-kilometer wide windows at Saturn after six yearsyF in space, repairing or bypassing damaged sensor platforms, radios, andM batteries.  Allegedly, one Real Programmer managed to tuck a pattern-matching N program into a few hundred bytes of unused memory in a Voyager spacecraft that> searched for, located, and photographed a new moon of Jupiter.  N         The current plan for the Galileo spacecraft is to use a gravity assistM trajectory past Mars on the way to Jupiter.  This trajectory passes within 80 J +/-3 kilometers of the surface of Mars.  Nobody is going to trust a PASCALD program (or a PASCAL programmer) for navigation to these tolerances.  O         As you can tell, many of the world's Real Programmers work for the U.S. F Government -- mainly the Defense Department.  This is as it should be.O Recently, however, a black cloud has formed on the Real Programmer horizon.  It M seems that some highly placed Quiche Eaters at the Defense Department decided J that all Defense programs should be written in some grand unified languageI called "ADA" ((C), DoD).  For a while, it seemed that ADA was destined tosM become a language that went against all the precepts of Real Programming -- anG language with structure, a language with data types, strong typing, anddK semicolons.  In short, a language designed to cripple the creativity of thejM typical Real Programmer.  Fortunately, the language adopted by DoD has enoughtH interesting features to make it approachable -- it's incredibly complex,N includes methods for messing with the operating system and rearranging memory,N and Edsgar Dijkstra doesn't like it [6].  (Dijkstra, as I'm sure you know, wasJ the author of "GoTos Considered Harmful" -- a landmark work in programmingO methodology, applauded by PASCAL programmers and Quiche Eaters alike.) Besides,hJ the determined Real Programmer can write FORTRAN programs in any language.              G         The Real Programmer might compromise his principles and work onsK something slightly more trivial than the destruction of life as we know it,-H providing there's enough money in it. There are several Real ProgrammersK building video games at Atari, for example. (But not playing them -- a RealnK Programmer knows how to beat the machine every time: no challenge in that.)tO Everyone working at LucasFilm is a Real Programmer.  (It would be crazy to turneH down the money of fifty million Star Trek fans.)  The proportion of RealH Programmers in Computer Graphics is somewhat lower than the norm, mostlyM because nobody has found a use for computer graphics yet.  On the other hand,tN all computer graphics is done in FORTRAN, so there are a fair number of people@ doing graphics in order to avoid having to write COBOL programs.  J                                                  Real Programmers...  p. 7    +                 THE REAL PROGRAMMER AT PLAYm+                 ---------------------------   J         Generally, the Real Programmer plays the same way he works -- withL computers. He is constantly amazed that his employer actually pays him to doL what he would be doing for fun anyway (although he is careful not to expressO this opinion out loud).  Occasionally, the Real Programmer does step out of thegM office for a breath of fresh air and a beer or two.  Some tips on recognizings- Real Programmers away from the computer room:c  I    *  At a party, the Real Programmers are the ones in the corner talkingo?       about operating system security and how to get around it.a  L    *  At a football game, the Real Programmer is the one comparing the plays@       against his simulations printed on 11 by 14 fanfold paper.  H    *  At the beach, the Real Programmer is the one drawing flowcharts in       the sand.o  N    *  At a funeral, the Real Programmer is the one saying "Poor George. And he?       almost had the sort routine working before the coronary."d  O    *  In a grocery store, the Real Programmer is the one who insists on runningtN       the cans past the laser checkout scanner himself, because he never could>       trust keypunch operators to get it right the first time.            0            THE REAL PROGRAMMER'S NATURAL HABITAT0            -------------------------------------  K         What sort of environment does the Real Programmer function best in? O This is an important question for the managers of Real Programmers. ConsideringeO the amount of money it costs to keep one on the staff, it's best to put him (ore6 her) in an environment where he can get his work done.  J         The typical Real Programmer lives in front of a computer terminal. Surrounding this terminal are:  O    *  Listings of all programs the Real Programmer has ever worked on, piled ingF       roughly chronological order on every flat surface in the office.  L    *  Some half-dozen or so partly filled cups of cold coffee. Occasionally,J       there will be cigarette butts floating in the coffee. In some cases,)       the cups will contain Orange Crush.s  O    *  Unless he is very good, there will be copies of the OS JCL manual and the J       Principles of Operation open to some particularly interesting pages.  L    *  Taped to the wall is a line-printer Snoopy calendar for the year 1969.  J    *  Strewn about the floor are several wrappers for peanut butter filledK       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.l  O    *  Hiding in the top left-hand drawer of the desk is a stash of double-stuffs"       Oreos for special occasions.  H    *  Underneath the Oreos is a flowcharting template, left there by theM       previous occupant of the office.  (Real Programmers write programs, noto;       documentation. Leave that to the maintenance people.)t    L         The Real Programmer is capable of working 30, 40, even 50 hours at aO stretch, under intense pressure. In fact, he prefers it that way.  Bad responsebK time doesn't bother the Real Programmer -- it gives him a chance to catch a O little sleep between compiles.  If there is not enough schedule pressure on therL Real Programmer, he tends to make things more challenging by working on someH small but interesting part of the problem for the first nine weeks, thenM finishing the rest in the last week, in two or three 50-hour marathons.  ThisiJ not only impresses the hell out of his manager, who was despairing of everO getting the project done on time, but creates a convenient excuse for not doings the documentation.  In general:c  F    *  No Real Programmer works 9 to 5 (unless it's the ones at night).  +    *  Real Programmers don't wear neckties.r  4    *  Real Programmers don't wear high-heeled shoes.  <    *  Real Programmers arrive at work in time for lunch [9].  I    *  A Real Programmer might or might not know his wife's name. He does,-<       however, know the entire ASCII (or EBCDIC) code table.  M    *  Real Programmers don't know how to cook.  Grocery stores aren't open at M       three in the morning.  Real Programmers survive on Twinkies and coffee.-              #                          THE FUTUREi#                          ----------r  O         What of the future?  It is a matter of some concern to Real ProgrammersaK that the latest generation of computer programmers are not being brought upuN with the same outlook on life as their elders.  Many of them have never seen aM computer with a front panel.  Hardly anyone graduating from school these dayssM can do hex arithmetic without a calculator.  College graduates these days are N soft -- protected from the realities of programming by source level debuggers,K text editors that count parentheses, and "user friendly" operating systems.tO Worst of all, some of these alleged "computer scientists" manage to get degreesaM without ever learning FORTRAN!  Are we destined to become an industry of Unixe hackers and PASCAL programmers?i  K         From my experience, I can only report that the future is bright forsO Real Programmers everywhere. Neither OS\370 nor FORTRAN show any signs of dying M out, despite all the efforts of PASCAL programmers the world over.  Even morenO subtle tricks, like adding structured coding constructs to FORTRAN have failed.iK Oh sure, some computer vendors have come out with FORTRAN 77 compilers, butgG every one of them has a way of converting itself back into a FORTRAN 66tL compiler at the drop of an option card -- to compile DO loops like God meant them to be.   N         Even Unix might not be as bad on Real Programmers as it once was.  TheM latest release of Unix has the potential of an operating system worthy of anyoL Real Programmer -- two different and subtly incompatible user interfaces, anO arcane and complicated teletype driver, virtual memory.  If you ignore the factrK that it's "structured", even 'C' programming can be appreciated by the RealfO Programmer: after all, there's no type checking, variable names are seven (ten?bO eight?) characters long, and the added bonus of the Pointer data type is thrownIO in -- like having the best parts of FORTRAN and assembly language in one place. < (Not to mention some of the more creative uses for #define.)  K         No, the future isn't all that bad.  Why, in the past few years, theeM popular press has even commented on the bright new crop of computer nerds andmJ hackers ([7] and [8]) leaving places like Stanford and M.I.T. for the RealK World.  From all evidence, the spirit of Real Programming lives on in theseyK young men and women.  As long as there are ill-defined goals, bizarre bugs,hL and unrealistic schedules, there will be Real Programmers willing to jump inN and Solve The Problem, saving the documentation for later.  Long live FORTRAN!    %                        ACKNOWLEGEMENT %                        --------------w  O         I would like to thank Jan E., Dave S., Rich G., Rich E., for their helphM in characterizing the Real Programmer, Heather B. for the illustration, KathyhJ E. for putting up with it, and atd!avsdS:mark for the initial inspiration.              #                          REFERENCESo#                          ----------e  <     [1]  Feirstein, B., "Real Men  don't  Eat  Quiche",  New"          York, Pocket Books, 1982.  <     [2]  Wirth,  N.,  "Algorithms  +   Data   Structures   =(          Programs", Prentice Hall, 1976.  <     [3]  Ilson, R., "Recent Research  in  Text  Processing",<          IEEE  Trans.   Prof.  Commun., Vol.  PC-23, No.  4,          Dec.  4, 1980.(  <     [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  Nostrand  Reinhold,          1971, p.  110.v  <     [6]  Dijkstra, E., "On the GREEN language  submitted  to<          the  DoD",  Sigplan  notices,  Vol. 3  No.  10, Oct          1978.  <     [7]  Rose, Frank, "Joy of Hacking", Science 82, Vol.   3$          No.  9, Nov 82, pp.  58-66.  <     [8]  "The Hacker Papers", Psychology Today, August 1980.  <     [9]  sdcarl!lin, "Real Programmers", UUCP-net,  Thu  Oct          21 16:55:16 1982a          
 			DICTIONARY 
 			----------s   ABEND:	tD 	The IBM term for ABortive END. It's what you do to bring the systemA 	down when all else fails. Also, (jokingly) the command issued ton> 	the system to enable the third-shift operators to leave early5 	(from the german Guten Abend, meaning good evening).r   Real Men Don't Eat Quiche:B 	It's a wonderful little booklet, describing, with a lot of humor,< 	how a Modern Real Man can live in a world of quiche eaters.  
 Cuisinart:A 	State-of-the-art, and rather expensive, brand of food processor.b   Call-by-value-return: F 	This is how FORTRAN compilers usually pass parameters to subroutines.C 	It's not the same as call by reference (or by name), since you arelE 	not passing the addresses (references to) each individual parameter,gC 	but rather both the caller and the callee know where the parameter ) 	block is and deal with it appropriately.n   Arithmetic-IF statements:c Computed GOTO: Assigned GOTO:B 	`Interesting' FORTRAN constructs: An arithmetic if is a statement 	like this:S% 	IF (expression) label1,label2,label3-F 	If expression evaluates to negative, zero, or positive, the execution= 	will continue at label1, label2 or label3, respectively. In oA 	REAL FORTRAN, of course, expression is just an integer variable! 7 	A computed GOTO is like the ON GOTO in BASIC (yuck!):  " 	GOTO (label1,label2,...,labeln),N; 	when N is an index into the list of labels. If N<0 or N>n r% 	the following statement is executed.iA 	An assigned GOTO is a bit different. You can assigne a label to a< 	an integer variable using the ASSIGN statement; you can sayG 	ASSIGN 10 TO IFOO, and then use IFOO as a label (e.g., GOTO IFOO). Theo@ 	GOTO IFOO (label1,label2,...,labeln) statement branches to thatE 	label matched by IFOO. If none is matched, execution continues. It's = 	used when IFOO can have been set to a variety of labels, buteF 	you only want to branch is it has been set to some particular values.< 	You can say it's a set membership operation! Now, how many   	CS seniors know that, I wonder!   CP/M:aA 	Control Program for Microcomputers. A very antiquated (ca 1978?)oA 	rudimentary operating system for 8080-based microcomuters. Wouldh@ 	have been picked up by IBM instead of MSDOS, (then called QDOS)A 	had the president of Digital Research not been out to lunch withl$ 	instructions not to be interrupted!   IJK305I:? 	IBM messages are usually three letters (indicating the module iB 	the error occured in), followed by a number, followed by a letter? 	indicating the severity of the error. I is Information. IJK isa? 	a fictitious prefiex. The closest to that one is IKJ, which iseE 	the MVS (then OS) nucleus, if my memory serves me right. (I actuallyo; 	tried to look up this message when I was working for IBM!)s  
 Orange Crush:pD 	Fluorescent-orange colored liquid, kind of like orange soda without 	the carbonation. Gross.  ! Peanut-butter-filled-cheese-bars:nA 	Vending-machine type of junk food. Also available at supermarketP@ 	checkout counters. These are cheese-flavored (just flavored, noF 	real cheese) crackers filled with rancid peanut butter or mock-cheese? 	spread. Usually three one-square-inch sandwiches to a package.o   Double-stuffed Oreos: E 	A brand of cookies made by Nabisco. They are `sandwich' cookies, two @ 	~2 inch, very dark, supposedly chocolate-flavor cookies, with a; 	vanilla-flavored stuffing. They are very common in the US.R  	 Twinkies:rA 	YA example of junk food. These are small cakes filled with some m4 	sort of custard. They are not too bad (taste-wise). --D             "the C shell is flakier than a snowstorm."  (Guy Harris)