The Polymurphic Object
by David Gerrold
The polymurph transforms itself according to its circumstances. It is so pernicious that it will eagerly leap out of the computer directly into the physical universe to destroy door hinges, cordless screwdrivers and expensive Michelin radials. et's say you just bought a new video card for your system.
You install the card, you run the setup program, you install the high resolution drivers for your monitor. You're ready to go to work—and you promptly discover that your expensive image processing program doesn't work correctly with this video card.
No problem. You call the company. A technician gives you the phone number of a BBS so you can download new drivers. But suddenly your modem doesn't work. There's an interrupt conflict between the new video card and the modem.
No problem. You can always reset the dip switches on the modem. You go to the closet to get the manual for the modem. And the closet door comes off its hinge. The wood screw has popped out of the wall.
No problem. You go digging through your toolbox for a larger wood screw and some quick-drying glue. You lever the door back into place, you push the new screw into the old hole—and you find that your cordless screwdriver is dead. It hasn't been recharged.
No problem. You go to your toolbox looking for your set of Sears special screwdrivers—and remember that your brother-in-law borrowed them last week.
No problem. You can just run over there and pick them up—except when you get out to the car, you find it has a flat tire ....
This is the polymurphic object—the inheritable error.
Before object-oriented programming, all that programmers had to deal with were simple murphic objects—bugs. Every error was complete unto itself. Once it was fixed, it was flattened.
During the '80s, programmers became increasingly aware that any bug-fix was likely to spawn a host of unforeseen side-effects. The advent of structured programming made it possible for a bug in a function to spread its pernicious effects into any part of the program that called the bug's host-function. Even changing the behavior of known functions could create unknown responses elsewhere in the software.
Nowadays, however, in the era of OOP, when we are awash in strange new paradigms and event-driven environments, the simple murphic object no longer exists. It has evolved into the polymurph—the error that transforms itself with each new instance. More and more now, we are beginning to see polymurphic objects infesting every domain of our electronic environment.
The polymurph transforms itself according to its circumstances. It is so pernicious that— as demonstrated by the example above—it will eagerly leap out of the computer directly into the physical universe to destroy door hinges, cordless screwdrivers, and expensive Michelin radials.
Given the very rapid rate of polymurphic evolution, it is possible that in the not too distant future, all real work will become totally impossible, and we will be spending all of our work time repairing the. effects of the polymurphic object, always at least one step behind it as it transforms its way through the domain of our desktops and work-spaces.
The Murphy Foundation is currently funding a crash program (pun intended) to develop defenses against polymurphic incursions. So far, however, the research has been unrewarding. While a great many descendant bugs have been identified, only two ancestor bugs have been located. One is the transistor. The other is fire.
It is possible, however, that the ultimate ancestor of all polymurphs is the universe itself—the cosmos is the primal murphic object.
In that case, our only hope for getting any work done before 5 p.m. Friday is the fact that even Murphy's Law doesn't work all the time.
NOTE: WHEREAS this article is reprinted here without permission, and WHEREAS there is no commercial intent, and WHEREAS We stole it fair and square, and WHEREAS it is here solely for Our personal enjoyment, THEREFORE, We do hereby grant a special dispensation from copyright law. -- Norton I, Emperor of the United States, Protector of Mexico, and prospective consort to the Queen of Great Britain