Which Language Is Right For You?
Originally by Simon Walmsley and Steve Suttles
The proliferation of modern programming languages which seem to have stolen countless features from each other sometimes makes it difficult to remember which language you're using. This guide is offered as a public service to help programmers in such dilemmas.
In order to help you make a competent, uncomplicated choice concerning the competition between complex, incompatible computer compilers, we have composed this complete, compact, composite compendium comprising comparisons to compensate for the complaints and complements of their compromises. We hope you will find it comprehensible rather than compost.
6502: You shoot yourself in the foot.
68000: You can't decide which gun and which bullet to use, so you hang yourself.
8080: You foot yourself in the shoot.
Actor: After playing with the graphics for three weeks the programming manager shoots you in the head.
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," after of offering you a blindfold and a last cigarette.
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.
APL: 1. You hear a gunshot, and there's a hole in your foot, but you don't remember enough linear algebra to understand what happened. 2. GN (* Upside down triangle *) FT ^ BLT
Assembler: 1. 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. 2. You shoot yourself in the foot. 3.
LDA BULLET
STA FOOT
BASIC: Shoot self in foot with water pistol. On big systems, continue until entire lower body is waterlogged.
BASIC (interpreted): You shoot yourself in the foot with a water pistol until your leg is waterlogged and falls off.
BASIC (compiled): You shoot yourself in teh foot with a BB using a Scud missle launcher.
C: 1. You shoot yourself in the foot. 2. You shoot yourself in the foot and then no one else can figure out what you did. 3. *foot = bullet
C++: You create a dozen instances of yourself and shoot them all in the foot. Providing emergency medical care 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."
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 bullet fits has not yet been built, but should be arriving in the mail REAL SOON NOW.
COBOL: 1. USEing a COLT45 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. 2. USE HANDGUN.COLT(45), AIM AT LEG.FOOT, THEN WITH ARM.HAND.FINGER ON HANDGUN.-COLT(TRIGGER) PERFORM SQUEEZE, RETURN HANDGUN.COLT TO HIP.HOLSTER.
csh: After searching through the manual until your foot falls asleep, you shoot the computer and switch to C.
DBase: 1. 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. 2. 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 that is scheduled to actually shoot bullets.
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.
English: You put your foot in your mouth, then bite it off.
FORTH: 1. Yourself foot shoot. 2. Foot Bullet shootInto.
FORTRAN: 1. 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 anyway because you have no exception-processing ability. 2. You shoot yourself in each toe, iteratively, until you run out of toes. You shoot the sixth bullet anyway, since no exception processing was anticipated. 3. EQUIVALENCE (BULLET, FOOT)
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...
Modula/2: 1. After realizing that you can't actually accomplish anything in the language, you shoot yourself in the head. 2. You perform a shooting on what might currently be a foot with what might currently be a bullet shot by what might currently be a gun.
occam: You shoot both your feet with several guns a once.
ORCA/C: Byteworks keeps promising to supply good ammunition RSN!
Pascal: 1. Same as Modula-2, except the bullet is not of the right type for the gun and your hand is blown off. 2. You try to shoot yourself in the foot, but it tells you that your foot is the wrong type and out of range to boot!
PL/I: You consume all available system resources, including all the offline bullets. The DataProcessing&Payroll Department doubles its size, triples its budget, acquires four new mainframes, and drops the original one on your foot.
Prolog: 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.
Prolog (interpreted): Your program tries to shoot you in the foot, but you die of old age before the bullet leaves the gun.
Prolog (compiled): The facts are against you. You try to stop the gun from shooting you in the foot, but it replies, "No."
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.
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 C.
Smalltalk: 1. 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. 2. After playing with the graphics for three weeks the programming manager shoots you in the head.
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).
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.
TECO: @fs/bullet/foot/
Windows: You click on Bullet, and the mouse knocks the manual off the desktop. The manual lands corner-first on your foot.