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.
or
After correctly packing your foot, you attempt to concurrently load the gun,
pull the trigger, scream, and confidently aim at your foot knowing it is safe.
However the cordite in the round does an Unchecked Conversion, fires and shoots
you in the foot anyway.
Eiffel
You create a GUN object, two FOOT objects and a BULLET object. The GUN passes both the FOOT objects a reference to the BULLET. The FOOT objects increment their hole counts and forget about the BULLET. A little demon then drives a garbage truck over your feet and grabs the bullet (both of it) on the way.
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.
or
You send the message
shoot to gun, with selectors bullet and myFoot. A window pops up saying Gunpowder doesNotUnderstand: spark. After several fruitless hours spent browsing the methods for Trigger, FiringPin and IdealGas, you take the easy way out and create ShotFoot, a subclass of Foot with an additional instance variable bulletHole.
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.
FOOTOS -- A Guide to Modern Operating Systems extended the joke to operating systems, with Unix playing the role of C, of course. And this too has grown...
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.
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.
And it has extended even further...
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.