Interesting People mailing list archives

A little humor - boy do we need it now!!!!


From: David Farber <farber () central cis upenn edu>
Date: Sat, 17 Sep 1994 10:03:36 -0400

 To: mdb-humor () cisco com
 Subject: HUMOR: Object-Oriented Breakfast
 Date: Thu, 15 Sep 94 21:01:16 -0700
 From: Marc Lavine <mlavine@va>


 [Forwards Removed]


From: greglo () microsoft com
Message-Id: <9409140122.AA13163 () netmail2 microsoft com>
Date: Tue, 13 Sep 94 18:18:52 PDT


   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 it 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 sophicticated, 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 complelely 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 if frying, so concurrent
 processig 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 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.


 ------- End of Forwarded Message


Current thread: