HOW TO DETERMINE WHICH PROGRAMMING LANGUAGE YOU'RE USING
OR
HOW TO SHOOT YOURSELF IN THE FOOT USING DIFFERENT PROGRAMMING LANGUAGES

(Originally written 1994, this piece of netlore continues to grow)

 

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. Some of these languages are obscure or obsolete, but are still supported by this guide.

4D
You shoot yourself in the foot with what you thought was a hair dryer.

370JCL:
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.

8080
You foot yourself in the shoot.

Access
You try to point the gun at your foot, but it shoots holes in all your Borland distribution diskettes instead.

ActiveX (1)
Ole_Registration_Error: Cannot find object "ActiveFoot",download the latest drivers.

ActiveX (2)
You ask someone to download the loaded gun and shoot you in the foot with it. They end up blowing your torso off.

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

Ada (2)
The Department of Defense shoots you in the foot after offering you a blindfold and a last cigarette.

Ada (3)
It is not possible to shoot yourself in the foot. First you must instantiate a foot, a gun and a bullet. The instantiation of bullet type will not match the type needed for the instantiation of the gun. Eventually, in frustration at not being able to accomplish the task of shooting yourself in the foot you were unable to instantiate, you beat yourself over the head with the empty gun.

Ada (4)
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.

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.

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 the hell happened.

APL (2)
GN (* Upside down triangle *) FT ^ BLT

APL (3)
You shoot yourself in the foot, then spend all day figuring out how to do it in fewer characters.

Assembler (1)
You try to shoot yourself in the foot, only to discover you must first invent the gun, the bullet, the trigger, and your foot.

Assembly Language (1)
LDA BULLET
STA FOOT

Assembly Language (2)
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 round the room rabidly shooting at everyone in sight.

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 foot is waterlogged and rots off.

BASIC (compiled)
You shoot yourself in the foot with a BB using a SCUD missile launcher.

C (1)
*foot = bullet

C (2)
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 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."

Caml
You think everything is set to shoot your foot, but you discover that the gun is not of type
int -> int -> (gun * bullet) -> foot -> ouch -> pain
besides, you only had one semicolon anyway.

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

