Indirection
Indirection is, it is widely said, one of the two important ideas in computer science. (The other is caching.) But the word “indirection” in compsci refers to something subtly different. To compscis, indirection usually means references: giving someone a pointer or reference to some data they want rather than giving them the data directly. If, instead of talking about indirection, I gave you a link to the Wikipedia page on the subject, or told you to look in OED, that would be indirection. But in its wider sense, indirection just means using “a devious or circuitous course to some end.” (Eschewing indirection, I quote OED here.) This concept too is familiar to compscis, but we usually call it doing something for its side-effects.
Let me take an example from our friends in the 'phone support business. One of the things that they quickly learn is that there is never any point asking a user if such-and-such is plugged in. The user will always answer yes and will take umbrage that you think him that stupid. Instead, ask what colour cable is plugged into it. Even when you don't care what colour it is, the question has the side-effect of making the user go and look at the cable and the socket rather than answering from the cache. This is indirection.
Indirection is generally seen as subtle. OED notes that the word often has negative connotations, but the concept it describes is often seen positively and associated with slick presentation, careful planning, or deep insight. It's sometimes coupled in Western minds with ‘Eastern mysticism’, specifically the idea of action through inaction, but really this conflates indirection with analogy, the latter being the basis of Far and Near Eastern philosophy, in contrast to (but really the same thing as) the symbolic reasoning of Graeco-Roman–derived philosophy. As an example of side-effecty indirection in Buddhism, I quote Thomas Cleary's translation of Wansong's commentary to case 42 in ‘The Book of Serenity’:
Shisuang asked Daowu, “What is enlightenment that meets the eye?” Daowu called to a novice, who responded; Daowu said, “Add some water to the washbasin.” After a while he asked Shishuang, “What did you just ask?” As Shishuang was about to repeat it, Daowu went back to his room; Shishuang thereupon had insight.
Kate Taylor once told me of the computing help-desk at some university. On the counter of the office, they placed a teddy bear. When someone came to the help-desk to report a problem, before being allowed to ask a human they were made to first explain their problem to the teddy. In most cases the visitor would start explaining and soon tail off as they achieved enlightenment.
Though structurally similar, these two stories are, in a way, opposites, symmetric as are East and West. But I digress. My point, I suppose, is that indirection, true indirection, is useful in a myriad ways. Strategically, they say to “make a feint to the East while attacking in the West.” Educationally, “show, don't tell.” In computer science, it's so important it doesn't even have a name any more. (Both uses of the word in Raymond's ‘Jargon file’ refer to the other indirection.) It can be very subtle, and it's a powerful tool. But Bester's character Y'ang-Yeovil in ‘The Stars My Destination’ understands the dangers of such powerful tools: “That's the basic weakness in routine intelligence procedure; you start finessing before finesse is required.”
It's so hard to see the Sun with the truth in your eyes.
Comments on Indirection | no comments | Post a comment