The boy is smoking and leaving smoke rings into the air.
The girl gets irritated with the smoke and says to her lover: “Can’t you see the warning written on the cigarettes packet, smoking is injurious to health!”
The boy replies back: “Darling, I am a programmer. We don’t worry about warnings, we only worry about errors.”
Programming Languages are Like Cars
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 convertible 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.
ALGOL 68
An Aston Martin. An impressive car but not just anyone can drive it.
Pascal
A Volkswagon Beetle. It’s small but sturdy. Was once popular with intellectual types.
LISP
An electric car. It’s simple but slow. Seat belts are not available.
PROLOG/LUCID
Prototype concept cars.
FORTH
A go-cart.
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.
Java
All-terrain very slow vehicle.
Software Development Cycle
Programmer produces code he believes is bug-free.
Product is tested. 20 bugs are found.
Programmer fixes 10 of the bugs and explains to the testing department that the other 10 aren’t really bugs.
Testing department finds that five of the fixes didn’t work and discovers 15 new bugs.
Repeat three times steps 3 and 4.
Due to marketing pressure and an extremely premature product announcement based on overly-optimistic programming schedule, the product is released.
Users find 137 new bugs.
Original programmer, having cashed his royalty check, is nowhere to be found.
Newly-assembled programming team fixes almost all of the 137 bugs, but introduce 456 new ones.
Original programmer sends underpaid testing department a postcard from Fiji. Entire testing department quits.
Company is bought in a hostile takeover by competitor using profits from their latest release, which had 783 bugs.
New CEO is brought in by board of directors. He hires a programmer to redo program from scratch.
Programmer produces code he believes is bug-free…
Ten Commandments for Stress Free Programming
Thou shalt not worry about bugs.
Bugs in your software are actually special features.
Thou shalt not fix abort conditions.
Your user has a better chance of winning state lottery than getting the same abort again.
Thou shalt not handle errors.
Error handing was meant for error prone people, neither you or your users are error prone.
Thou shalt not restrict users.
Don’t do any editing, let the user input anything, anywhere, anytime. That is being very user friendly.
Thou shalt not optimize.
Your users are very thankful to get the information, they don’t worry about speed and efficiency.
Thou shalt not provide help.
If your users can not figure out themselves how to use your software than they are too dumb to deserve the benefits of your software anyway.
Thou shalt not document.
Documentation only comes in handy for making future modifications. You made the software perfect the first time, it will never need modifications.
Thou shalt not hurry.
Only the cute and the mighty should get the program by deadline.
Thou shalt not revise.
Your interpretation of specs was right, you know the users’ requirements better than them.
Thou shalt not share.
If other programmers needed some of your code, they should have written it themselves.
Drug Dealers and Software Engineers - A Comparison
Drug Dealers Software Engineers
“The first one is free” “Download a free trial version”
Have important South-Asia connections (to help move the stuff) Have important South-Asia connections (to help debug the code)
Strange jargon: “Stick”, “Rock”, “Dime bag”, “E” Strange jargon: “TCP/IP”, “XML”, “Java”, “SQL”
Realize that there’s a ton of cash in the 14- to 25-year-old market Realize that there’s a ton of cash in the 14- to 25-year-old market
Job is assisted by industry’s producing newer, more potent mixes Job is assisted by industry’s producing newer, faster machines
Often seen in the company of pimps and hustlers Often seen in the company of marketing people and venture capitalists
Their products cause unhealthy addictions. DOOM. Quake. SimCity. Duke Nukem 3D.; Enough said.
Do your job well and you can sleep with sexy movie stars who depend on you Damn! Damn! DAMN!