THE PROGRAMMER'S QUICK GUIDE TO THE LANGUAGES 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 is offered as a public service to help programmers who find themselves in such a dilemma. TASK: Shoot yourself in the foot. 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 anyway because you have no exception- processing ability. 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. 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. BASIC: Shoot self in foot with water pistol. On big systems, continue until entire lower body is waterlogged. 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. 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). 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... 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. English: You put your foot in your mouth, then bite it off. Prolog: You attempt to shoot yourself in the foot, but the bullet, failing to find its mark, backtracks into the gun which then explodes in your face. Forth: yourself foot shoot. DBase: You squeeze the trigger, but the bullet moves so slowingly 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 granade and the whole building blows up. 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_. 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. 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. Logo: You navigate your gun successfully to your foot using nice movement commands, but find there is no way to shoot. SETL: You take a random foot from the bag and shoot it with a random gun from your other bag. 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." 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. 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 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 % 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. DOS/VSE/SP (etc): You first find the building you're in in the phone book, then find your office number in the corporate phone book. Then you have to write this down, then describe, in cubits, your *exact* location, in relation to the door (right hand side thereof). Then you need to write down the location of the gun (loading it is a proprietary utility), then you load it, and the COBOL program, and run them, and, with luck, it may be run tonight. OS/MVS/etc: You tell it you need a gun, and that you need space to put your foot, then you run that, along with the COBOL program. Don't forget to store the code as a proc, if you need to shoot your other 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. Modula2: After realizing that you can't actually accomplish anything in this language, you shoot yourself in the head.