![](/file/12652/www.mactech.com.tar/www.mactech.com/sites/all/themes/custom_front/images/you_are_here_red.gif)
![](/file/12652/www.mactech.com.tar/www.mactech.com/sites/default/files/beta-site.gif)
The Veteran Neophyte: A Feel for the Thing
Dave Johnson
That's what I used to think. I'm not so sure anymore.
Ultimately, of course, the operation of computers is deterministic and absolutely predictable. There's guaranteed to be a complete explanation for any event on the computer; the search for an answer will always find one. It's like playing Go Fish with a deck of cards that contains only threes -- "Got any threes?" "Yep." "Got any threes?" "Yep." "Got any threes?" "Yep." The answer itself, of course, may be convoluted and difficult, and is often way too much trouble to actually track down ("Have you tried rebooting?"), but it's always there. The world inside computers has a definite, impermeable bottom, like a swimming pool.
The real world, on the other hand, is more like being out in the middle of the ocean: the bottom is nowhere in sight, and in fact is so far away that it may as well not exist at all. Trying to completely explain things in the real world is generally an exercise in futility, though one that humans seem to have a capacious appetite for (that's what science is all about, after all). The real world is so vast and complex that our explanations are never really complete. The answers always lead to more questions, and the edges of our knowledge remain frayed and ragged and crumbling, even though the center may have a seemingly solid, well supported integrity.
The thing that got me thinking about all this is boomerangs. I've been learning to throw boomerangs lately, and it's extremely satisfying -- and somehow endlessly novel -- to throw something away from yourself as hard as you can, and have it return several seconds later, hovering gently down into your waiting hands like a bird coming home to roost. (Such a perfect flight, of course, is a rare thing for a novice like me. More often, if the boomerang comes anywhere near me, it's slicing past at a frightening rate of speed while I cringe, covering my head.) While I've been learning to throw boomerangs, I've also been trying to watch myself learn to throw boomerangs -- sort of meta-boomeranging -- and I noticed that a complete explanation of what was happening was not only absent, but completely unnecessary: I don't need to know how boomerangs work to learn to throw them well.
Boomerang throwing is one of those real-world activities -- there are many of them -- that are governed by rules of thumb, by approximation and estimation, and by "feel." There are lots of variables involved in producing a good boomerang flight, and they're all sort of woven together, interconnected and interdependent. The direction of the throw, the angle of the boomerang as it leaves your hand, the forward power of the throw, and the amount of spin all contribute to the flight characteristics, but the way they combine and interact is complex and nonobvious. How's a poor, bewildered boomerang neophyte to make any sense of it all?
Well, the only way to learn to throw boomerangs is to get yourself a decent boomerang (very important!), read a little about it or get a lesson from someone, and then just get out there and start throwing. You need to experience it; you need to feel the smooth, flat weight of the thing, notice the way it slices the wind as it leaves your hand, and watch as it spins and swoops. Every throw you make adds to a growing store of knowledge about boomerang behavior. Slowly, you begin to sense the structure of the rules that govern the flight of the boomerang, to get a feel for it, to gain some control. But no matter how long you work at it, there's always more you can learn about boomerangs. Boomerang throwing, like most things in the real world, has no bottom.
But even though things in the real world are webby, tangled, and complex, with no real bottom and no real center, and even though complete understanding is out of our reach, that doesn't stop us from getting things done. Even though we may not understand exactly what's going on when we throw a boomerang, we can learn to throw them anyway, and can actually learn to throw them with incredible skill. Scientists don't have a complete understanding of fluid mechanics, but we can still design hydraulic lifts that lift, toilets that flush, and airplanes that fly.
Though it seemed profound when I first thought of it that way, it really isn't anything remarkable at all. It's the stuff our everyday sensory world is made of. It's our standard, animal mode of operation. We depend heavily on trial and error, on finding and keeping strategies that work. We invent myths and superstitions to explain things we don't understand, we guess, we fake it, we operate by feel. And it works just fine.
But we don't need that sort of thing in the clean, deterministic world of computers, right? If we know the answer is within our reach, then why gloss over it? There's one very good reason: it's gotten to the point where it's often really hard to reach the answer. Computers have become so complex that finding the real answer is often a Herculean feat requiring great effort and stamina. The things that we're "growing" in the machine are getting very deep and webby and complex, just like things in the real world. That nice smooth bottom we all know and love is getting pretty remote and hard to see, and in fact trying to keep it in sight often holds us back.
The truth is, we need fakery, or myth, or something similar, to avoid being hopelessly mired in complexity, and to let us feel cozy even in the face of something too deep to comfortably understand. The idea that an icon in the Finder, a document window in an application, and a file on the hard disk are all "the same thing" is a fiction, an illusion created from smoke and mirrors, and one that users don't even think about anymore (unless, of course, an application screws up the illusion; see Mark Linton's article in this issue for some code to help you avoid such a faux pas). But it's precisely that kind of myth and abstraction that lets people ignore all the underlying complexity and just go about their everyday business. Without that kind of trickery most people would be lost.
Humans have a deep need for some sort of explanation, and we'll often ignore aspects of a situation, or even make stuff up out of thin air, if it helps us to find an "answer." Remember the frictionless inclined planes and perfect vacuums of college physics? Without that kind of glossing over of details, we'd have been helpless. (A college housemate of mine and I used to joke about running a college physics stockroom: boxes of frictionless, massless pulleys on the shelves; gallon jugs of zero-viscosity liquid at our feet; coils of infinite and semi-infinite wires hanging neatly on the pegboard wall. Those wires have no thickness or mass, thank goodness, or the storage requirements would be prohibitive.) This need for explanation is what has led us to science, and to religion, and to superstition. These are not the same thing, of course, but they can all serve the same purpose: a soothing, protective balm on the raw edges of our incomplete knowledge. They give us a ground to stand on, a rail to hold on to, as we totter along in the darkness, going who knows where, hoping the batteries will hold out long enough to get an answer.
Now that I think about it, I'm happiest with a generous helping of myth and fiction stirred into my computing. It can help make the computer -- which, let's face it, is essentially a gritty, sharp-edged, and hostile machine -- feel more rounded and friendly. It can provide a useful disguise, like a plastic nose and glasses on something seething and alien, making it recognizable, familiar, even comforting and amusing. If it's done well, it can even let me learn to use a computer in much the same way I learn to throw a boomerang: by picking it up and trying it, by mucking around and getting a feel for it, by discovery.
Maybe best of all, it lets computers keep a little of their mystery. The mystery and magic of the Macintosh are why many of us are programmers, after all. Mysterious things, things that don't have clean and obvious boundaries, are inevitably more interesting and more fun. There's no denying that computers have a dull, featureless, dreary bottom. But in the other direction there seems to be no boundary; the top, if there is one, is as far away as the sky. So yes, I think there's plenty of room for mystery in the world of computing. Plenty of room indeed.
- Many Happy Returns: The Art and Sport of Boomeranging by Benjamin Ruhe (Viking, 1977).
- How to Hide Almost Anything by David Krotz (William Morrow and Company, 1975).
RECOMMENDED READING
![](/file/12652/www.mactech.com.tar/www.mactech.com/articles/develop/issue_23/veteran1.gif)
DAVE JOHNSON has an ever-lengthening list of life goals, things that he'd like to accomplish or experience before leaving this mortal coil. Some recent additions include making marshmallows from scratch, milking a cow, and hugging a full-grown bear. (Is bear breath better than dog breath? There's only one way to find out!) If you have a cow or bear Dave could visit, please let him know.*
Thanks to Lorraine Anderson, Jeff Barbose, Brian Hamlin, Mark "The Red" Harlan, Bo3b Johnson, Lisa Jongewaard, and Ned van Alstyne for their always enlightening review comments.*
Dave welcomes feedback on his musings. He can be reached at JOHNSON.DK on AppleLink, dkj@apple.com on the Internet, or 75300,715 on CompuServe.*
![](/file/12652/www.mactech.com.tar/www.mactech.com/sites/all/themes/custom_front/img/search_text.gif)
- SPREAD THE WORD:
- Slashdot
- Digg
- Del.icio.us
- Newsvine