Programmer Jokes



"Programming is like sex: 
One mistake and you have to support for a lifetime."




Top 17 Programmer's Terminologies

1. A NUMBER OF DIFFERENT APPROACHES ARE BEING TRIED
 - We are still pissing in the wind.

2. EXTENSIVE REPORT IS BEING PREPARED ON A FRESH APPROACH TO
   THE PROBLEM
 -  We just hired three kids fresh out of college.

3. CLOSE PROJECT COORDINATION
 - We know who to blame.

4. MAJOR TECHNOLOGICAL BREAKTHROUGH
 - It works OK, but looks very hi-tech.

5. CUSTOMER SATISFACTION IS DELIVERED ASSURED
 - We are so far behind schedule the customer is happy to 
   get it delivered.

6. PRELIMINARY OPERATIONAL TESTS WERE INCONCLUSIVE
 - The darn thing blew up when we threw the switch.

7. TEST RESULTS WERE EXTREMELY GRATIFYING 
 - We are so surprised that the stupid thing works.

8. THE ENTIRE CONCEPT WILL HAVE TO BE ABANDONED
 - The only person who understood the thing quit.

9. IT IS IN THE PROCESS
 - It is so wrapped up in red tape that the situation 
   is about hopeless.

10. WE WILL LOOK INTO IT
 - Forget it!  We have enough problems for now.

11. PLEASE NOTE AND INITIAL
 - Let's spread the responsibility for the screw up.

12. GIVE US THE BENEFIT OF YOUR THINKING
 - We'll listen to what you have to say as long as it
   doesn't interfere with what we've already done.

13. GIVE US YOUR INTERPRETATION
 - I can't wait to hear this bull!

14. SEE ME or LET'S DISCUSS
 - Come into my office, I'm lonely.

15. ALL NEW
 - Code not interchangeable with the previous design.

16. YEARS OF DEVELOPMENT
 - It finally worked!

17. LOW MAINTENANCE
 - Impossible to fix if broken.




  Jesus and Satan have an argument as to who is the better 
programmer.  This goes on for a few hours until they come 
to an agreement to hold a contest, with God as the Judge.  
They set themselves before their computers and begin. They 
type furiously, lines of code streaming up the screen, for 
several hours straight.  Seconds before the end of the 
competition, a bolt of lightning strikes, taking out the 
electricity.  Moments later, the power is restored, and God 
announces that the contest is over.  He asks Satan to show 
what he has come up with. 
  Satin is visibly upset and cries, "I have nothing, I lost 
it all when the power went out."
  "Very well, then, " says God, "let us see if Jesus fared 
any better."
  Jesus enters a command, and the screen comes to life in 
vivid display, the voices of an angelic choir pours forth 
from the speakers. 
  Satan is astonished.  He stutters, "B-b-but how?! I lost 
everything yet Jesus' program is Intact!  How did he do it?"
  God Chuckles,  "Everybody knows...Jesus Saves." 




IF GOD WERE A COMPUTER PROGRAMMER...

 Some important theological questions can best be answered by
 thinking of God as a computer programmer:

 Q: Did God really create the world in seven days?
 A: He did it in six days and nights while living on cola and
 candy bars. On the seventh day he went home and found out his
 girlfriend had left him.

 Q: What causes God to intervene in earthly affairs?
 A: If a critical error occurs, the system pages him automatically
 and he logs on from home to try to bring it up. Otherwise, things
 can wait until tomorrow.

 Q: How come the Age of Miracles ended?
 A: That was the development phase of the project.  Now we're in the
 maintenance phase.

 Q: Who is Satan?
 A: Satan is an MIS director who takes credit for more powers than he
 actually possesses, so nonprogrammers become scared of him. God
 thinks he's irritating but irrelevant.

 Q: Why does God allow evil to happen?
 A: God thought he eliminated evil in one of the earlier revs.

 Q: How can I protect myself from evil?
 A: Change your password every month and don't make it a name, a
 common word, or a date like your birthday.

 Q: If I pray to God, will he listen?
 A: You can waste his time telling him what to do, or you can just
 get off his back and let him program.

 Q: Some people claim they hear the voice of God. Is this true?
 A: They are much more likely to receive email.

 Q: Does God control everything that happens in my life?
 A: He could, if he used the debugger, but it's tedious to step through
    all those variables.

 Q: Does God know everything?
 A: He likes to think so, but he is often amazed to find out what goes
    on in the overnite job.

 Q: Will there be another Universe after the Big Bang?
 A: A lot of people are drawing things on the white board, but
    personally, God doubts that it will ever be implemented.

 Q: What is the role of sinners?
 A: Sinners are the people who find new an imaginative ways to mess up
    the system when God has made it idiot-proof.

 Q: Where will I go after I die?
 A: Onto a DAT tape.

 Q: Will I be reincarnated?
 A: Not unless there is a special need to recreate you.  And searching
    those .tar files is a major hassle, so if there is a request for you,
    God will just say that the tape has been lost.

 Q: Am I unique and special in the universe?
 A: There are over 10,000 major university and corporate sites running
    exact duplicates of you in the present release version.

 Q: What is the purpose of the universe?
 A: God created it because he values elegance and simplicity, but then
    the users and managers demanded he tack all this senseless stuff onto
    it and now everything is more complicated and expensive than ever.

 Q: What is the one true religion?
 A: All systems have their advantages and disadvantages, so just pick
    the one that best suits your needs and don't let anyone put you down.

 Q: Is God angry that we crucified him?
 A: Let's just say he's not going to any more meetings if he can help
    it, because that last one with the twelve managers and the food
    turned out to be murder.

 Q: Some people say God is Love.
 A: That is not a question.  Please restate your query in the form of a
    question.



 - The Programmers' Cheer -
Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!



