Selecting a Programming Language
Seeing as that I’ve got all these visitors from /. over Shelley’s very cool article entitled “The Parable of the Languages“, I figured I’d throw-down some old-school grins of my own and revive the following article I first posted back in July.
First let me say how much I appreciate you tech bloggers. Not only have you had the patience to deal with me changing servers, but on the one or two instances when you disagree with me on an issue, you do it in a civilized and reasonable fashion. I love you all for that more than you know.
Okay, gushing side. Here is a reward for your patience and professionalism. What you are about to read is a total rip-off of a thread that has been tossed about the usenet for years, originally attributed by everyone’s favorite online author, Anonymous. And like a good bean-burrito, and bears repeating.
So without any further adieu (you’ve just seen the limits of my French), I offer you:
Mean Deans Semi-Definitive Guide to Selecting a Programming Language.
Introduction
With the proliferation of modern programming languages which seem to have stolen countless features from each other sometimes makes it difficult to select a which language appropriate for your task. This guide is offered as a public service to help programmers in such dilemmas.
The key to this guide is to remember its one and only easy-to-remember and abide-by criteria - Shooting Yourself in the Foot.
C: You shoot yourself in the foot.
C++: You accidently 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."
C#: The gun fires just fine, but your foot can't figure out where
the bullets are and ignores them.
Java: The gun fires just fine, but your foot can't figure out what
the bullets are and ignores them.
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."
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: You hear a gunshot, and there's a hole in your foot, but you
don't remember enough linear algebra to understand what happened.
Assembly: 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.
80x86
Assembly: The gun isn't in the same segment as your feet,
so you can't shoot them.
BASIC: Shoot self in foot with water pistol. On big systems, continue
until entire lower body is waterlogged.
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.
dBase: 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.
XBase: Shooting yourself is no problem. If you want to shoot yourself in
the foot, you'll have to use Clipper.
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_.
Forth: yourself foot shoot.
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.
Modula/2: After realizing that you can't actually accomplish anything
in the language, you shoot yourself in the head.
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: 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.
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.
PowerBuilder:
While attempting to load the gun you discover that the LoadGun
system function is buggy; as a work around you tape the bullet
to the outside of the gun and unsuccessfully attempt to fire it
with a nail. In frustration you club your foot with the butt of the
gun and explain to your client that this approximates the
functionality of shooting yourself in the foot and that the next
version of Powerbuilder will fix it.
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.
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.
pre .Net
Visual
Basic: You'll appear to shoot yourself in the foot, but have so
much fun doing it that you don't care.
VB.Net: You write about 100 lines of code to print "Hello, world!" 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 where Bill Gates shoots
you in the foot.
Unix:
% ls
foot.c foot.h foot.o toe.c toe.o
% rm * .o
rm: .o: No such file or directory
% ls
%
Edit/Add to the list
Okay boys and girls, now its your turn. Use the comments section to add, ammend and/or agonize over your favorites. There will be no prizes or awards for the best one, other than the geeky admiration of your nerds-in-arms.










