home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Unsorted BBS Collection
/
thegreatunsorted.tar
/
thegreatunsorted
/
texts
/
term_papers
/
lab5.dat
< prev
next >
Wrap
Text File
|
1994-03-21
|
9KB
|
149 lines
REAL PROGRAMMERS DON'T USE PASCAL
PROGRAMMING TOOLS
What kinds of tools does a Real Programmer use? In theory, a Real Programmer
could run his program 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 whenever his program destroyed the
bootstrap. Back then, memory was memory; it didn't go away when the power
was turned off. Today, memory either forgets things when you don't want it
to, or remembers things long after they're best forgotten. Legend has it
that Seymour Cray (who invented the Cray-1 supercomputer, and most of Control
Data's computers) actually toggled the first operating system for the
CDC-7600 in on the front panel from memory when it was first powered on.
Seymour, needless to say, is a Real Programmer.
One of my favorite Real Programmers was a systems programmer at Texas
Instruments. One day, he got a long-distance call from a user whose system
had crashed in the middle of saving some important work. Jim was able to
repair the damage over the telephone, 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 telephone. The moral of the story: while a
Real Programmer usually includes a terminal and lineprinter in his toolkit,
he can get along with just a front panel and a telephone in emergencies.
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.
Unfortunately, no Real Programmer would use a computer whose operating system
is called SmallTalk, and would certainly never talk to the computer with a
mouse.
Some of the concepts in these Xerox editors have been incorporated into
editors running on more reasonable operating systems: EMACS and VI being two.
The problem with these editors is that Real Programmers consider "what you
see is what you get" is just as bad a concept in Text Editing as it is in
cars. No, the Real Programmer wants a "you asked for it, you got it" text
editor- complicated, cryptic, powerful, unforgiving, and dangerous. TECO, to
be precise.
It has been observed that a TECO command sequence more closely resembles
transmission-line noise than readable text. 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 instead to just patch the
binary object code directly, using a wonderful program called SUPERZAP (or
it's 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
anyone 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".
Here are some programming tools that Real Programmers don't use:
FORTRAN preprocessors line MORTRAN or RATFOR. These are the Cuisinarts of
programming; great for making Quiche.
Source language debuggers. Real Programmers can read core dumps.
Compilers with array bounds checking. They stifle creativity, destroy most
of the interesting uses for the EQUIVALENCE statement, and make it
impossible to modify the operating system code with negative subscripts.
Worst of all, bounds checking is inefficient.
Source code maintenance systems. A Real Programmer keeps the code locked
up on a floppy, because it implies that the owner cannot leave important
programs unguarded.
THE REAL PROGRAMMER AT WORK
Where does the Real Programmer work? What kinds 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-2 super computers.
Real Programmers work for the National Security Agency, decoding Russian
transmissions.
Real Programmers programmed the computers in the Space Shuttle.
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 were 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, 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 80 +- 3
kilometers from the surface of Mars. Nobody is going to trust a Pascal
program (or a Pascal programmer for that matter) for navigation to those
tolerances.
As you can tell, many of the world's Real Programmers work for the U.S.
Government; mainly the Department of Defense. This is as it should be.
Recently however, a black cloud has formed on the Real Programmer's horizon.
It seems some highly placed Quiche Eaters at the Department of Defense
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 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
Real Programmer. Fortunately, the language which the DoD adopted has enough
interesting features to make it approachable; it's incredibly complex,
includes methods for messing with the operating system and rear ranging
memory, and E. Dijkstra doesn't like it. Dijkstra, as I'm sure you know, was
the author of "The Go To 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. If you ignore the fact that it's structured, even C programming
can be appreciated by Real Programmers. After all, there's no type checking,
subscript checking, and the added bonus of the Pointer data type is thrown
in; like having the best parts of FORTRAN and assembly language at the same
time (not even talking about #define).
Real Programmers might compromise their 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 writing
computer games at Sierra On-Line, for example, (but not playing them; a Real
Programmer knows how to beat the machine every time- there's no challenge in
that). Everybody 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, mainly
because no one has found a use for Computer Graphics yet. On the other hand,
most Computer Graphics programming is done in FORTRAN, so there are a fair
number of people doing Graphics in order to avoid having to write COBOL
programs.