Selecting a Programming Language
|Assembler||A formula I race car. Very fast but difficult to drive and maintain.|
|FORTRAN II||A Model T Ford. Once it was the king of the road.|
|FORTRAN IV||A Model A Ford.|
|FORTRAN 77||a six-cylinder Ford Fairlane with standard transmission and no seat belts.|
|COBOL||A delivery van. It's bulky and ugly but it does the work.|
|BASIC||A second-hand Rambler with a rebuilt engine and patched upholstery. Your dad bought it for you to learn to drive. You'll ditch it as soon as you can afford a new one.|
|PL/I||A Cadillac convertable with automatic transmission, a two-tone paint job, white-wall tires, chrome exhaust pipes, and fuzzy dice hanging in the windshield.|
|C||A black Firebird, the all macho car. Comes with optional seatbelt (lint) and optional fuzz buster (escape to assembler).|
|ALGOL 60||An Austin Mini. Boy that's a small car.|
|Pascal||A Volkswagon Beetle. It's small but sturdy. Was once popular with intellectual types.|
|Modula II||A Volkswagon Rabbit with a trailer hitch.|
|ALGOL 68||An Aston Martin. An impressive car but not just anyone can drive it.|
|LISP||An electric car. It's simple but slow. Seat belts are not available.|
|PROLOG/LUCID||Prototype concept cars.|
|LOGO||A kiddie's replica of a Rolls Royce. Comes with a real engine and a working horn.|
|APL||A double-decker bus. It takes rows and columns of passengers to the same place all at the same time but it drives only in reverse and is instrumented in Greek.|
|Ada||An army-green Mercedes-Benz staff car. Power steering, power brakes, and automatic transmission are standard. No other colors or options are available. If it's good enough for generals, it's good enough for you.|
How easy is it to use? - TASK: Shoot yourself in the foot.
You shoot yourself in the foot.
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."
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.
The compiler won't let you shoot yourself in the foot.
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.
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.
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...
Foot in yourself shoot.
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.
Shoot yourself in the foot with a water pistol. On large systems, continue until entire lower body is waterlogged.
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.
Put the first bullet of gun into foot left of leg of you. Answer the result.
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.
You shoot yourself in the foot, then spend all day figuring out how to do it in fewer characters.
If you succeed, shoot yourself in the left foot. If you fail, shoot yourself in the right foot.
You shoot yourself in somebody else's foot.
(The way most UNIX hackers shoot themselves in the foot.)
foot.c foot.h foot.o toe.c toe.o
% rm * .o
rm:.o no such file or directory
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.
Not only can you shoot yourself in the foot, your users can, too.
You try to point the gun at your foot, but it shoots holes in all your Borland distribution diskettes instead.
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.
After realizing that you can't actually accomplish anything in this language, you shoot yourself in the head.
You try to shoot yourself in the foot, only to discover you must first invent the gun, the bullet, the trigger, and your foot.
$ MOUNT/DENSITY=.45/LABEL=BULLET/MESSAGE="BYE" BULLET::BULLET$GUN SYS$BULLET
$ SET GUN/LOAD/SAFETY=OFF/SIGHT=NONE/HAND=LEFT/CHAMBER=1/ACTION=AUTOMATIC/
$ SHOOT/LOG/AUTO SYS$GUN SYS$SYSTEM:[FOOT]FOOT.FOOT
%DCL-W-ACTIMAGE, error activating image GUN -CLI-E-IMGNAME, image file $3$DUA240:[GUN]GUN.EXE;1 -IMGACT-F-NOTNATIVE, image is not an OpenVMS Alpha AXP image