A Guide To Programming Languages

The proliferation of modern programming languages makes it difficult to decide which language to use. This guide is offered as a public service to help programmers in such dilemmas.

 


TASK: To 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."

FORTRAN: 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 bullets, you continue with the attempts to shoot yourself anyways 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. Finally, 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."

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...  

FORTH: First you decide to leave the number of toes lost on the stack and then implement the word foot-toes@ which takes three numbers from the stack: foot number, range, and projectile mass (in slugs) and changes the current vocabulary to 'blue'. While testing this word you are arrested by the police for mooning (remember, this is a bottom-up language) who demonstrate the far better top-down approach to damaging yourself.

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: You shoot yourself in the foot with a water pistol. On large systems, continue until entire lower body is waterlogged.

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.

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 heard a gunshot, and there's a hole in your foot, but you don't remember enough linear algebra to understand what the hell happened. If you resolve this issue you then spend all day figuring out how to do it in fewer characters.

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).

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.

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.

Assembler: You try to shoot yourself in the foot, only to discover you must first invent the gun, the bullet, the trigger, and your foot. If you continue, 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.

Modula2: After realizing that you can't actually accomplish anything in this language, you shoot yourself in the head.

Smalltalk: 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 bullet hole.

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.

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...

PL/1: You consume all available system resources, including all the offline bullets. The Data Processing and Payroll Department doubles its size, triples its budget, acquires four new mainframes, and drops the original one on your foot.

INFORMIX: The first gun doesn't work. Three months later INFORMIX's support desk sends another gun which doesn't match the version number of the bullets. INFORMIX suggests you upgrade to INFORMIX-ONLINE. You pull the trigger and your shoe gets wet.

ORACLE: 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, which takes 27 people to pull. 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 of your sandals. You decide to buy INGRES. Richard Donkin shoots you in the foot.

INGRES: You pull the trigger, and your identical twin in San Francisco gets shot. You then turn off distributed query optimization.

SYBASE: You carelessly invoke the procedure sp_insert_bullet() which fires a trigger (neah, eh?) on the table GUN. To maintain referential integrity, the system invokes another trigger which inserts bullets in your other foot, your shins, your thighs, and so on up to the cranium. You are left in third normal form.

POP11: Your boss has never heard of it and wants you to use one of C, C++, Lisp, or Prolog, so you push his foot onto the stack and shoot it.  


[All jokes are believed to be in the public domain. If you feel one of these belongs to you, please let us know and we will either remove the material or provide a link at your request.]