Q. Somebody asked me "What happens to programmers when they die?"

A: They get deallocated?
   Their values become undefined?
   The get re-intialized?
   Their structues break down?
   they become WORM food...
   They start dropping bits........
   They branch to a new address!
   Their social system resources are released?
   They dump core? (a coredump is the result of an abort(ion))



PROGRAMMERS' 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)




Real Programmers Don't Eat Quiche (They Can't Even Spell Quiche)

Real Programmers....

  Don't eat quiche. They  don't even know  how to  spell quiche.
They like Twinkies, Coke, and palate-scorching Szechwan food.

  Don't write applications programs. They program right down to 
the bare metal. Applications programs are for dullards who can't 
do systems programming.

  Don't comment their code. If it was hard to write, it should be
hard to understand and even harder to modify.

  Don't draw flowcharts. Flowcharts are, after all, the illiterate's 
form of documentation. Cavemen drew flowcharts; look how much it did 
for them.

  Don't use COBOL. COBOL is for wimpy applications programmers.

  Don't use FORTRAN. FORTRAN is for wimpy engineers who wear white
socks, pipe stress freaks, and crystallography weenies. They get
excited over finite state analysis and nuclear reactor simulation.

  Don't use LOGO. In fact, no programmer uses LOGO after reaching 
puberty.

  Don't use APL, unless the whole program can be written on one line.

  Don't use LISP. Only effeminate programmers use more parentheses
than actual code.

  Don't use Pascal, BLISS, Ada, or any of those sissy-pinko computer 
science languages. Strong typing is a crutch for people with weak 
memories.

  Never work 9 to 5. If any real programmers are around at 9 a.m.,
it's because they were up all night.

  Don't play tennis or any other sport that requires a change of
clothes. Mountain climbing is OK though, and real programmers often 
wear climbing boots to work in case a mountain should suddenly spring 
up in the middle of the machine room.

  Don't like the team programming concept. Unless, of course, they
are the Chief Programmer.

  Have no use for managers. Managers are a necessary evil. Managers 
are for dealing with personal bozos, bean counters, senior planners, 
and other mental defectives.

  Don't drive clapped out Mavericks. They prefer BMWs, Lincolns, or 
pick-up trucks with floor shifts. Fast motorcycles are highly regarded.

  Like vending machine popcorn. Coders pop it in the microwave oven. 
Real programmers use the heat given off by the CPU. They can tell what 
job is running just by listening to the rate the corn is popping.

  Know every nuance of every instruction and use them all in every
real program. Puppy architects won't allow execute instructions to 
address another execute as the target instruction. Real programmers 
despise such petty restrictions.

  Don't bring brown bag lunches to work. If the vending machine sells 
it, they eat it. If the vending machine doesn't sell it they don't eat 
it. Vending machines don't sell quiche.




  An engineer, a mathematician, and a computer programmer are driving
down the road when the car they are in gets a flat tire.  The engineer
says that they should buy a new car. The mathematician says they should 
sell the old tire and buy a new one.  The computer programmer says they 
should drive the car around the block and see if the tire fixes itself.




  Assembler programs are written with short abbreviations called
