|
|
In March 1976, Datamation published the following poem, “A software ABC”, by David H.H. Diamond. I spent years looking for the text, but now all Datamation issues (I think) have been scanned in and are available at http://bitsavers.org/pdf/datamation/. Here's the text from the scans. I may fix the markup later.
This is the algorithm A It makes its neat recursive way Into a stack. It will be back, But only after some delay. B is a bug, the user's sore, Our hardware's going out the door. The fixes all turned out no use. While managers receive abuse. But brightly, brightly do I shine. Since I can prove it's yours, not mine.
C stands for COBOL—
What a pity
It was designed
By a committee.
D is for data, aren't you glad Your data's never, ever bad For all our software's written so Bad data makes the system blow. E's word is hard, so I will strive To spell it. Here we go; C5 C2 C3 and then C4 C9 and then C3 once more. To programmers, may heaven bless 'em all, That's EBCDIC in hexidecimal. F is futility and fumble And other things which make us grumble. On one more word this letter's stuck If you don't know it, well, hard luck! G is for garbage; he whose sin It was to put such input in By rule must stand beneath the spout When his output's coming out. H is for Hollerith. He designed The card code, which we've since refined For use on tapes and discs and drums And several other mediums. (Else, if you like, "on discs and dra, And several other media"). I is for interface, that's the line Between your subroutine and mine. If you'd avoid a grave dissension Please use my register convention. J is the holly jest or joke Which mirth and laughter doth provoke; Manipulating byte and bit, We're filled with merriment and wit. For who could less than cheerful be When writing down B-X-L-E? We laugh until each face turns red To use that queer instruction, ED. Observe the giggling hysterics Induced by just one "move numerics." Still funnier is (avoid it lest You split your sides) Translate and Test. And when at last we've had our fun, And all the coding has been done, We laugh until we start to cry, When to execute we try.
K is a kludge which you say
You require to avoid some delay
But that interim fix
Forms a habit that sticks
And you'll find that it's in there to stay.
L is for language; use these three. Cobol, Fortran, RPG. Avoid all others, friend, and shun Those with the suffix "L slash I." M is a manager. Some are fat And do not know what they are at. Some other managers are thin Look at the mess they get us in. In general they're a useless tribe (Except, of course, your humble scribe).
N is the Noon. Much more than dreary night
The noontime hour sees rise the rotting dead,
Who from their wooden cells go muttering forth.
Then will you hear them speak of ancient wrongs,
Of projects cancelled, systems vague and strange,
Of intricate enhancements ill designed,
And long-lost deadlines. Then also do they chart
Forgotten job-streams flowing in the night
To since-discarded listings. Men they curse
Who plucked procrustean schedules from the air
And then departed, called to high estate
In distant companies long since forgot.
Great deeds they now recall, and happier days,
And rusted hardware, powered once again
By memory and misted rosy dream.
Delay lines fill, and vacuum tubes warm up
And heroes (greater than the men we know)
Who never from their standards did depart
Stand forth among them, calling them to war.
Then should the Living shudder and know fear
And tremble at the muttering of the Dead.
But hoary time, in envy lest these shades
Usurp the little space of those who breathe
Now moves the clock unto the hour of one
And sends them back to work 'til coffee break.
O is the office where I sit And think, and work a little bit. My office has a wooden door Or else I'd work a good deal more. Here lies the spec of program P The task of coding fell on me. Who ('til I'd done) Revealed to none Its non-computability. Q stands for quibble, which you do when I am arguing with you. ("A quibble" I define to be A point with which I disagree.) R is response time. Slow and yet more slow The man-machine communications flow. At quiet terminals my patience fails. Next time I'll try the U. S. Mails. S is for slip, of color pink, And on it writ "Your programs stink." T is time-sharing. I have been Communing with the Great Machine There, in an interactive state, My deepest thoughts I did relate, All eager to communicate. It answered; but, to my dismay, Had nothing interesting to say.
U was a user. He was rash
And parted quickly with his cash.
He bought with his investment huge
A powerful, expensive kludge.
Because his system was a joke
This user very soon went broke.
Since for his stuff he couldn't pay
We had to take it all away.
We all lost money on the deal
And soon the pinch began to feel.
The sales department hired more men
And went and sold the kludge again.
V is the vision, vision bright Which keeps us working in the night. O'er dumps we labor in the day While dreaming of a better way. We seek the coder's holy grail, The program that will never fail. Worry and work both start with W. Insidious, they come to trouble you The day the program's due to run Though the coding's not yet done. You've no design, and no test data. The spec you plan to write up later. But worry puts you off your feed Decisive action's what you need. Rush to your desk, brook no delay, Sit down and write your resume. X (Xenophobia) disgraces Those folk who hate all other races. Myself, I feel a hatred keen Only for that damned machine. Y was an innocent youth Who took up our profession uncouth. Though he'd try and he'd try, He never could lie, And got fired for telling the truth.
Z is for zero, written so
That 0 cannot look like O
which stands for One. Alas for me
My programs map to binary.
No other reason need be sought
Why half my programs come to nought.
Amusingly, the scan of this rhyme contained:That 0 cannot look like 0
Greg's home page | Greg's diary | Greg's photos | Copyright |