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 handy reference, although not authored by me, is offered as a public service to help programmers who find themselves in such a dilemma.

TASK: Shoot yourself in the foot.

C:
You shoot yourself in the foot.
C++:
You accidentally 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.”
Algol:
You shoot yourself in the foot with a musket. The musket is esthetically fascinating, and the wound baffles the adolescent medic in the emergency room.
Perl:

There are so many ways to shoot yourself in the foot that you post a query to comp.lang.perl.misc to determine the optimal approach.

After sifting through 500 replies (which you accomplish with a short perl script), not to mention the cross-posts to the perl5-porters mailing list (for which you upgraded your first sifter into a package, which of course you uploaded to CPAN for others who might have a similar problem, which, of course, is the problem of sorting out email and news, not the problem of shooting yourself in the foot), you set to the task of simply and elegantly shooting yourself in the foot, until you discover that, while it works fine in most cases, NT, VMS, and various flavors of Linux, AIX, and Irix all shoot you in the foot sooner than your perl script could.

Then you decide you can do it better with the new, threaded version…

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).
FORTRAN:
You shoot yourself in each toe until you run out of toes, then you read in the next foot and repeat. If you run out of bullets, you continue with the attempts to shoot yourself anyway because you have no exception-handling capability.
Pascal:
The compiler won’t let you shoot yourself in the foot.
Ada:
After correctly packing 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 you can’t because your foot is of the wrong type.
COBOL:
Using 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 re-tied.
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 the gun with which
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…
Scheme:
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 the gun with which
you shoot yourself in the appendage which holds …
but none of the other appendages are aware of this happening.
FORTH:
Foot in yourself shoot.
Prolog:
You tell your program that you want to be shot in the foot. The program figures out how to do it, but the syntax doesn’t permit it to explain it to you.
BASIC:
Shoot yourself in the foot with a water pistol. On large systems, continue until entire lower body is waterlogged.
HyperTalk:
Put the first bullet of gun into foot left of leg of you. Answer the result.
Motif:
You spend days writing a UIL description of your foot, the bullet, its trajectory, and the intricate scrollwork on the ivory handles of the gun. When you finally get around to pulling the trigger, the gun jams.
APL:
You hear a gunshot, and there’s a hole in your foot, but you don’t remember enough linear algebra to understand what happened.
APL:
You shoot yourself in the foot, then spend all day figuring out how to do it in fewer characters.
Unix:
$ ls
foot.c foot.h foot.o toe.c toe.o
$ rm * .o
rm:.o no such file or directory
$ ls
$
csh:
You can’t remember the syntax for anything, so you spend five hours reading man pages before giving up. You then shoot the computer and switch to C.
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 his feet.”
Concurrent Euclid:
You shoot yourself in somebody else’s foot.
370 JCL:
You send your foot down to MIS and include a 400-page document explaining exactly how you want it to be shot. Three years later, your foot comes back deep-fried.
Assembler:
You try to shoot yourself in the foot, only to discover you must first invent the gun, the bullet and the trigger. And your foot.
Assembler:
Using only 7 bytes of code, you blow off your entire leg in only 2 CPU clock ticks.
Modula2:
After realizing that you can’t actually accomplish anything in this language, you shoot yourself in the head.
Visual Basic:
You’ll really only appear to have shot yourself in the foot, but you’ll have had so much fun doing it that you won’t care.
SNOBOL:
If you succeed, shoot yourself in the left foot. If you fail, shoot yourself in the right foot.
Paradox:
Not only can you shoot yourself in the foot, your users can, too.
Access:
You try to point the gun at your foot, but it shoots holes in all your Borland distribution diskettes instead.
Revelation:
You’re sure you’re going to be able to shoot yourself in the foot, just as soon as you figure out what all these nifty little bullet-thingies are for.

Valid XHTML  1.0 Valid CSS!