MNEMONICS, in other words instead of writing GOTO, the programmer
writes JMP or even BRA (branch).
  These instructions are frequently abbreviated into total
incomprehensibility. Of course, we all know that abbreviations are
arbitrary.  Anyone who has spent any time programming in assembler 
knows that all computers can be programmed using an undocumented set 
of instructions.  Frequently when an error is made writing a program 
in assembler a user can actually see the program executing the 
undocumented instructions. These instructions vary from machine from 
machine, but all computers have a certain set of them in common.  As 
a service to humanity, I am here revealing these common instructions 
for the first time.

ARG: Agree to Run Garbage
BDM: Branch and Destroy Memory
CMN: Convert to Mayan Numerals
DDS: Damage Disk and Stop
EMR: Emit Microwave Radiation
ETO: Emulate Toaster Oven
FSE: Fake Serious Error
GSI: Garble Subsequent Instructions
GQS: Go Quarter Speed
HEM: Hide Evidence of Malfunction
IDD: Inhale Dust and Die
IKI: Ignore Keyboard Input
IMU: Irradiate and Mutate User
JPF: Jam Paper Feed
JUM: Jeer at Users Mistake
KFP: Kindle Fire in Printer
LNM: Launch Nuclear Missiles
MAW: Make Aggravating Whine
NNI: Neglect Next Instruction
OBU: Overheat and Burn if Unattended
PNG: Pass Noxious Gas
QWF: Quit Working Forever
QVC: Question Valid Command
RWD: Read Wrong Device
SCE: Simulate Correct Execution
SDJ: Send Data to Japan
TTC: Tangle Tape and Crash
UBC: Use Bad Chip
VDP: Violate Design Parameters
VMB: Verify and Make Bad
WAF: Warn After Fact
XID: eXchange Instruction with Data
YII: Yield to Irresistible Impulse
ZAM: Zero All Memory
PI : Punch Invalid
POPI: Punch Operator Immediately
RASC: Read And Shred Card
RPM: Read Programmers Mind
RSSC: Reduce Speed, Step Carefully  (for improved accuracy)
RTAB: Rewind Tape and Break
RWDSK: ReWind DiSK
SPSW: Scramble Program Status Word
SRSD: Seek Record and Scar Disk
WBT: Water Binary Tree




  Three men, a physican, a engineer and a computer scientist, are
travelling in a car. Suddenly, the car starts to smoke and stops.
The three atonished men try to solve the problem:

Physican says:
 This is obviously a classic problem of torque. It has been overloaded 
the elasticity limit of the main axis.

Engineer says: 
 Let's be serious! The matter is that it has been burned the spark of 
the connecting rod to the dynamo of the radiator. I can easily repair 
it by hammering.

Computer scientist says:
 What if we get off the car, wait a minute, and then get in and try again?



Why is a good programmer like a Knight?
They both live by their code.



Q: Why do programmers always get Christmas and Halloween mixed up?
A: Because DEC 25 = OCT 31



Top 25 Explanations by Programmers when their programs don't work.

 1. Strange...
 2. I've never heard about that.
 3. It did work yesterday.
 4. Well, the program needs some fixing.
 5. How is this possible?
 6. The machine seems to be broken.
 7. Has the operating system been updated?
 8. The user has made an error again.
 9. There is something wrong in your test data.
10. I have not touched that module!
11. Yes yes, it will be ready in time.
12. You must have the wrong executable.
13. Oh, it's just a feature.
14. I'm almost ready.
15. Of course, I just have to do these small fixes.
16. It will be done in no time at all.
17. It's just some unlucky coincidense.
18. I can't test everything!
19. THIS can't do THAT.
20. Didn't I fix it already?
21. It's already there, but it has not been tested.
22. It works, but it's not been tested.
23. Somebody must have changed my code.
24. There must be a virus in the application software.
25. Even though it does not work, how does it feel?



The Lesser-known Programming Languages

 SIMPLE
  SIMPLE is an acronym for Sheer Idiot's Monopurpose Programming 
Language Environment. This language, developed at the Hanover College 
for Technological Misfits, was designed to make it impossible to write 
code with errors in it. The statements are, therefore, confined to 
BEGIN, END and STOP. No matter how you arrange the statements, you 
can't make a syntax error. Programs written in SIMPLE do nothing 
useful. Thus they achieve the results of programs written in other 
languages without the tedious, frustrating process of testing and 
debugging.

 LITHP
  This otherwise unremarkable language is distinguished by the absence
