In search of meaning (a tale of two words)

L ittle things don't usually bug me. I like to believe I stay focused on big-picture stuff, letting the little things take care of themselves. But in this column, I want to delve deeply into the nitty-gritty. Two words that are frequently used in the computing field have meanings that just aren't what we assume them to be. Ready? The words (I think this will surprise you) are " ad hoc " and " heuristic. " Quick, now. Give me an off-the-top-of-your-head definition of each word. Let me guess the result. I'll bet you said something such as " ad hoc means disorganized " and " heuristic means rule of thumb. " Well, it's not as simple as that. I've been off on a personal quest about those words, because I kept finding dictionary definitions that didn't match the definitions that I'm guessing you came up with. Do you know what my dictionary says? It defines " ad hoc " as " suited for the task at hand " and " heuristic " as " trial and error. " Granted, my dictionary is an el cheapo, one I probably got free with the purchase of some more expensive item. But still, my el cheapo dictionary is from a respectable source—it's an Oxford American! And it's not that ancient—it was published in 1980. So what's going on here? Meanings in general Could those pairs of conflicting definitions mean the same thing? After all, it's tempting to rationalize away verbal shocks such as these by saying " Oh, it doesn't mat-ter—it's the same thing, just using different words. " So let's take them one at a time. The two definitions of " ad hoc " are (a) disorganized and (b) suited for the task at hand. Could those actually mean the same thing? Not really. An ad hoc approach that is suited for the problem at hand might be carefully chosen , carefully implemented, and carefully executed. It could also, of course, be suited for the problem at hand in a perfectly disorganized way. But that's a stretch. You can't really get there (disorganized) from here (suited for the problem at hand). These are very different meanings. In fact, from a computing point of view, those two meanings can lead us in two entirely different directions. We'll explore that thought in a minute. Now, consider " heuristic. " Its two meanings are …