Collage 056 H u m o u r N e t 1995 Welcome to Collage 56! Well, what the heck, since I got the Redneck jokes out, I figured I'd just go ahead and send out the third (and last) edition of the "Real Programmers" guide. If you are not a programmer (real or otherwise), HIT THE DELETE KEY NOW, because none of this is very likely to be amusing to you. But if you are (or know) a Real Programmer, read on ... NOTE: The entire "Real Programmer" manuscript--including the references and glossary of terms (not included here) can be retrieved from the HumourNet archives. Several other files, such as the complete collection of blonde jokes (never distributed because of its length), the "P.C. Primer," and the "Great GHz Grape Game" (among others) are also available in the archives. - Vince Sabio HumourNet Moderator HumourNet@telephonet.com ____________________________________________________________________ Opener (above) Copyright 1995 by Vincent Sabio Permission is hereby granted to forward or post this "Collage"; please observe the guidelines stated at the end of the message. ____________________________________________________________________ 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 Programmer wants tasks of earth-shaking importance (literally!). * Real Programmers work for Los Alamos National Laboratory, 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. * 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 photographed 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 a 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 Department. 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 Department decided that all Defense programs should be written in some grand unified language called "ADA" ((C), 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 incredibly complex, includes methods for messing with the operating 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 Programmer 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 Programmer knows how to beat the machine every time: no challenge in that.) Everyone working at LucasFilm is a Real Programmer. (It would be crazy to turn down the money of fifty million 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 of 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 opinion 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 comparing 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. * At a funeral, the Real Programmer is the one saying "Poor George. And he almost had the sort routine working 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 function 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 computer 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 coffee. Occasionally, there will be cigarette butts floating 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 calendar 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 flowcharting template, left there by the previous occupant of the office. (Real Programmers write programs, not documentation. Leave that to the maintenance 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 impresses 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 [9]. * 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 programmers are not being brought up with the same outlook on life as their elders. Many of them have never seen a computer with a front panel. Hardly anyone graduating from school these days can do hex arithmetic without a calculator. College graduates these days are soft -- protected from the realities of programming by source level debuggers, text editors that count parentheses, and "user friendly" operating systems. Worst of all, some of these alleged "computer scientists" manage to get degrees without ever learning FORTRAN! 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 compiler 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 FORTRAN 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! +------------------------------------------------------+ |Ed Post, "Real Programmers Don't Use Pascal", | |_DATAMATION_, July 1983, pp. 263-265 (Readers' Forum).| +------------------------------------------------------+ ******************************************************************** Anyone Without a Sense of Humor Is At The Mercy of The Rest of Us. ******************************************************************** "HumourNet" is brought to you by Lyris -- an innovative new e-mail list server from The Walter Shelby Group, Ltd. For more information on Lyris, see . To subscribe to the "HumourNet" mailing list, send the following command to : subscribe HumourNet your_name, your_city, your_state or country where "your_name" is your real name, etc. If you run into problems, then either (1) send any message to for a more detailed set of instructions, (2) subscribe via Lyris's Web interface at , or (3) send a *detailed* description of the problem to . To unsubscribe, visit our Web interface at or refer to your Welcome message for detailed instructions. For instructions on contributing to HumourNet, send any message to . >>> Note: Attributions in Collage openers are to the contributors, not necessarily the authors. Authors' credits are included in the text wherever possible. <<< The HumourNet archives can be accessed via the Web and FTP: Web: FTP: Permission is granted to forward or post this Collage, provided that 1) the message is forwarded/posted in its ENTIRETY, from the line containing the Collage number and date to the end of this trailer, and 2) no fee is charged. There are "relaxed" forwarding/posting guidelines available; for a copy of them, send any message to , or refer to your Welcome message. ******************************************************************** "HumourNet" is a trademark of HumourNet Communications, Ltd. ********************************************************************