of an "S" in its character set; users must substitute "TH". LITHP is 
said to be useful in protheththing lithtth.

 SLOBOL
  SLOBOL is best known for the speed, or lack of it, of its compiler.
Although many compilers allow you to take a coffee break while they
compile, SLOBOL compilers allow you to travel to Bolivia to pick the
coffee. Forty-three programmers are known to have died of boredom
sitting at their terminals while waiting for a SLOBOL program to
compile. Weary SLOBOL programmers often turn to a related (but
infinitely faster) language, COCAINE.

 SARTRE
Named after the late existential philosopher, SARTRE is an extremely
unstructured language. Statements in SARTRE have no purpose; they just
are. Thus SARTRE programs are left to define their own functions.
SARTRE programmers tend to be boring and depressed, and are no fun at
parties.

 C-
  This language was named for the grade received by its creator when 
he submitted it as a class project in a graduate programming class. 
C- is best described as a "low-level" programming language. In fact, 
the language generally requires more C- statements than machine-code
statements to execute a given task. In this respect, it is very
similar to COBOL.

 FIFTH
  FIFTH is a precision mathematical language in which the data types
refer to quantity. The data types range from CC, OUNCE, SHOT, and
JIGGER to FIFTH (hence the name of the language), LITER, MAGNUM and
BLOTTO. Commands refer to ingredients such as CHABLIS, CHARDONNAY,
CABERNET, GIN, VERMOUTH, VODKA, SCOTCH, and WHATEVERSAROUND. The many
versions of the FIFTH language reflect the sophistication and
financial status of its users. Commands in the ELITE dialect include
VSOP and LAFITE, while commands in the GUTTER dialect include HOOTCH
and RIPPLE. The latter is a favorite of frustrated FORTH programmers
who end up using this language.




The Top 16 April Fool's Day Pranks to Pull on Programmers
16> Using their e-mail address, post a request for penpals to the
    alt.prison.bodypiercing newsgroup.

15> Three words: electric mouse buzzer.

14> Assign them to the new "Heaven's Gate" project.

13> "Look, Bill Gates!!  Ha!  Made ya look!"

12> Put them in the same room with a member of the opposite sex.

11> "Have you got Prince Albert in a LAN?"

10> Tell them that "everyone knows Star Trek transporter technology
    is bogus."

 9> 10 GOTO 10

 7> Swap their monitor for a large cardboard box with handpuppets.
    Watch the fur fly!

 6> Announce that annual raises will be based on a subjective test
    of one's ability to "schmooze the way the butt-kissers in
    Marketing do."

 8> Intercept their daily Top 5 List, then remove #8 and re-insert
    it between #5 and #6.

 5> Pretend to "discover" a Fox TV website with a now-out-of-date
    win a weekend with Gillian Anderson of X-Files contest.

 4> Every hour, on the hour, forward them a warning about the
    "Good Times" virus.

 3> Call her up and ask if her program is running, and when she
    says "yes," tell her "Well you better go catch it!"

 2> Replace all the Jolt in the soda machine with Perrier and V8.

 1> Special announcement: "Forget Java -- Starting immediately,
    all coding will be done in COBOL."




The truth about C++ revealed

  Don't know if this is true or not... but it's funny either way.

  On the 1st of January, 1998, Bjarne Stroustrup gave an interview 
to the IEEE's 'Computer' magazine.

  Naturally, the editors thought he would be giving a retrospective 
view of seven years of object-oriented design, using the language 
he created.
  By the end of the interview, the interviewer got more than he had 
bargained for and, subsequently, the editor decided to suppress its 
contents, 'for the good of the industry' but, as with many of these 
things, there was a leak.

Here is a complete transcript of what was was said, unedited, and
unrehearsed, so it isn't as neat as planned interviews.

You will find it interesting...

Interviewer: Well, it's been a few years since you changed the world 
of software design, how does it feel, looking back?

Stroustrup: Actually, I was thinking about those days, just before 
you arrived. Do you remember?  Everyone was writing 'C' and, the 
trouble was, they were pretty damn good at it. Universities got 
pretty good at teaching it, too. They were turning out competent
 - I stress the word 'competent' - graduates at a phenomenal rate. 
That's what caused the problem.

Interviewer: Problem?

Stroustrup: Yes, problem. Remember when everyone wrote Cobol?

