How to Shoot Yourself In the Foot
The proliferation of modern programming languages (all of which seem to have stolen countless features from one another) sometimes makes it difficult to remember what language you're currently using. This guide is offered as a public service to help programmers who find themselves in such dilemmas.
- C
- You shoot yourself in the foot.
- C++
- You accidently create a dozen instances of yourself and shoot them
all in the foot. Providing emergency medical assistance is impossible
since you can't tell which are bitwise copies and which are just
pointing at others and saying "That's me, over there."
- FORTRAN
- You shoot yourself in each toe, iteratively, until you run out of
toes; then you shoot the sixth bullet anyway since no exception
processing was anticipated.
- Modula-2
- After realizing that you can't actually accomplish anything in this
language, you shoot yourself in the head.
or
You perform a shooting on what might be currently a foot with what
might be currently a bullet shot by what might currently be a gun.
- COBOL
- USEing a COLT 45 HANDGUN,
AIM gun at LEG.FOOT,
THEN place ARM.HAND.FINGER
on HANDGUN.TRIGGER and SQUEEZE.
THEN return HANDGUN to
HOLSTER. CHECK whether
shoelace needs to be retied.
- Lisp
- You shoot yourself in the appendage which holds the gun with which
you shoot yourself in the appendage which holds the gun with which you
shoot yourself in the appendage which holds...
- BASIC (interpreted)
- You shoot yourself in the foot with a water pistol until your leg is
waterlogged and rots off.
- BASIC (compiled)
- You shoot yourself in the foot with a BB using a SCUD missile
launcher.
- Visual Basic
- You'll really only appear to have shot yourself in the foot,
but you'll have so much fun doing it that you won't care.
- APL
- You shoot yourself in the foot; then spend all day figuring out how
to do it in fewer characters.
or
You hear a gunshot and there's a hole in your foot, but you don't
remember enough linear algebra to understand what happened.
or
@#&^$%&%^ foot
- Pascal
- The compiler won't let you shoot yourself in the foot.
or
Same as Modula-2 except that the bullet is not the right type for
the gun and your hand is blown off.
- Forth
- Foot yourself in the shoot.
or
BULLET DUP3 * GUN LOAD FOOT AIM TRIGGER PULL BANG!
EMIT DEAD IF DROP ROT THEN (This takes about five bytes of
memory, executes in two to ten clock cycles on any processor and can be
used to replace any existing function of the language as well as in any
future words). (Welcome to bottom up programming - where you, too, can
perform compiler pre-processing instead of writing code)
- Snobol
- You grab your foot with your hand, then rewrite your hand to be a
bullet. The act of shooting the original foot then changes your
hand/bullet into yet another foot (a left foot).
or
If you succeed, shoot yourself in the left foot. If you fail, shoot
yourself in the right foot.
- Prolog
- You tell your program you want to be shot in the foot. The program
figures out how to do it, but the syntax doesn't allow it to explain.
or
You attempt to shoot yourself in the foot, but the bullet, failing
to find its mark, backtracks to the gun, which then explodes in your
face.
- Scheme
- As Lisp, but none of the other appendages are aware of this
happening.
- Algol
- You shoot yourself in the foot with a musket. The musket is
aesthetically fascinating and the wound baffles the adolescent medic in
the emergency room.
- Ada
- If you are dumb enough to actually use this language, the United
States Department of Defense will kidnap you, stand you up in front of a
firing squad and tell the soldiers, "Shoot at the feet."
or
The Department of Defense shoots you in the foot after offering you
a blindfold and a last cigarette.
or
After correctly packaging your foot, you attempt to concurrently
load the gun, pull the trigger, scream and shoot yourself in the foot.
When you try, however, you discover that your foot is of the wrong type.
- Smalltalk
- You spend so much time playing with the graphics and windowing system
that your boss shoots you in the foot, takes away your workstation and
makes you develop in COBOL on a character terminal.
- PL/I
- You consume all available system resources, including all the offline
bullets. The Data Processing & Payroll Department doubles its size,
triples its budget, acquires four new mainframes and drops the original
one on your foot.
- Postscript
- foot bullets 6 locate loadgun aim gun shoot showpage
- PERL
- You stab yourself in the foot repeatedly with an incredibly large and
very heavy Swiss Army knife.
or
You pick up the gun and begin to load it. The gun and your foot
begin to grow to huge proportions and the world around you slows down,
until the gun fires. It makes a tiny hole, which you don't feel.
- Assembly Language
- You crash the OS and overwrite the root disk. The system
administrator arrives and shoots you in the foot. After a moment of
contemplation, the administrator shoots himself in the foot and then
hops around the room rabidly shooting at everyone in sight.
or
You try to shoot yourself in the foot only to discover you must
first reinvent the gun, the bullet, and your foot.
- Hypertalk
- Put the first bullet of the gun into foot left of leg of you. Answer
the result.
- Motif
- You spend days writing a UIL description of your foot, the
trajectory, the bullet and the intricate scrollwork on the ivory handles
of the gun. When you finally get around to pulling the trigger, the gun
jams.
- Powerbuilder
- While attempting to load the gun you discover that the LoadGun system
function is buggy; as a work around you tape the bullet to the outside
of the gun and unsuccessfully attempt to fire it with a nail. In
frustration you club your foot with the butt of the gun and explain to
your client that this approximates the functionality of shooting
yourself in the foot and that the next version of Powerbuilder will fix
it.
Here's an extension that looks at operating systems
- Unix
- You shoot yourself in the foot
or
% ls
foot.c foot.h foot.o toe.c toe.o
% rm * .o
rm: .o: No such file or directory
% ls
%
- 370 JCL
- You send your foot down to MIS with a 4000-page document explaining
how you want it to be shot. Three years later, your foot comes back
deep-fried.
- VMS
-
$ MOUNT/DENSITY=.45/LABEL=BULLET/MESSAGE="BYE" BULLET::BULLET$GUN SYS$BULLET
$ SET GUN/LOAD/SAFETY=OFF/SIGHT=NONE/HAND=LEFT/CHAMBER=1/ACTION=AUTOMATIC/
LOG/ALL/FULL SYS$GUN_3$DUA3:[000000]GUN.GNU
$ SHOOT/LOG/AUTO SYS$GUN SYS$SYSTEM:[FOOT]FOOT.FOOT
%DCL-W-ACTIMAGE, error activating image GUN
-CLI-E-IMGNAME, image file $3$DUA240:[GUN]GUN.EXE;1
-IMGACT-F-NOTNATIVE, image is not an OpenVMS Alpha AXP image
- sh,csh, etc
- You can't remember the syntax for anything, so you spend five hours
reading manual pages, then your foot falls asleep. You shoot the
computer and switch to C.
- Apple System 7
- Double click the gun icon and a window giving a selection for guns,
target areas, plus balloon help with medical remedies, and assorted
sound effects. Click "shoot" button and a small bomb appears
with note "Error of Type 1 has occurred."
- Windows 3.1
- Double click the gun icon and wait. Eventually a window opens giving
a selection for guns, target areas, plus balloon help with medical
remedies, and assorted sound effects. Click "shoot" button and
a small box appears with note "Unable to open Shoot.dll, check that
path is correct."
- Windows 95
- Your gun is not compatible with this OS and you must buy an upgrade
and install it before you can continue. Then you will be informed that
you don't have enough memory.
- Windows NT
- The gun is so huge and unwieldy that you have to keep swapping it from one hand to the other.
- CP/M
- I remember when shooting yourself in the foot with a BB gun was a big
deal.
- DOS
- You finally found the gun, but can't locate the file with the foot
for the life of you.
- Linux
- Generous programmers from around the world all join forces to help you shoot yourself in the foot for free.
- IRIX
- The Terminator shoots you in the foot. A T-Rex bites your other foot.
- VM/CMS
- IBM shoots you in the foot
- Cray
- You shoot yourself in the foot with an Uzi.
And yet some more...
- Paradox
- Not only can you shoot yourself in the foot, your users can too.
- dBase
- You squeeze the trigger, but the bullet moves so slowly that by the
time your foot feels the pain, you've forgotten why you shot yourself
anyway.
or
You buy a gun. Bullets are only available from another company and
are promised to work so you buy them. Then you find out that the next
version of the gun is the one scheduled to actually shoot bullets.
- DBase IV, V1.0
- You pull the trigger, but it turns out that the gun was a poorly
designed hand grenade and the whole building blows up.
- SQL
- You cut your foot off, send it out to a service bureau and when it
returns, it has a hole in it but will no longer fit the attachment at
the end of your leg.
- Clipper
- You grab a bullet, get ready to insert it in the gun so that you can
shoot yourself in the foot and discover that the gun that the bullets
fits has not yet been built, but should be arriving in the mail
_REAL_SOON_NOW_.
- English
- You put your foot in your mouth, then bite it off. (For those who
don't know, English is a McDonnell Douglas/PICK query language which
allegedly requires 110% of system resources to run happily.)
- FidoNet
- You put your foot in your mouth, then echo it internationally.
- Internet
- You put your foot in your mouth, shoot it, then spam the bullet so
that everybody gets shot in the foot.
- troff
- rmtroff -ms -Hdrwp | lpr -Pwp2 & .*place bullet in footer .B
.NR FT +3i .in 4 .bu Shoot! .br .sp .in -4 .br .bp NR HD -2i .*
- Genetic Algorithms
- You create 10,000 strings describing the best way to shoot yourself
in the foot. By the time the program produces the optimal solution,
humans have evolved wings and the problem is moot.
CE 2003 / 12" Floppies