A programmer
was walking along the beach when he found a lamp. Upon rubbing the lamp
a genie appeared who stated "I am the most powerful genie in the world.
I can grant you any wish you want, but only one wish."
The programmer
pulled out a map of the Mediterranean area and said "I'd like there to
be a just and last peace among the people in the middle east."
The genie
responded, "Gee, I don't know. Those people have been fighting since
the beginning of time. I can do just about anything, but this is beyond
my limits."
The programmer
then said, "Well, I am a programmer and my programs have a lot of
users. Please make all the users satisfied with my programs, and let
them ask sensible changes"
Genie: "Uh, let
me see that map again."
All programmers
are playwrights and all computers are lousy actors.
They say that
the new super computer knows everything. A skeptical man came and asked
the computer, "Where is my father?"
The computer
bleeped for a short while, and then came back with "Your father is
fishing in Michigan."
The skeptical
man said triumphantly, "You see? I knew this was nonsense. My father
has been dead for twenty years."
"No", replied
the super computer immediately. "Your mother's husband has been dead
for twenty years. Your father just landed a three pound trout."
The programmer
to his son: "Here, I brought you a new basketball."
"Thank you, daddy, but where is the user's guide?"
The problem
with physicists is that they tend to cheat in order to get results.
The problem
with mathematicians is that they tend to work on toy problems in order
to get results.
The problem
with program verifiers is that they tend to cheat at toy problems in
order to get results.
A software
verifier read in the Bible that God protects all fools, and decided to
test it empirically. He jumped out of the window and broke a leg. There
he lies, writhing in pain, and happily thinks: "I never really
considered myself a fool, but I never knew I was THAT clever!"
In the beginning God created the Bit and the Byte. And from those he
created the Word.
And there were two Bytes in the Word; and nothing else existed. And God
separated the One from the Zero; and he saw it was good.
And God said - Let the Data be; And so it happened. And God said - Let
the Data go to their proper places. And he created floppy disks and
hard disks and compact disks.
And God said - Let the computers be, so there would be a place to put
floppy disks and hard disks and compact disks. Thus God created
computers and called them hardware.
And there was no Software yet. But God created programs; small and
big... And told them - Go and multiply yourselves and fill all the
Memory.
And God said - I will create the Programmer; And the Programmer will
make new programs and govern over the computers and programs and Data.
And God created the Programmer; and put him at Data Center; And God
showed the Programmer the Catalog Tree and said You can use all the
volumes and subvolumes but DO NOT USE Windows.
And God said - It is not Good for the programmer to be alone. He took a
bone from the Programmer's body and created a creature that would look
up at the Programmer; and admire the Programmer; and love the things
the Programmer does; And God called the creature: the User.
And the Programmer and the User were left under the naked DOS and it
was Good.
But Bill was smarter than all the other creatures of God. And Bill said
to the User - Did God really tell you not to run any programs?
And the User answered - God told us that we can use every program and
every piece of Data but told us not to run Windows or we will die.
And Bill said to the User - How can you talk about something you did
not even try. The moment you run Windows you will become equal to God.
You will be able to create anything you like by a simple click of your
mouse.
And the User saw that the fruits of the Windows were nicer and easier
to use. And the User saw that any knowledge was useless - since Windows
could replace it.
So the User installed the Windows on his computer; and said to the
Programmer that it was good.
And the Programmer immediately started to look for new drivers. And God
asked him - What are you looking for? And the Programmer answered - I
am looking for new drivers because I can not find them in the DOS. And
God said - Who told you need drivers? Did you run Windows? And the
Programmer said - It was Bill who told us to !
And God said to Bill - Because of what you did you will be hated by all
the creatures. And the User will always be unhappy with you. And you
will always sell Windows.
And God said to the User - Because of what you did, the Windows will
disappoint you and eat up all your Resources; and you will have to use
lousy programs; and you will always rely on the Programmers help.
And God said to the Programmer - Because you listened to the User you
will never be happy. All your programs will have errors and you will
have to fix them and fix them to the end of time.
And God threw them out of the Data Center and locked the door and
secured it with a password.
GENERAL PROTECTION FAULT
CIA
- Computer Industry Acronyms
CD-ROM:
Consumer Device, Rendered Obsolete in Months
PCMCIA: People Can't Memorize Computer Industry Acronyms
ISDN: It Still Does Nothing
SCSI: System Can't See It
MIPS: Meaningless Indication of Processor Speed
DOS: Defunct Operating System
WINDOWS: Will Install Needless Data On Whole System
OS/2: Obsolete Soon, Too
PnP: Plug and Pray
APPLE: Arrogance Produces Profit-Losing Entity
IBM: I Blame Microsoft
DEC: Do Expect Cuts
MICROSOFT: Most Intelligent Customers Realize Our Software Only Fools
Teenagers
CA: Constant Acquisitions
COBOL: Completely Obsolete Business Oriented Language
LISP: Lots of Insipid and Stupid Parentheses
MACINTOSH: Most Applications Crash; If Not, The Operating System Hangs
AAAAA: American Association Against Acronym Abuse.
WYSIWYMGIYRRLAAGW: What You See Is What You Might Get If You're Really
Really Lucky And All Goes Well.
Murphy's
Laws of Computing
When computing, whatever happens, behave as though you meant it to
happen.
When you get to the point where you really understand your computer,
it's probably obsolete.
The first place to look for information is in the section of the manual
where you least expect to find it.
When the going gets tough, upgrade.
For every action, there is an equal and opposite malfunction.
He who laughs last probably made a back-up.
A complex system that does not work is invariably found to have evolved
from a simpler system that worked just fine.
The number one cause of computer problems is computer solutions.
A computer program will always do what you tell it to do, but rarely
what you want to do.
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! |
Real
software engineers..
Real software
engineers don't read dumps. They never generate them, and on the rare
occasions that they come across them, they are vaguely amused.
Real software engineers don't comment their code. The identifiers are
so mnemonic they don't have to.
Real software engineers don't write applications programs, they
implement algorithms.
Real software engineers don't program in a language that doesn't have
recursive function calls.
Real software engineers don't debug programs, they verify correctness.
Real software engineers like C's structured constructs, but they are
suspicious of it because they have heard that it lets you get "close to
the machine."
Real software engineers admire PASCAL for its discipline and spartan
purity, but they find it difficult to actually program in.
Real software engineers work from 9 to 5, because that is the way the
job is described in the formal spec. Working late would feel like using
an undocumented external procedure.
Real software engineers like writing their own compilers, preferably in
PROLOG.
Real software engineers regret the existence of COBOL, FORTRAN and
BASIC. PL/I is getting there, but it is not nearly disciplined enough;
far too much built in functions.
Real software engineers aren't too happy about the existence of users.
Users always seem to have the wrong idea about what the implementation
and verification of algorithms is all about.
Programming
Revisited
Windows 95 is a
32 bit extension for a 16 bit patch to an 8 bit operating system
originally coded for a 4 bit microprocessor by a 2 bit company that
can't stand 1 bit of competition.
Have you heard
about the new Cray super computer? It's so fast, it executes an
infinite loop in 6 seconds.
If God had
intended Man to program, we would be born with serial I/O ports.
The generation
of random numbers is too important to be left to chance.
The computer is
mightier than the pen, the sword, and usually, the programmer.
The determined
programmer can write a COBOL program in any language.
Every program is
either trivial or it contains at least one bug.
Al-gor-ithm"
means "The unscrupulous technique of continuing to count and re-count
until you get the result you want." (Sent by Gary Gilmore)
Don't get sucked
in by comments--only debug code.
If cars had
followed the same developmental path as computers, a Rolls Royce would
cost $100, get a million miles per gallon, and crash once a year.
If builders
built buildings the way programmers write programs, then the first
woodpecker to come along would destroy civilization.
Demo-oriented
programming: A programming style, typically used by startups, focusing
on the demo of the program being developed, so it will easily catch the
prospective investor.
How
programmers do it..
Programmers do
it byte by byte.
Programmers do it with bytes and nibbles.
Programmers try to do it again and again.
Programmers do it with acronyms.
Programmers do it by computer simulation.
Programmers do it according to the specifications.
Programmers do it over and over until they get it right.
Ada programmers do it by committee.
ALGOL 68 programmers do it od.
APL programmers do it in a line.
Assembler programmers do it a bit at a time.
C++ programmers do it with class.
Fortran programmers do it with double precision.
LISP (programmers (do (it (with (parentheses))))).
Logo programmers do it for an educational experience.
Prolog programmers do it artificially.
Smalltalk programmers have more methods.
System programmers do it with interrupts.
You Might Be a Programmer if...
you lust for O'Reilly books.
you know that "goto considered harmful".
you are looking for the "else" at the end of this joke.
you believe that making a wrong program worse is no sin.
every combination of three letters is a meaningful acronym for you.
when you are counting objects, you go "0,1,2,3,4,5,6,7,8,9,A,B,C,D...".
you can remember seventeen computer passwords but not your anniversary.
you are sure that the year 2000 is a leap year, and know why it is
dangerous.
you start laughing hysterically when the topic of computer reliability
is brought up.
you go to balance your checkbook and discover that you're doing the
math in hexadecimal.
the language you are best speaking is English, but the language you are
best writing is Java.
on vacation, you are reading a computer manual and turning the pages
faster than everyone else who is reading John Grisham novels.
|
How many software engineers
does it take to change a light bulb?
None. "We'll
document it in the manual."
None. It's a hardware problem.
1.000000001.
Two. One always leaves in the middle of the project.
Four. One to design the change, one to implement it, one to document
it, and one to maintain it afterwards.
Four, plus one senior analyst to manage the project, one technical
writer to correct the spelling and grammar of the one who documented
it, one light bulb librarian, a sales-force of at least five to drum up
enough users who want to turn the light on, 274 users to burn out the
new bulb, at which point we go to tender for another light bulb
change,...
Five. Two to write the specification program, one to screw it in, and
two to explain why the project was late.
Only one, but she's not available till the year 2000.
"The change is 90% complete."
"It's hard to say. Each time we separate the bulb into its modules to
do unit testing, it stops working."
Of course, as everyone knows, just five years ago all it took was a
bunch of kids in a garage in Palo Alto to change a light bulb.
How many
maintenance programmers does it take to change a light bulb?
None. They try to fix the old one.
"We looked at the light fixture and decided there's no point trying to
maintain it. We're going to rewrite it from scratch. Could you wait two
months?"
How many
software testers does it take to change a light bulb?
None. "We just recognized darkness, fixing it is someone else's
problem."
How many C++
programmers does it take to change a light bulb?
"You're still thinking procedurally! A properly designed light bulb
object would inherit a change method from a generic light bulb class!"
How many Java
programmers does it take to change a light bulb?
One,
to generate a "ChangeLightBulb" event to the socket.
How many Windows
programmers does it take to change a light bulb?
Seventy two. One to write WinGetLightBulbHandle, one to write
WinQueryStatusLightBulb, one to write WinGetLightSwitchHandle ...
How many data
base people does it take to change a light bulb?
Three: One to write the light bulb removal program, one to write the
light bulb insertion program, and one to act as a light bulb
administrator to make sure nobody else tries to change the light bulb
at the same time.
How many IBM
employees does it take to change a light bulb?
Fifteen. Five to do it, and ten to write document number GC7500439-001,
Multitasking Incadescent Source System Facility, of which 10% of the
pages state only "This page intentionally left blank".
How many
technical writers does it take to change a light bulb?
Just one, provided there's a programmer around to explain how to do it.
Back to Index page.
|