Interviewer: Of course, I did too

Stroustrup: Well, in the beginning, these guys were like demi-gods.
Their salaries were high, and they were treated like royalty.

Interviewer: Those were the days, eh?

Stroustrup: Right. So what happened? IBM got sick of it, and invested
millions in training programmers, till they were a dime a dozen.

Interviewer: That's why I got out. Salaries dropped within a year, to
the point where being a journalist actually paid better.

Stroustrup: Exactly. Well, the same happened with 'C' programmers.

Interviewer: I see, but what's the point?

Stroustrup: Well, one day, when I was sitting in my office, I thought 
of this little scheme, which would redress the balance a little. I 
thought 'I wonder what would happen, if there were a language so 
complicated, so difficult to learn, that nobody would ever be able 
to swamp the market with programmers?  Actually, I got some of the 
ideas from X10, you know, X windows. That was such a bitch of a 
graphics system, that it only just ran on those Sun 3/60 things. 
They had all the ingredients for what I wanted. A really ridiculously 
complex syntax, obscure functions, and pseudo-OO structure. Even now, 
nobody writes raw X-windows code. Motif is the only way to go if you 
want to retain your sanity.

Interviewer: You're kidding...?

Stroustrup: Not a bit of it. In fact, there was another problem. Unix
was written in 'C', which meant that any 'C' programmer could very 
easily become a systems programmer. Remember what a mainframe systems 
programmer used to earn?

Interviewer: You bet I do, that's what I used to do.

Stroustrup: OK, so this new language had to divorce itself from Unix, 
by hiding all the system calls that bound the two together so nicely. 
This would enable guys who only knew about DOS to earn a decent living
too.

Interviewer: I don't believe you said that...

Stroustrup: Well, it's been long enough, now, and I believe most people
have figured out for themselves that C++ is a waste of time but, I must
say, it's taken them a lot longer than I thought it would.

Interviewer: So how exactly did you do it?

Stroustrup: It was only supposed to be a joke, I never thought people
would take the book seriously. Anyone with half a brain can see that
object-oriented programming is counter-intuitive, illogical and
inefficient.

Interviewer: What?

Stroustrup: And as for 're-useable code' - when did you ever hear of 
a company re-using its code?

Interviewer: Well, never, actually, but...

Stroustrup: There you are then. Mind you, a few tried, in the early 
days. There was this Oregon company - Mentor Graphics, I think they 
were called - really caught a cold trying to rewrite everything in
C++ in about '90 or '91. I felt sorry for them really, but I thought
people would learn from their mistakes.

Interviewer: Obviously, they didn't?

Stroustrup: Not in the slightest. Trouble is, most companies hush-up 
all their major blunders, and explaining a $30 million loss to the 
shareholders would have been difficult. Give them their due, though, 
they made it work in the end.

Interviewer: They did?  Well, there you are then, it proves O-O works.

Stroustrup: Well, almost. The executable was so huge, it took five 
minutes to load, on an HP workstation, with 128MB of RAM. Then it ran 
like treacle. Actually, I thought this would be a major stumbling-block, 
and I'd get found out within a week, but nobody cared. Sun and HP were 
only too glad to sell enormously powerful boxes, with huge resources 
just to run trivial programs. You know, when we had our first C++ 
compiler, at AT&T, I compiled 'Hello World', and couldn't believe 
the size of the executable. 2.1MB 

Interviewer: What? Well, compilers have come a long way, since then.

Stroustrup: They have?  Try it on the latest version of g++ - you won't
get much change out of half a megabyte. Also, there are several quite
recent examples for you, from all over the world. British Telecom had 
a major disaster on their hands but, luckily, managed to scrap the 
whole thing and start again. They were luckier than Australian Telecom. 
Now I hear that Siemens is building a dinosaur, and getting more and 
more worried as the size of the hardware gets bigger, to accommodate 
the executables. Isn't multiple inheritance a joy?

Interviewer: Yes, but C++ is basically a sound language.

Stroustrup: You really believe that, don't you?  Have you ever 
sat down and worked on a C++ project?  Here's what happens: First, 
I've put in enough pitfalls to make sure that only the most trivial 
projects will work first time. Take operator overloading. At the end 
of the project, almost every module has it, usually, because guys 
feel they really should do it, as it was in their training course. 
The same operator then means something totally different in every 
module. Try pulling that lot together, when you have a hundred or 
so modules. And as for data hiding. God, I sometimes can't help 
laughing when I hear about the problems companies have making their 
modules talk to each other. I think the word 'synergistic' was 
specially invented to twist the knife in a project manager's ribs. 

