I have encountered numerous versions of the paper below, most anonymous. One claims: "it (sic) includes contributions from Fritz Freiheit, Murray S. Kucherawy, Wayne Throop, Giles Constant, and Nick Wallis. The original version, which was rather shorter, was published in the December 1991 issue of Developer's Insight."
For this edition, I have combined several, added a few items, and done some editing and corrections of my own, but claim little originality.
Shooting yourself in the foot
The proliferation of modern programming languages (all of which seem to have taken features from one another) 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 is such a dilemma.
A gun is placed in your hand, already pointed at your foot. Your finger is wired to the hair trigger and itching powder is sprinkled on your hand.
You shoot yourself in the foot, but cannot duplicate the feat afterwards because you forgot to document what you did the first time.
You 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: (same if spelled the old way)
You shoot yourself in each toe, iteratively, until you run out of
toes. Then you read in the next foot and repeat. If you run out of feet or bullets, you continue anyway because you have no exception-handling ability.
RAISE Gun; EXCEPT Shoot; IF IsTerminating() AND NOT HasHalted() THEN RETURN ELSE RETRY END
You establish several concurrent processes. When any one of them shoots you in the foot, you die.
You take aim and pull the trigger, but the bullet is the wrong type for the gun and you blow your hand apart instead.
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 retied.
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 ...
You try to shoot yourself in the foot, but the gun jams on a stray parenthesis.
(((You have ((plenty) of ((bullets))) ((but (lose))) (track of)) (the) ((silly ((gun)))(!))))
Shoot yourself in the foot with a water pistol until your leg rots. On large systems, continue until entire lower body is waterlogged.
According to a result by Dykstra, if you have programmed in this language you are brain dead anyway. You can't figure out how to shoot yourself in the foot.
or (interpreted versions)
Lacking a gun, you hold the bullet in your hand, throw it at your foot...and miss.
Foot in yourself shoot.
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 re-processing instead of writing code.)
You shoot yourself in the foot. The bullet passes through one foot and into the other. You tell everyone you enjoyed the experience and urge them to try it.
You shoot yourself in the foot, then spend all day figuring out how to do it in fewer characters and on a single line of code.
You hear a shot and a hole appears in your foot, but you can't remember enough algebra to determine how it got there.
The compiler won't let you shoot yourself in the foot.
with gun shoot (foot)
If you succeed, shoot yourself in the left foot. If you fail, shoot yourself in the right foot.
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).
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.
You shoot yourself in somebody else's foot.
Put the first bullet of the gun into foot left of leg of you. Answer the result.
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.
foot.c foot.h foot.o toe.c toe.o
% rm * .o
rm: .o: No such file or directory
<A HREF="shoot: //yourself/~foot">click me</A>
After attempting to correctly reference every bullet to every other bullet, the gun, your hand, and your foot, you play Russian roulette.
There are numerous techniques to shoot yourself in the foot, but this system lacks the character set to display any of them. tixe
Not only can you shoot yourself in the foot, your users can too.
You'll be able to shoot yourself in the foot just as soon as you figure out what all these nifty little bullet-thingies are for.
You'll only appear to shoot yourself in the foot, but you'll have so much fun doing it that you won't care.
Visual Basic for Applications:
So many different objects have inconsistent "shootself" methods that you never do figure out which one to use or how to use it. You finally stab your foot just to get it over with.
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 xplain.
You send your foot down to MIS with a 4000-page document describing how you want it to be shot. Three years later, your foot comes back deep-fried.
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, in the old days
The DoD hands you a cigarette and a blindfold and has an entire infantry squadron shoot you in the foot.
You try to shoot yourself in the foot only to discover you must first reinvent the gun, the bullet, and your foot.
You painstakingly design, engineer, and build yourself a gun, turn the shells on a lathe, and prime them by hand. After three years, you shoot yourself in the foot, but very quickly.
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, then hops around the room rabidly shooting at everyone in sight.
You write a protocol for shooting oneself in the foot so that every instance of a person can get shot in the foot.
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.
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.
DBase IV version 1.0:
You pull the trigger, but it turns out that the gun was a poorly-designed grenade and the whole building blows up.
sh, csh, etc.:
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 a real language.
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.
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.
There is nothing to shoot WITH
The gun keeps jamming and the bullets are probably blanks, so you kick the computer and break your foot.
You consume all available system resources, including all the offline bullets. The data processing & payroll departments doubles their size, triples its budget, acquires four new mainframes, and drops the original one on your foot.
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.
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.)
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.
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.
The first gun doesn't work. Three months later INFORMIX's support desk send another gun which doesn't match the version number of the bullets. INFORMIX suggest you upgrade to INFORMIX-ONLINE. You pull the trigger and your shoe gets wet.
ORACLE sells you a gun, a box of bullets, a holster, a cardboard mock-up of a wild-west town and a stetson. You find the trigger takes twenty seven people to pull it. ORACLE provides 26 consultants all with holsters, cardboard mock-ups and stetsons. The bullet doesn't leave the gun-barrel and you hire four more ORACLE consultants to optimise. The bullet bounces off your sandals. You decide to buy INGRES. Richard Donkin shoots you in the foot.
You pull the trigger, and your identical twin in San Francisco gets shot. You then turn off distributed query optimization.
You carelessly invoke the procedure sp_insert_bullet() which fires a trigger (neat, eh) on the table GUN. To maintain referential integrity, the system invokes another trigger which inserts bullets in your foot, your shins, your thighs, pelvis and so on up to the cranium. You are left in third normal form.
You send a message to your finger, which sends a message to the trigger, which sends a message to the firing pin, which sends a message to the primer, which sends a message to the firing charge, which sends a message to the bullet which sends a very unpleasant message to your foot.
The pipeline continues to run, a hail of bullets emerging from the output channel and drilling their way via your foot to the centre of the earth. The high velocity arrival of such stupendous amounts of lead creates a density shock-wave which eventually collapses beyond its own event horizon. The black hole thus formed goes on to absorb earth, most of the minor planets and the Sun. The problem of your foot become increasingly insignificant during this process. Hyper intelligent beings from the planet Zorg nod their several heads wisely and confide to each other:
"I always said ___ was a complete idiot"
You start to really shoot yourself in the foot, but 6 slugs is too many for an array and blows the compiler to pieces. Eventually you realise you must rebuild the compiler to allow such huge arrays. This is so stupid and boring that you start to shoot yourself, but just in time you are interrupted by...
You train the network in how to shoot your foot, after which it generalizes and keeps trying to locate some guy named Connor on the net...
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.
You create a secure computer simulation of a foot, and shoot that.
You shoot yourself in the foot. Everyone else who accesses your website leaves limping.
You create a beautiful animation of a foot, but the gun takes forever to load...
Open form foot, enter shoot, click submit.
foot bullets 6 locate loadgun aim gun shoot showpage
tell gun shoot foot
Write a shoot.vbs virus and attach it to an e-mail. Two hundred million Microsoft Outlook users will infect their feet with it.
You stab yourself in the foot repeatedly with an incredibly large and very heavy Swiss Army knife.
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.
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.
Many OO languages
You have to shoot yourself in the metre up here, eh?
-- authors unknown (and it may be just as well
Like what you see? Want to exchange links? Want to contribute original or attributed material? Contact opundo. If we use your material, we'll acknowledge the source.
Don't like what you see? Offended? Let me know and I'll get another opinion. If you're right, I'll remove the item.