Programmer's Points: "Running With Pointers Considered Harmful..."
Column written by on Thursday, September 23, 1999
I have recently encountered some of the great works of Computer Science discussing the danger of such ideas as the "goto" statement (one article I categorically reject), "unstructured" programming, and Microsoft COM interfaces. Yet in my recent foray into the reference works of our industry, I failed to encounter any articles discussing a key issue that has led to tragedy after tragedy.
This, as you who have attended some of my early design presentations must know, is the issue of running with pointers. Now I know that many of your mothers repeated over and over, "Don't run with scissors, you will put your eye out!" But how many of you ever had a parent or a peer, let alone a Computer Science professor, point out the danger of running with pointers?
I'm sure you must all be familiar with the case of Harry Bumgartner, a programmer who worked at Eliant, the premier maker of check register software for the Timex Sinclair. One sunny morning, Mr. Bumgartner was presenting his new algorithm for calculating the deduction factor of a haircut in determining how work-related grooming expenses could be tabulated for tax purposes, when a young James B. Broley, thinking it humorous to rush into the conference room brandishing a fine birch pointer like a madman, suddenly put both of Mr. Bumgartner's eyes out.
Fortunately for Harry, he had suffered an attack of Cerebro Hepto-axial-cyto- mitochondrial-hytotic-miosis while serving with the Army in the Grenada operation in the mid 1980s and had lost vision in both eyes, so no serious harm was done.
Unfortunately for young Mr. Broley, his little prank cost him his job. He was recently sighted working the drive-thru window for an In-and-Out Burger in Fresno, CA.
Yet, this is not the the most horrific case I can make for the danger of running with pointers. There is always the case of Jane M. Doe (not her real pseudonym) of Los Angelis, Missouri.
Ms. Doe kindly consented to a brief interview for this public safety piece.
Pluspluss: Ms. Doe, if that is your real name, [At this point the guest became very belligerent], can you tell us, in your own words, if they are your own words [Now the guest began searching through her purse for, I was to find out later, a large gun] just how you came to suffer your disabling accident.
Doe: Look, I don't have to put up with this. I have a publicist, an agent, and have even chosen the actress that will play me in the upcoming ABC mini-series, "Lost at the Point!" (remember there is an exclamation point at the end). [She was now brandishing a gun in my direction].
Pluspluss: Well certainly, I'm all ears about this new venture that your "misfortune" has led you too."
Doe: [very angry now] Look, it's unsupported wannabe journalists like you working for self-proclaimed humor portals that are responsible for my predicament. I have half a mind to call my trainer David in to break your geeky butt in half. Oh David, this man is bothering me. Would you please dispose of him?
Pluspluss: [breathing hard with gaps between words, as if running] Thanks for... your time... Ms. Doe. I certainly hope you... find a way to... spend all your... "damages" efficiently... ouch, thorns...
As you can see from that excerpt recorded while I was running... I mean leaving Ms. Doe's compound, her encounter with a pointer was nothing less than shattering to her moral sense and willingness to talk with legitimate journalists.
I have now demonstrated the personal consequences of running with pointers (be they nice birch ones or even poorly made Korean pine) but let me now propose a safer alternative:
We must, as professional programmers, adopt the laser pointer as the standard pointer for all presentations, for these reasons:
1. In a word, efficiency. The laser uses a battery to provide a brilliant red spot. (Note: Looking at the light coming from the pointer's "business" end can result in blindness. You have been warned.) It is easier to see in a darkened room than even the famous birch pointer used by programmer Gerald M. Plotsnick.
2. More importantly, The laser pointer will not destroy one's eye if one accidently falls on it [Editor: Actually M.L., if one happens to fall on the pointer, it could (at least theoretically) get jammed into the eye socket. [M.L.: but I wasn't talking about that! I was talking about the pointy part]].
3. There are very few ways to hurt one's self with a laser pointer [Editor: Well, they could shine it in their eyes or something; or maybe try to pick their nose with it. [M.L.: Well, I was assuming they weren't stupid!]].
5. Perhaps, most importantly, laser pointers help ensure correctness in the presentation, thus reducing useless questions and comments on the presenter's style. Using laser pointers guarantees that the presenter knows what he is pointing at. So often with other pointer technologies, the presenter is able to apply the pointer to any item on the screen. With the laser pointer, the user must decide where it actually points if it is to have any meaning at all. This guarantees that the presenter will always pay attention to where the pointer is directed, unless he just doesn't give a damn.
6. More scalable. Due to limitations on lengths and the structural strength of wooden pointers, traditional pointers do not scale well to large presentations. As the size of the screen increases, so must the size of the pointer increase, until such a point that the pointer is either too limber and flexible to accurately point out the detail the presenter wishes or it is too heavy for the presenter to wield requiring some additional implementation technology such as a robot to actually wield the telephone pole sized pointer.
I believe that I have presented a very clear case supporting the need for all programmers to switch to laser pointers. I will be presenting this paper to the ACM when I get the chance and I believe that it is inevitable that the advantages of a laser pointer based system will supercede the current approach of using wooden technology. Clearly this provides safety advantages that can't be underestimated. But additionally, all programmers who adopt this position will know that they are adopting a proven system that is more efficient and scalable than the current "wooden" system most presenters currently use.