Interviewer: I have to say, I'm beginning to be quite appalled at 
all this. You say you did it to raise programmers' salaries? That's 
obscene.

Stroustrup: Not really. Everyone has a choice. I didn't expect the 
thing to get so much out of hand. Anyway, I basically succeeded. 
C++ is dying off now, but programmers still get high salaries - 
especially those poor devils who have to maintain all this crap. 
You do realise, it's impossible to maintain a large C++ software 
module if you didn't actually write it?

Interviewer: How come?

Stroustrup: You are out of touch, aren't you?  Remember the typedef?

Interviewer: Yes, of course.

Stroustrup: Remember how long it took to grope through the header files
only to find that 'RoofRaised' was a double precision number?  Well,
imagine how long it takes to find all the implicit typedefs in all 
the Classes in a major project.

Interviewer: So how do you reckon you've succeeded?

Stroustrup: Remember the length of the average-sized 'C' project? 
About 6 months. Not nearly long enough for a guy with a wife and 
kids to earn enough to have a decent standard of living. Take the 
same project, design it in C++ and what do you get?  I'll tell you. 
One to two years. Isn't that great? All that job security, just 
through one mistake of judgement. And another thing. The universities 
haven't been teaching 'C' for such a long time, there's now a shortage 
of decent 'C' programmers. Especially those who know anything about 
Unix systems programming. How many guys would know what to do with 
'malloc', when they've used 'new' all these years - and never bothered 
to check the return code. In fact, most C++ programmers throw away their 
return codes. Whatever happened to good ol' '-1'?  At least you knew you 
had an error, without bogging the thing down in all that 'throw' 'catch' 
'try' stuff. 

Interviewer: But, surely, inheritance does save a lot of time?

Stroustrup: Does it? Have you ever noticed the difference between a 
'C' project plan, and a C++ project plan?  The planning stage for a 
C++ project is three times as long. Precisely to make sure that 
everything which should be inherited is, and what shouldn't isn't. 
Then, they still get it wrong. Whoever heard of memory leaks in a 
'C' program?  Now finding them is a major industry. Most companies 
give up, and send the product out, knowing it leaks like a sieve, 
simply to avoid the expense of tracking them all down.

Interviewer: There are tools...

Stroustrup: Most of which were written in C++.

Interviewer: If we publish this, you'll probably get lynched, you 
do realise that?

Stroustrup: I doubt it. As I said, C++ is way past its peak now, and 
no company in its right mind would start a C++ project without a pilot
trial. That should convince them that it's the road to disaster. If not,
they deserve all they get. You know, I tried to convince Dennis Ritchie 
to rewrite Unix in C++.

Interviewer: Oh my God. What did he say?

Stroustrup: Well, luckily, he has a good sense of humor. I think both 
he and Brian figured out what I was doing, in the early days, but never
let on.  He said he'd help me write a C++ version of DOS, if I was 
interested.

Interviewer: Were you?

Stroustrup: Actually, I did write DOS in C++, I'll give you a demo 
when we're through. I have it running on a Sparc 20 in the computer 
room.  Goes like a rocket on 4 CPU's, and only takes up 70 megs of 
disk.

Interviewer: What's it like on a PC?

Stroustrup: Now you're kidding. Haven't you ever seen Windows '95? 
I think of that as my biggest success. Nearly blew the game before 
I was ready, though.

Interviewer: You know, that idea of a Unix++ has really got me 
thinking. Somewhere out there, there's a guy going to try it.

Stroustrup: Not after they read this interview.

Interviewer: I'm sorry, but I don't see us being able to publish 
any of this.

Stroustrup: But it's the story of the century. I only want to be
remembered by my fellow programmers, for what I've done for them. 
You know how much a C++ guy can get these days?

Interviewer: Last I heard, a really top guy is worth $70-$80 an hour.

Stroustrup: See? And I bet he earns it. Keeping track of all the 
gotchas I put into C++ is no easy job. And, as I said before, every 
C++ programmer feels bound by some mystic promise to use every damn 
element of the language on every project. Actually, that really annoys 
me sometimes, even though it serves my original purpose. I almost like 
the language after all this time.

Interviewer: You mean you didn't before?