Coral 66 (1)
Your technical architect has already shot you all in the feet by selecting the language. He then drops his flash new mobile phone (the first you've ever seen) and the weight of it breaks his foot. You attend a training course on shooting yourself in the foot. Driving through Hemel Hempstead you go the right way around the wrong-way roundabout. In the head-on crash you lose a foot. You hire contractors to explain the compile and link process (which takes 3 days). They shoot you in the foot, and then bill you for it, but buy you a beer afterwards. There is no standard IO library. When you eventually find one, the only output instructions are "Launch" and "Detonate". You can shoot yourself in the foot, but not write Hello World. You realise it's almost 1990 and the Internet is about to be invented, but you're still stuck writing CORAL. You shoot yourself. The ammunition you're using won't fit into one segment. You spend 3/4 of the code writing handlers to deal with fractional bagged charges piece-by-piece. You finally code a foot shooter in CORAL, but then management sees sense and switches the platform to Unix. The Navy shows up and a Seawolf missile takes what's left of your foot clean off.

Coral66 (2)
It's not possible to shoot yourself in any body part, but you drop into inline assembler and do it anyway.

Coral 66 (3)
You run TLOOK and shoot someone else in their foot instead.

Coral 66 (4)
You learn enough PL/1 from scratch to meet your foot shooting deadlines. It's quicker than doing it in CORAL.

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

Concurrent Euclid:
You shoot yourself in somebody else's foot.

csh
After searching the manual until your foot falls asleep, you shoot the computer and switch to C.

dBase (1)
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 (2)
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.

DCL
You manage to shoot yourself in the foot, but while doing so you also shoot yourself in the arm, stomach, and leg, plus you shoot your best friend in the chest, the neighbour's dog and your car. A month later you're not able to understand your program anymore when you read the source.

Delphi
MyFoot := TFoot.Create( Self );
Gun := TGun.Create( .45, SOFT_NOSED_BULLETS, 6 );
Gun.Aim( Self.MyFoot);
while Gun.BulletsAvailable do Gun.Shoot( Self.MyFoot );

Delphi (2)
You can redesign the gun any way you want to, but the bullet still hits you in the foot.

Eliza Program
>Shoot self in foot
Tell me about your foot
>I want to shoot my foot
Why do you think you want to shoot your foot?

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

FORTH (1)
Foot in yourself shoot.

FORTH (2)
Foot Bullet shootInto.

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

FORTRAN (1)
EQUIVALENCE (BULLET, FOOT)

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

FORTRAN (3)
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.

FTP

     % ftp lower-body.me.org
     ftp> cd /foot
     ftp> put bullets

Haskell
You can shoot yourself, but you have to use their gun unless you ask really nice.

HP Calculator
Foot <Enter> Bullet <Enter> shootInto<Enter>

HTML (1)
<a target="http://body/lower-half/leg/foot.appendage">Shoot here</a>

HTML (2)
You load the gun and take a picture of it. Then you ask someone to download the picture and a picture of a bloody foot.

HyperTalk:
Put the first bullet of the gun into foot left leg of you. Answer the result.

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

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

Jade:
You attempt to shoot both feet concurrently "with" a gun "withonly" one bullet. Strong typing means you only shoot one foot because the other is of the wrong type, so you must specify the hole in the other foot as a side-effect. Alternatively, you shoot the other foot later, but "without" pain.

Java (1)
You shoot yourself in the foot in front of millions of Internet users who remain safely out of range, although 60% of your users web browsers will fail to read the Java code correctly and shoot 70% of the users in the head.

Java (2)
The gun fires just fine, but you can't figure out what the bullets are.

Java (3)
The gun fires just fine, but your foot can't figure out what the bullets are and ignores them.

Java (4)
You try to point the gun at your foot, but when you pull the trigger you find you've actually grown a new foot and shot it instead.

Java (5)
You get the gun and take aim. After pulling the trigger you are told you don't have permission to shoot yourself in the foot.

JavaScript (1)
You load the gun and take a picture of it. Then you ask someone to download it and shoot you in the foot with it. The best the can do is to download a picture of a bloody foot and put it on your foot.

Javascript (2)
You can shoot yourself in the foot, but since you' re using IE you shoot yourself in the desktop.

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

Logo
Turtle.Draw Turtle.A Turtle.Picture Turtle.Of Turtle.You Turtle.Shooting Turtle.Yourself Turtle.In Turtle.The Turtle.Foot Turtle.ouch

Microsoft
ActiveX Object "Foot" not found.
Object "Foot" will be included in the next release.
You can upgrade for $500.
Press OK to Retry or Esc to cancel.

Microsoft C++
You write about 100 lines of code to print "Hello, world!" w/Windows SDK in a dialogue box, only to have a UAE pop up when you click on OK. This shuts down the program manager, leaving you nothing but a screensaver. You then fly to Washington and shoot Bill Gates in the foot.

Modula-2 (1)
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.

Modula/2 (2)
After realizing that you can't actually accomplish anything in the language, you shoot yourself in the head.

MOO
You ask a wizard for a pair of hands. After lovingly handcrafting the gun and each bullet, you tell everyone that you've shot yourself in the foot.

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.

MSWord
Foot has been reserved by user.name. Do you want to make a copy?

MUD version:
>shoot self in foot
I don't see any self here.
>shoot me in foot
There is no you in the foot.
>shoot foot
I don't know which foot you're talking about.
>shoot left foot
You don't have the gun.
>get gun
You take the gun.
Your lantern just went out.
You are attacked by grues.
* * * YOU HAVE DIED * * *

NeXT
We don't sell guns anymore, just ammunition.

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

Occam (1)
You shoot both your feet with several guns at once.

OCCAM (2)
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 the Earth, most of the minor planets and the Sun. The problems 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 Tony was a complete twat."

ORACLE:
ORACLE sell 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 provide 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.

ORCA/C
Byteworks keeps promising to supply good ammunition real soon now...

Paradox:
Not only can you shoot yourself in the foot, your users can too.

Pascal (1)
Same as Modula-2, except the bullet is not of the right type for the gun and your hand is blown off.

Pascal (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!

Pascal (3):
The compiler won't let you shoot yourself in the foot.

Pascal: (4)
You try to shoot yourself in the foot, but the bullet has the wrong type and nothing happens.

Perl (1)
You shoot yourself in the foot. You then decide it was so much fun that you invent another six completely different ways to do it.

Perl (2)
1. You go to CPAN and download Geek, Body::Foot, Gadgets:Gun and Accesories::Bullet modules.
2. Then:
#!/usr/bin/perl -w
use strict;
use Geek;
use Body::Foot;
use Gadgets::Gun;
use Accesories::Bullet;

my $me = Geek->getBorn($ENV{'USER'});
my $foot = $me->{parts}->{feet}->[0];
die "No feet (maybe both were cut off?), stopped"
unless defined $foot;
my $gun = ($me->{money} >= Gadgets:Gun::price ? Gadgets:Gun->buy() : Gadgets:Gun->steal);
my @bullets = map { Accesories::Bullet->new() } (0..5);

$gun->load(\@bullets);
while ($gun->{bullets})
{
$gun->shoot($foot);
last if $foot->shot();
}

print "Looser!\n" unless $foot->shot();

PL/I:
You consume all available system resources, including all the offline bullets. The Data-Processing & Payroll Departments double in size, triples their budgets, acquire four new mainframes, and drop the original one on your foot.

PostScript
/startshot bodyfont foot moveto foot cleanup showpage

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

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.

Revelation:
You'll be able to shoot yourself in the foot just as soon as you figure out what all these bullets are for.

Rhapsody
You draw matchstick-men diagrams of a gun firing bullets into your foot and ask Rhapsody to autogenerate the code. You are sued in a class action by limping matchstick men.

RPG/2
You fill in a form to define the gun, another one for the bullets and a different one to specify your foot and the system works out the rest.

RTL:
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 shoot yourself, but just in time you are interrupted by .....

Scheme (1)
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.

Scheme (2)
(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...
(but none of your other appendages know exactly what's going on.)))))

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

Smalltalk, Actor
After playing with the graphics for three weeks the programming manager shoots you in the head.

Smalltalk (1)
You daydream repeatedly about shooting yourself in the foot.

Smalltalk (2)
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.

Smalltalk (3)
You send the message shoot to gun, with selectors bullet and foot. A window pops up saying Gunpowder doesNotUnderstand: spark. After several hours fruitlessly spent browsing the methods in Trigger, FiringPin and IdealGas, you create ShotFoot, a subclass of Foot with a new instance variable bullet hole.

SNOBOL (1):
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).

SNOBOL (2):
If you succeed, shoot yourself in the left foot. If you fail, shoot yourself in the right 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.

SYBASE:
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 other foot, your shins, your thighs, pelvis and so on up to the cranium. You are left in third normal form.

TECO
@fs/bullet/foot/

Unix

      % ls
      foot.c foot.h foot.o toe.c toe.o
      % rm * .o
      rm: .o: No such file or directory
      % ls
      %

Visual Basic:
You`ll shoot yourself in the foot, but you'll have so much fun doing it that you won't care.

XBase:
Shooting yourself is no problem. If you want to shoot yourself in the foot, you'll have to use Clipper.

 

HOW TO DETERMINE WHICH OPERATING SYSTEM YOU'RE USING
OR
HOW TO SHOOT YOURSELF IN THE FOOT USING DIFFERENT OPERATING SYSTEMS

Apple (1)
We'll let you shoot yourself, but it'll cost you a bundle.

Apple (2)
We'll shoot it for you, but it'll cost you a bundle and we won't say how we did it.

Apple (3)
Double click the gun icon and a window giving a selection for guns, target areas, plus balloon help with medical remedies, and assorted sound effect. Click shoot button and a small bomb appears with note "Error of type 1 has occured."

Cray
I knew you were going to shoot yourself in the foot.

DOS
You finally found the gun, but can't locate the file with the foot.

FidoNet
You put your foot in your mouth, then echo it internationally.

Hewlett-Packard
You can use this machine-gun to shoot yourself in the foot, but the firing pin is broken.

IBM
You insert a clip into the gun, wait half an hour, and it goes off in random directions. If a bullet hits your foot, you're lucky.

Internet
You put your foot in your mouth, shoot it, then spam the bullet so that everybody gets shot in the foot.

Linux
You can shoot yourself in the foot "Really Soon Now".

Microsoft
(1) Object "Foot" will be included in the next release. You can upgrade for $500.
(2) You can shoot yourself in the foot, but the method is buried in the docs somewhere.

NeXT
We don't sell guns anymore, just ammunition.

SCO Open Desktop SCOPaint
You shoot yourself in the foot with a popgun.

Sun
Just as soon as Solaris gets here, you can shoot yourself anywhere you want.

Usenet
You shoot yourself in the foot and then discuss in crossposted threads. You are variously accused of being a troll, offered support and counselling or flamed. You are invited to join a gun-lobby bulletin board to defend the rights of those who want to shoot themselves in the foot. You then get spammed to hell by counsellors, ammo supply stores and people trying to sell you viagra, mortgages, breast enlargements and investment advice. But nobody spams you with offers of prosthetic feet.

VMS
You don't have permission to access SYS$FOOT

Windows
You click on Bullet, and the mouse knocks the manual off the desktop. The manual lands corner-first on your foot.

Windows95
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 or hard drive space.

Windows98
d:\setup
Error: Can't find DOS, but I can *see* it.

DRAGONQUEEN'S LAIR

You are visitor number: