MacTech Network:   MacForge.net  |  Computer Memory  |  Register Domains  |  Printer Supplies  |  Cables  |  iPod Deals  |  Mac Deals  |  Mac Book Shelf


  MacTech Magazine

The journal of Macintosh technology

 
 
StuffIt

Magazine In Print
  About MacTech  
  Home Page  
  Subscribe  
  Archives DVD  
  Submit News  
  Submit a Tip!  
  Get a copy of MacTech RISK FREE  
Google
Entire Web
mactech.com
Mac Community
More...
MacTech Central
  by Category  
  by Company  
  by Product  
MacTech News
  MacTech News  
  Previous News  
  MacTech RSS  
Article Archives
  Show Indices  
  by Volume  
  by Author  
  Source Code FTP  
Inside MacTech
  Writer's Kit  
  Editorial Staff  
  Editorial Calendar  
  Back Issues  
  Advertising  
Contact Us
  Customer Service  
  MacTech Store  
  Legal/Disclaimers  
  Webmaster Feedback  

The Veteran Neophyte: A Feel for the Thing

Dave Johnson

I used to think there was no room for mystery in the world of computers. I didn't think there was any use for fudge factors or rules of thumb or hunches in the clean, exact, hermetically sealed bubble of logic we all spend so much time diddling and poking. That stuff belongs to "real world" engineering, not software engineering, right? Software is always bounded and orderly, always understood completely from top to bottom, with no dangling ends, no frayed edges, and no baling wire and duct tape holding things together. There's never a need for vague, hand-waving explanations of how it all works, because we know how it works.

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.


    RECOMMENDED READING

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

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



Click here to find out more about our best subscription bundle deal ever!
2 years of the magazine, and the all new MacTech DVD ... at 70% off!



Click on the cover to
see this month's issue!

TRIAL SUBSCRIPTION
Get a RISK-FREE subscription to the only technical Mac magazine!
 
 


MacTech Magazine. www.mactech.com
Toll Free 877-MACTECH, Outside US/Canada: 805-494-9797

Register Low Cost (ok dirt cheap!) Domain Names in the MacTech Domain Store. As low as $1.99!
Save on brand compatible and name brank ink jet and laser supplies.
Save on long distance * Upgrade your Computer
Movies with No Late Fees!

See local info about Westlake Village
SJ * BRJ * BJ * OJ * NITS
Staff Site Links



All contents are Copyright 1984-2007 by Xplain Corporation. All rights reserved.

MacTech is a registered trademark of Xplain Corporation. Xplain, Video Depot, Movie Depot, Palm OS Depot, Explain It, MacDev, MacDev-1, THINK Reference, NetProfessional, NetProLive, JavaTech, WebTech, BeTech, LinuxTech, Apple Expo, MacTech Central and the MacTutorMan are trademarks or service marks of Xplain Corporation. Sprocket is a registered trademark of eSprocket Corporation. Other trademarks and copyrights appearing in this printing or software remain the property of their respective holders.