Stroustrup: Hated it. It even looks clumsy, don't you agree? But when 
the book royalties started to come in... well, you get the picture.

Interviewer:  Just a minute. What about references?  You must admit, 
you improved on 'C' pointers.

Stroustrup: Hmm. I've always wondered about that. Originally, I 
thought I had. Then, one day I was discussing this with a guy who'd 
written C++ from the beginning. He said he could never remember 
whether his variables were referenced or dereferenced, so he always 
used pointers. He said the little asterisk always reminded him.

Interviewer: Well, at this point, I usually say 'thank you very much' 
but it hardly seems adequate.

Stroustrup: Promise me you'll publish this. My conscience is getting 
the better of me these days.

Interviewer: I'll let you know, but I think I know what my editor 
will say.

Stroustrup: Who'd believe it anyway? Although, can you send me a 
copy of that tape?

Interviewer: I can do that.




Selecting a Programming Language Made Easy
by  Daniel Solomon & David Rosenblueth
  
  With such a large selection of programming languages it can be
difficult to choose one for a particular project.  Reading the manuals
to evaluate the languages is a time consuming process.  On the other
hand, most people already have a fairly good idea of how various
automobiles compare.  So in order to assist those trying to choose a
language, we have prepared a chart that matches programming languages
with comparable automobiles.

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 convertable 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.

Pascal          - A Volkswagon Beetle.  It's small but sturdy. Was 
                  once popular with intellectual types.

Modula II       - A Volkswagon Rabbit with a trailer hitch.

ALGOL 68        - An Aston Martin.  An impressive car but not just
                  anyone can drive it.

LISP            - An electric car. It's simple but slow. Seat belts 
                  are not available.

PROLOG/LUCID    - Prototype concept cars.

Maple/MACSYMA   - All-terrain vehicles.

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.



Having Choosen you language Just how easy (or Not!!) is it to use??.

TASK :- To Shoot Yourself In The Foot

C:      You shoot yourself in the foot.

C++:    You accidentally create a dozen instances of yourself and shoot
        them all in the foot. Providing emergency medical assistance 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."

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 with the attempts to shoot 
         yourself anyways because you have no exception-handling 
         capability.

Pascal: The compiler won't let you shoot yourself in the foot.

Ada:    After correctly packing your foot, you attempt to concurrently 
        load the gun, pull the trigger, scream, and shoot yourself in 
        the foot. When you try, however, you discover you can't because
        your foot is of the wrong type.

COBOL:  Using a COLT 45 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 re-tied.

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 
        the gun with which you shoot yourself in the appendage which 
        holds the gun with which you shoot yourself in the appendage 
        which holds...

FORTH:  Foot in yourself shoot.

Prolog: You tell your program that you want to be shot in the foot. The
        program figures out how to do it, but the syntax doesn't permit 
        it to explain it to you.

BASIC:  Shoot yourself in the foot with a water pistol. On large 
        systems, continue until entire lower body is waterlogged.

Visual Basic: You'll really only _appear_ to have shot yourself in 
              the foot, but you'll have had so much fun doing it that 
              you won't care.

HyperTalk: Put the first bullet of gun into foot left of leg of you.
           Answer the result.

Motif:  You spend days writing a UIL description of your foot, the 
        bullet, its trajectory, and the intricate scrollwork on the 
        ivory handles of the gun. When you finally get around to
        pulling the trigger, the gun jams.

APL:    You shoot yourself in the foot, then spend all day figuring 
        out how to do it in fewer characters.

SNOBOL: If you succeed, shoot yourself in the left foot. If you fail,
        shoot yourself in the right foot.

Unix:   % ls
        foot.c foot.h foot.o toe.c toe.o
        % rm * .o
        rm:.o no such file or directory
        % ls
        %

Concurrent Euclid: You shoot yourself in somebody else's foot.

370 JCL: You send your foot down to MIS and include a 400-page document
         explaining exactly how you want it to be shot. Three years 
         later, your foot comes back deep-fried.

Paradox: Not only can you shoot yourself in the foot, your users 
         can, too.

Access: You try to point the gun at your foot, but it shoots holes
        in all your Borland distribution diskettes instead.

Revelation: You're sure you're going to be able to shoot yourself
            in the foot, just as soon as you figure out what all 
            these nifty little bullet-thingies are for.

Assembler: You try to shoot yourself in the foot, only to discover 
           you must first invent the gun, the bullet, the trigger, 
           and your foot.

