home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / texts / term_papers / lab5.dat < prev    next >
Text File  |  1994-03-21  |  9KB  |  149 lines

  1.                       REAL PROGRAMMERS DON'T USE PASCAL
  2.  
  3.                               PROGRAMMING TOOLS
  4.  
  5. What kinds of tools does a Real Programmer use?  In theory, a Real Programmer
  6. could run his program by keying them into the front panel of the computer.
  7. Back in the days when computers had front panels, this was actually done
  8. occasionally.  Your typical Real Programmer knew the entire bootstrap loader
  9. by memory in hex, and toggled it in whenever his program destroyed the
  10. bootstrap.  Back then, memory was memory; it didn't go away when the power
  11. was turned off.  Today, memory either forgets things when you don't want it
  12. to, or remembers things long after they're best forgotten.  Legend has it
  13. that Seymour Cray (who invented the Cray-1 supercomputer, and most of Control
  14. Data's computers) actually toggled the first operating system for the
  15. CDC-7600 in on the front panel from memory when it was first powered on.
  16. Seymour, needless to say, is a Real Programmer.
  17.  
  18. One of my favorite Real Programmers was a systems programmer at Texas
  19. Instruments.  One day, he got a long-distance call from a user whose system
  20. had crashed in the middle of saving some important work.  Jim was able to
  21. repair the damage over the telephone, getting the user to toggle in disk I/O
  22. instructions at the front panel, repairing system tables in hex, reading
  23. register contents back over the telephone.  The moral of the story: while a
  24. Real Programmer usually includes a terminal and lineprinter in his toolkit,
  25. he can get along with just a front panel and a telephone in emergencies.
  26.  
  27. Most systems supply several text editors to select from, and the Real
  28. Programmer must be careful to pick one that reflects his personal style.
  29. Many people believe that the best text editors in the world were written at
  30. Xerox Palo Alto Research Center for use on their Alto and Dorado computers.
  31. Unfortunately, no Real Programmer would use a computer whose operating system
  32. is called SmallTalk, and would certainly never talk to the computer with a
  33. mouse.
  34.  
  35. Some of the concepts in these Xerox editors have been incorporated into
  36. editors running on more reasonable operating systems: EMACS and VI being two.
  37. The problem with these editors is that Real Programmers consider "what you
  38. see is what you get" is just as bad a concept in Text Editing as it is in
  39. cars.  No, the Real Programmer wants a "you asked for it, you got it" text
  40. editor- complicated, cryptic, powerful, unforgiving, and dangerous.  TECO, to
  41. be precise.
  42.  
  43. It has been observed that a TECO command sequence more closely resembles
  44. transmission-line noise than readable text.  One of the more entertaining
  45. games to play with TECO is to type your name in as a command line and try to
  46. guess what it does.  Just about any possible typing error while talking with
  47. TECO will probably destroy your program, or even worse, introduce subtle and
  48. mysterious bugs in a once working subroutine.
  49.  
  50. For this reason, Real Programmers are reluctant to actually edit a program
  51. that is close to working.  They find it much easier instead to just patch the
  52. binary object code directly, using a wonderful program called SUPERZAP (or
  53. it's equivalent on non-IBM machines).  This works so well that many working
  54. programs on IBM systems bear no relation to the original FORTRAN code.  In
  55. many cases, the original source code is no longer available.  When it comes
  56. time to fix a program like this, no manager would even think of sending
  57. anyone less than a Real Programmer to do the job; no Quiche Eating Structured
  58. Programmer would even know where to start.  This is called "job security".
  59.  
  60. Here are some programming tools that Real Programmers don't use:
  61.  
  62.    FORTRAN preprocessors line MORTRAN or RATFOR.  These are the Cuisinarts of
  63.    programming; great for making Quiche.
  64.  
  65.    Source language debuggers.  Real Programmers can read core dumps.
  66.  
  67.    Compilers with array bounds checking.  They stifle creativity, destroy most
  68.    of the interesting uses for the EQUIVALENCE statement, and make it 
  69.    impossible to modify the operating system code with negative subscripts.
  70.    Worst of all, bounds checking is inefficient.
  71.  
  72.    Source code maintenance systems.  A Real Programmer keeps the code locked
  73.    up on a floppy, because it implies that the owner cannot leave important
  74.    programs unguarded.
  75.  
  76.  
  77.  
  78.                          THE REAL PROGRAMMER AT WORK
  79.  
  80. Where does the Real Programmer work?  What kinds of programs are worthy of
  81. the efforts of so talented an individual? You can be sure that no Real
  82. Programmer would be caught dead writing accounts-receivable programs in
  83. COBOL, or sorting mailing lists for People magazine.  A Real Programmer wants
  84. tasks of earth-shaking importance (literally!).
  85.  
  86. Real Programmers work for Los Alamos National Laboratory, writing atomic bomb
  87. simulations to run on Cray-2 super computers.
  88.  
  89. Real Programmers work for the National Security Agency, decoding Russian
  90. transmissions.
  91.  
  92. Real Programmers programmed the computers in the Space Shuttle.
  93.  
  94. Real Programmers are at work for Boeing, designing the operating systems for
  95. cruise missiles.
  96.  
  97.  
  98. Some of the most awesome Real Programmers of all work at the Jet Propulsion
  99. Laboratory in California.  Many of them know the entire operating system of
  100. the Pioneer and Voyager spacecraft by heart.  With a combination of large
  101. ground-based FORTRAN programs and small spacecraft-based assembly language
  102. programs, they were able to do incredible feats of navigation and
  103. improvisation- hitting ten kilometer wide windows at Saturn after six years
  104. in space, repairing or bypassing damaged sensor platforms, radios, batteries.
  105. Allegedly, one Real Programmer managed to tuck a pattern-matching program
  106. into a few hundred bytes of unused memory in a Voyager spacecraft that
  107. searched for, located, and photographed a new moon of Jupiter.
  108.  
  109. The current plan for the Galileo spacecraft is to use a gravity assist
  110. trajectory past Mars on the way to Jupiter.  This trajectory passes 80 +- 3
  111. kilometers from the surface of Mars.  Nobody is going to trust a Pascal
  112. program (or a Pascal programmer for that matter) for navigation to those
  113. tolerances.
  114.  
  115. As you can tell, many of the world's Real Programmers work for the U.S.
  116. Government; mainly the Department of Defense.  This is as it should be.
  117. Recently however, a black cloud has formed on the Real Programmer's horizon.
  118. It seems some highly placed Quiche Eaters at the Department of Defense
  119. decided that all Defense programs should be written in some grand unified
  120. language called Ada ((c) DoD).  For a while, it seemed that Ada was destined
  121. to become a language that went against all precepts of Real Programming; a
  122. language with structure, a language with data types, strong typing, and
  123. semicolons.  In short, a language designed to cripple the creativity of the
  124. Real Programmer.  Fortunately, the language which the DoD adopted has enough
  125. interesting features to make it approachable; it's incredibly complex,
  126. includes methods for messing with the operating system and rear ranging
  127. memory, and E. Dijkstra doesn't like it.  Dijkstra, as I'm sure you know, was
  128. the author of "The Go To Considered Harmful"; a landmark work in programming
  129. methodology, applauded by Pascal Programmers and Quiche Eaters alike.
  130. Besides, the determined Real Programmer can write FORTRAN programs in any
  131. language.  If you ignore the fact that it's structured, even C programming
  132. can be appreciated by Real Programmers.  After all, there's no type checking,
  133. subscript checking, and the added bonus of the Pointer data type is thrown
  134. in; like having the best parts of FORTRAN and assembly language at the same
  135. time (not even talking about #define).
  136.  
  137. Real Programmers might compromise their principles and work on something
  138. slightly more trivial than the destruction of life as we know it, providing
  139. there's enough money in it.  There are several Real Programmers writing
  140. computer games at Sierra On-Line, for example, (but not playing them; a Real
  141. Programmer knows how to beat the machine every time- there's no challenge in
  142. that).  Everybody at LucasFilm is a Real Programmer (it would be crazy to
  143. turn down the money of fifty million Star Trek fans).  The proportion of Real
  144. Programmers in Computer Graphics is somewhat lower than the norm, mainly
  145. because no one has found a use for Computer Graphics yet.  On the other hand,
  146. most Computer Graphics programming is done in FORTRAN, so there are a fair
  147. number of people doing Graphics in order to avoid having to write COBOL
  148. programs.
  149.