Programmer’s Drinking Song
100 little bugs in the code,
100 bugs in the code,
fix one bug, compile it again,
101 little bugs in the code.
101 little bugs in the code…..
(Repeat until BUGS = 0)
100 little bugs in the code,
100 bugs in the code,
fix one bug, compile it again,
101 little bugs in the code.
101 little bugs in the code…..
(Repeat until BUGS = 0)
Programming Languages are like Women
There are so many programming languages available that it can be very
difficult to get to know them all well enough to pick the right one
for you. On the other hand most men know what kind of woman appeals to
them. So here is a handy guide for many of the popular programming
languages that describes what kind of women they would be if
programming languages were women.
- A female track star who holds all the world speed
records.
She is hard and bumpy, and so is not that pleasant to embrace. She can
cook up any meal, but needs a complete and detailed recipe. She is
not beautiful or educated, and speaks in monosyllables like “MOV,
JUMP, INC”. She has a fierce and violent temper that make her the
choice of last resort.
- Your grey-haired grandmother.
People make fun of her just because she is old, but if you take the
time to listen, you can learn from her experiences and her
mistakes. During her lifetime she has acquired many useful skills in
sewing and cooking (subroutine libraries) that no younger women can
match, so be thankful she is still around. She has a notoriously bad
temper and when angered will start yelling and throwing dishes. It was
mostly her bad temper that made grandad search for another wife.
- A plump secretary.
She talks far too much, and most of what she says can be ignored. She
works hard and long hours, but can’t handle really complicated
jobs. She has a short and unpredictable temper, so no one really likes
working with her. She can cook meals for a huge family, but only knows
bland recipes.
- The horny divorcee that lives next door.
Her specialty is seducing young boys and it seems she is always
readily available for them. She teaches them many amazing things, or
at least they seem amazing because it is their first experience. She
is not that young herself, but because she was their first lover the
boys always remember her fondly. Her cooking and sewing skills are
mediocre, but largely irrelevant, its the frolicking that the boys
like.
The opinion that adults have of Mrs. BASIC is varied. Shockingly, some
fathers actually introduce their own sons to this immoral woman! But
generally the more righteous adults try to correct the badly
influenced young men by introducing them to well behaved women like
Miss Pascal.
- A bordello madam.
She wears silk dresses, diamonds, furs and red high heels. At one time
she seemed very attractive, but now she just seems overweight and
tacky. Tastes change.
- A lady executive.
An avid jogger, very healthy, and not too talkative. Is a good cook if
you like spicy food. Unless you double check everything you say
(through LINT) you can unleash her fierce temper. Her daughter C++ is
still quite young and prone to tantrums, but it seems that she will
grow up into a fine young woman of milder temper and more
sophisticated character.
- Your fathers wartime sweetheart, petite, well
proportioned, and sweet tempered.
She disappeared mysteriously during the war, but your dad still talks
about her shapely form and their steamy romance. He never actually
tasted much of her cooking, but they did exchange simple recipes by
mail.
- A grammar school teacher, and Algol 60’s younger sister.
Like her sister she is petite and attractive, but very bossy. She is a
good cook but only if the recipe requires no more than one pot
(module).
- A high-school teacher and Pascal’s daughter.
Very much like her mother, but she has learned to cook with more than
one pot.
- Algol 60’s niece.
A high-society woman, well educated and terse. Few men can fully
understand her when she talks, and her former lovers still discuss her
mysterious personality. She is very choosy about her romances and
won’t take just any man as her lover. She hasn’t been seen lately, and
rumor has it that she died in a fall from an ivory tower.
- She is an aging beatnik, who lives in a rural commune with
her hippie cousins SMALLTALK and FORTH.
Many men (mostly college students) who have visited the farmhouse,
enthusiastically praise the natural food, and perpetual love-ins that
take place there. Others criticize the long cooking times, and the
abnormal sexual postures (prefix and postfix). Although these women
seldom have full-time jobs, when they do work, their employers praise
them for their imagination, but usually not for their efficiency.
- A fancy caterer specializing in Greek food.
She can cook delicious meals for rows and rows of tables with dozens
of people at each table. She doesn’t talk much, as that would just
slow her work down. Few people can understand her recipes, since they
are in a foreign language, and are all recorded in mirror writing.
- A grade-school art teacher.
She is just the kind of teacher that you wish you had when you were
young. She is shapely and patient, but not an interesting
conversationalist. She can cook up delicious kiddie snacks, but not
full-course meals.
- These clever teenagers show a new kind of cooking
skill.
They can cook up fine meals without the use of recipes, working solely
from a description of the desired meal (declarative cooking). Many
men are fascinated by this and have already proposed marriage. Others
complain that the girls work very slowly, and that often the
description of the meal must be just as long as a recipe would be. It
is hard to predict what these girls will be like when they are fully
mature.
- A WAC colonel built like an amazon.
She is always setting strict rules, but if you follow them, she keeps
her temper. She is quite talkative, always spouting army regulations,
and using obscure military talk. You gotta love her though, because
the army says so.
There was once a COBOL programmer in the mid to late 1990s. For the sake of this story, we’ll call him Jack. After years of being taken for granted and treated as a technological dinosaur by all the UNIX programmers and Client/Server programmers and website developers, Jack was finally getting some respect. He’d become a private consultant specializing in Year 2000 conversions. He was working short-term assignments for prestige companies, traveling all over the world on different assignments. He was working 70 and 80 and even 90 hour weeks, but it was worth it.
Several years of this relentless, mind-numbing work had taken its toll on Jack. He had problems sleeping and began having anxiety dreams about the Year 2000. It had reached a point where even the thought of the year 2000 made him nearly violent. He must have suffered some sort of breakdown, because all he could think about was how he could avoid the year 2000 and all that came with it.
Jack decided to contact a company that specialized in cryogenics. He made a deal to have himself frozen until March 15th, 2000. This was a very expensive process and totally automated. He was thrilled. The next thing he would know is he’d wake up in the year 2000; after the New Year celebrations and computer debacles; after the leap day. Nothing else to worry about except getting on with his life.
He was put into his cryogenic receptacle, the technicians set the revive date, he was given injections to slow his heartbeat to a bare minimum, and that was that.
The next thing that Jack saw was an enormous and very modern room filled with excited people. They were all shouting “I can’t believe it!” and “It’s a miracle” and “He’s alive!”. There were cameras (unlike any he’d ever seen) and equipment that looked like it came out of a science fiction movie.
Someone who was obviously a spokesperson for the group stepped forward. Jack couldn’t contain his enthusiasm. “It is over?” he asked. “Is 2000 already here? Are all the millennial parties and promotions and crises all over and done with?”
The spokesman explained that there had been a problem with the programming of the timer on Jack’s cryogenic receptacle, it hadn’t been year 2000 compliant. It was actually eight thousand years later, not the year 2000. But the spokesman told Jack that he shouldn’t get excited; someone important wanted to speak to him.
Suddenly a wall-sized projection screen displayed the image of a man that looked very much like Bill Gates. This man was Prime Minister of Earth. He told Jack not to be upset. That this was a wonderful time to be alive. That there was world peace and no more starvation. That the space program had been reinstated and there were colonies on the moon and on Mars. That technology had advanced to such a degree that everyone had virtual reality interfaces which allowed them to contact anyone else on the planet, or to watch any entertainment, or to hear any music recorded anywhere.
“That sounds terrific,” said Jack. “But I’m curious. Why is everybody so interested in me?”
“Well,” said the Prime Minister. “The year 10000 is just around the corner, and it says in your files that you know COBOL”.
God consults with the C programmer on every major issue.
The C programmer can walk on water.
He programs on a P120 with 8 Meg RAM w/ Mach32. He can program a
graphical spreadsheet in about 2 days.
The C programmer tends to put “()” after every major verb when they
talk or write: “are you going() to see() NIN tomorrow? I’ll try() to
get() tickets!”
The VB programmer does lunch with God every day.
He is an olypic class swimmer.
He programs on a 486dx/2 66 with 8 Meg RAM w/ SVGA and can program a
good text based spread sheet in a little over a week.
The Turbo Pascal programmer occasionally has a word with God.
He can swim pretty well.
He programs on a 486dx 33 with 4Meg RAM and can program a complicated
scientific calculator in a week and a half.
The TP Programmer tends to put “begin” and “end” before every major
topic: “begin That new game is awesome, man! end”
The Fortran programmer sometimes catches a glimpse of God.
He manages to keep himself afloat in shallow water.
He programs on a DEC VAX with a VT100 (he’s too manly for a GUI). A
Fortran programmer cand do a passable calculation device in a few
weeks.
Nobody really know how Fortran programmers talk because there are so
few of them these days.
The QBASIC programmer knows who God is.
He has trouble avoiding drowning in his own bathtub.
QBASIC programmer works on a 486sx 25 with 4 Meg RAM. He can write a
program that accepts two numbers and adds them together in just under
4 weeks.
About the only thing a Logo programmer knows about GOD is that the
word is short enough for him to sound out, but he has trouble spelling
it.
He wets himself with a squirt gun.
He programs on an Apple IIc, and can do a program that puts a box on
the screen that some may argue looks like a calculator in about 8
weeks (with help from his teacher).
The LOGO porgrammer can’t actually talk very well, but instead draws
a whole lot of pictures, crayon being their favorite media.
The assembly language programmer is God.
He parts the water when he wishes to cross it.
He programs on what ever he damm well pleases and can do a
multi-tasking, multi-user networkable operating system that includes a
GUI spreadsheet during his coffee break.
A guy was crossing a road one day when a frog called out to him and said, “If you kiss me, I’ll turn into a beautiful princess.” He bent over, picked up the frog and put it in his pocket.
The frog spoke up again and said, “If you kiss me and turn me back into a beautiful princess, I will stay with you for a week.” The guy took the frog out of his pocket, smiled at it and returned it to his pocket.
The frog then cried out, “If you kiss me and turn me back into a princess, I’ll stay with you and do anything you want.” Again the guy took the frog out, smiled at it and put it back into his pocket.
Finally the frog asked, “What is the matter? I’ve told you I’m a beautiful princess, that I’ll stay with you for a week and do anything you want. Why won’t you kiss me?” The guy said, “Listen, I’m a software engineer. I don’t have time for a girlfriend, but a talking frog is cool.”
Once upon a time, in a kingdom not far from here, a king summoned two of his advisors for a test. He showed them both a shiny metal box with two slots in the top, a control knob, and a lever. “What do you think this is?”
One advisor, an engineer, answered first. “It is a toaster,” he said. The king asked, “How would you design an embedded computer for it?”
The engineer replied, “Using a four-bit microcontroller, I would write a simple program that reads the darkness knob and quantizes its position to one of 16 shades of darkness, from snow white to coal black. The program would use that darkness level as the index to a 16-element table of initial timer values. Then it would turn on the heating elements and start the timer with the initial value selected from the table. At the end of the time delay, it would turn off the heat and pop up the toast. Come back next week, and I’ll show you a working prototype.”
The second advisor, a computer scientist, immediately recognized the danger of such short-sighted thinking. He said, “Toasters don’t just turn bread into toast, they are also used to warm frozen waffles. What you see before you is really a breakfast food cooker. As the subjects of your kingdom become more sophisticated, they will demand more capabilities. They will need a breakfast food cooker that can also cook sausage, fry bacon, and make scrambled eggs. A toaster that only makes toast will soon be obsolete. If we don’t look to the future, we will have to completely redesign the toaster in just a few years.”
“With this in mind, we can formulate a more intelligent solution to the problem. First, create a class of breakfast foods. Specialize this class into subclasses: grains, pork, and poultry. The specialization process should be repeated with grains divided into toast, muffins, pancakes, and waffles; pork divided into sausage, links, and bacon; and poultry divided into scrambled eggs, hard-boiled eggs, poached eggs, fried eggs, and various omelet classes.”
“The ham and cheese omelet class is worth special attention because it must inherit characteristics from the pork, dairy, and poultry classes. Thus, we see that the problem cannot be properly solved without multiple inheritance. At run time, the program must create the proper object and send a message to the object that says, ‘Cook yourself.’ The semantics of this message depend, of course, on the kind of object, so they have a different meaning to a piece of toast than to scrambled eggs.”
“Reviewing the process so far, we see that the analysis phase has revealed that the primary requirement is to cook any kind of breakfast food. In the design phase, we have discovered some derived requirements. Specifically, we need an object-oriented language with multiple inheritance. Of course, users don’t want the eggs to get cold while the bacon is frying, so concurrent processing is required, too.”
“We must not forget the user interface. The lever that lowers the food lacks versatility, and the darkness knob is confusing. Users won’t buy the product unless it has a user-friendly, graphical interface. When the breakfast cooker is plugged in, users should see a cowboy boot on the screen. Users click on it, and the message ‘Booting UNIX v. 8.3′ appears on the screen. (UNIX 8.3 should be out by the time the product gets to the market.) Users can pull down a menu and click on the foods they want to cook.”
“Having made the wise decision of specifying the software first in the design phase, all that remains is to pick an adequate hardware platform for the implementation phase. An Intel 80386 with 8MB of memory, a 30MB hard disk, and a VGA monitor should be sufficient. If you select a multitasking, object oriented language that supports multiple inheritance and has a built-in GUI, writing the program will be a snap. (Imagine the difficulty we would have had if we had foolishly allowed a hardware-first design strategy to lock us into a four-bit microcontroller!).”
The king wisely had the computer scientist beheaded, and they all lived happily ever after.
At a recent computer software engineering course in the US, the participants were given an awkward question to answer:
“If you had just boarded an airliner and discovered that your team of programmers had been responsible for the flight control software, how many of you would disembark immediately?”
Among the ensuing forest of raised hands only one man sat motionless.
When asked what he would do, he replied that he would be quite content to stay on board. With his team’s software, he reasoned,the plane was unlikely to even taxi as far as the runway, let alone take off.
Real Programmers don’t eat quiche. They like twinkies, coke and palate-scorching Szechwan food.
Real Programmers don’t write applications programs. They program right down on the bare metal. Applications programming is for the dullards who can’t do systems programming.
Real Programmers don’t write specs. Users should be grateful for whatever they get: they are lucky to get any programs at all.
Real Programmers don’t comment their code. If it was hard to write, it should be hard to understand and harder to modify.
Real Programmers don’t document. Documentation is for simpletons who can’t read listings or the object code from the dump.
Real Programmers don’t draw flowcharts. Flowcharts are the illiterate’s form of documentation. Cavemen drew flowcharts; look at how much good it did for them.
Real Programmers don’t read manuals. Reliance on a reference manual is the hallmark of the novice and the coward.
Real Programmers don’t write in RPG. RPG is for gum-chewing dimwits who maintain ancient payroll programs.
Real Programmers don’t write in COBOL. COBOL is for COmmon Business-Oriented Laymen who can’t run a business, much less write a real program.
Real Programmers don’t write in FORTRAN. FORTRAN is for wimp engineers who wear white socks. They get excited over finite state analysis and nuclear reactor simulation.
Real Programmers don’t write in PL/1. PL/1 is for insecure anal-retentives who can’t choose between COBOL and FORTRAN.
Real Programmers don’t write in BASIC. Actually, no programmer writes in BASIC after reaching puberty.
Real Programmers don’t write in APL, unless the whole program can be written on one line.
Real Programmers don’t write in LISP. Only idiots’ programs contain more parenthesis than actual code.
Real Programmers don’t write in PASCAL, BLISS, ADA, or any of those other sissy computer science languages. Strong typing is the crutch for people with weak minds.
Real Programmers’ programs never work right the first time. But if you throw them on the machine they can be patched into working order in “only a few” 30-hour debugging sessions.
Real Programmers never work 9 to 5. If any Real Programmers are around at 9:00 am, its because they were up all night.
Real Programmers don’t play tennis, or any other sport which requires a change of clothes. Mountain Climbing is acceptable.
Real Programmers wear climbing boots to work in case a mountain should suddenly spring up in the middle of the machine room.
Real Programmers disdain structured programming. Structured programming is for compulsive neurotics who were permanently toilet trained. They wear neckties and carefully line up sharp pencils on an otherwise clear desk.
Real Programmers don’t like the team programming concept. Unless, of course they are the chief programmer.
Real Programmers never write memos on paper. They send memos via computer mail networks.
Real Programmers have no use for managers. Managers are a necessary evil. They exist only to deal with personnel bozos, bean counters, senior planners, and other mental defectives.
Real Programmers scorn floating point arithmetic. The decimal point was invented for pansy bedwetters who are unable to “think big.”
Real Programmers don’t drive clapped-out Mavericks. They prefer BMW’s, Lincolns, or pick up trucks with floor shifts. Fast motorcycles are highly regarded.
Real Programmers don’t believe in schedules. Planners make up schedules. Managers “firm up” schedules. Frightened coders strive to meet schedules. Real Programmers ignore schedules.