Modula2: After realizing that you can't actually accomplish anything 
         in this language, you shoot yourself in the head.

VMS:
$ MOUNT/DENSITY=.45/LABEL=BULLET/MESSAGE="BYE" BULLET:
   :BULLET$GUN SYS$BULLET
$SET GUN/LOAD/SAFETY=OFF/SIGHT=NONE/HAND=LEFT/CHAMBER=1/ACTION=
  AUTOMATIC/LOG/ALL/FULL SYS$GUN_3$DUA3:�000000�GUN.GNU
$ SHOOT/LOG/AUTO SYS$GUN SYS$SYSTEM:�FOOT�FOOT.FOOT

%DCL-W-ACTIMAGE, error activating image GUN
-CLI-E-IMGNAME, image file $3$DUA240:�GUN�GUN.EXE;1
-IMGACT-F-NOTNATIVE, image is not an OpenVMS Alpha AXP image
oh well, almost..

FORTH: Foot in yourself shoot.
        self dup >foot shoot




PROGRAMMING LANGUAGES ARE LIKE WOMEN
by Daniel J. Salomon 

  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.

Assembler 
  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.

FORTRAN 
  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.

COBOL
  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.

BASIC 
  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, 
it's 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.

PL/I
  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. 

C
  A lady executive.  An avid jogger, very healthy, and not too 
talkative. Is an 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.

ALGOL 60
  Your father's 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.

Pascal
  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).

Modula II
  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 68
  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.

LISP
  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.

APL
  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.

LOGO
  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.

LUCID & PROLOG
  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.

Ada
  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.



Computer Language Breakthrough

  Bell Laboratories has formally announced what it believes is 
the ultimate computer science language. Described by Iusi Nogoto,
the foremost Japanese fourth generation language expert, as "the 
only truly elegant computer language ever devised." NULL, as it is
known, was developed by the same department that originally invented 
the wrong number, the busy signal, and the phrase, "The number you 
have reached is not in service." NULL is the culmination of five
years of work by a team of language designers and computer science
mathematicians. The final breakthrough occurred when operating system
expert Hugh Nicks suggested that if removing GO TO"s was good then 
why not scrap IF statements as well, since they usually required 
typing too many characters anyway. This brilliant concept was extended
through a series of complex mathematical theorems that form the basis  
of the NULL language. Put in layman"s terms by Sally Kahn-Vallee, 
electrical engineer and PROM reader, "Like we first we tossed out the 
bath water, then the baby, and like finally the whole tub." The elegance
and conciseness of NULL can thus be proven to be a direct consequence
of the fact that the language as defined contains no statements at all.
While at first glance this may seem a drawback, in fact, it is a major 
improvement over any other language.  A few of the numerous reasons
are:

 1. Highly structured constructs.

 2. Advanced data hiding techniques.

 3. A NULL compiler can  be written first in NULL with out ever needing 
    to be written in a lower level language.

 4. Since there are no statements to compile, in fact, no compiler need 
    ever be written in the first place, saving time and money.

 5. Since there will be no compilers, no new releases will ever be 
    issued hence maintenance is reduced.

 6. NULL programs are highly portable and totally machine independent.

 7. NULL programs compile and execute rapidly. An important point to 
    note is that with the addition of a small  amount of language 
    dependent code,  e.g. PROC/END etc.,  all  NULL programs can be 
    compiled by  any other language compiler.

 8. Since there will never be new releases of NULL, all programs are 
    upwardly and downwardly compatible.

 9. NULL can be parsed top-down, bottom-up, left-right, right-left,
    inside-out, and over-easy.

10. NULL programs are both self-documenting for clarity and self-
    concealing for security.

11. NULL programmers are easy to find and once found can be fired 
    since they are not needed.

12. If desired, specialized NULL hardware  could be designed 
    implementing the code in firmware. Of course, such hardware may 
    require years of development. One suggestion from Bell"s VLSI 
    experts Nora  and Andy Gates was to take an existing available 
    chip and remove all  the instructions except NOP.  While this 
    should work in theory,  they acknowledged  that it is probably 
    not the most efficient implementation.

  These are just a few of the many  ways NULL is superior to all 
current computer languages. You can, no doubt, think of more. For 
further reading consult any of the numerous books and articles by 
Donald Knuth, David Parnas,  and of course, the basis of all modern 
computer language theory, "The Emperor"s New Clothes."




© Yuks'R'Us! 2000 — 2023