September 06, 2006
Why selective ignorance?
Once upon a time, while writing a lecture about important abstractions in programming, I suddenly realized that I didn't know how to define abstraction, even though I was sure I could recognize it when I saw it. So I went looking for definitions.
First I found one in the Oxford English Dictionary:
Abstraction: the act or process of separating in thought,
of considering a thing independently of its associations;
or a substance independently of its attributes;
or an attribute or quality independently of
the substance to which it belongs.
This definition seemed wordy, so I looked further and found the following quote, attributed to Locke in 1782 by Priestly:
Abstraction: leaving out of a number of resembling ideas
what is peculiar to each.
The language here is slightly archaic but the concept is not: Abstraction is the act of taking several ideas that resemble each other--in other words, several ideas that are similar but not identical--and removing everything but what the ideas have in common.
For example, I have three cats: one almost all black, one calico, and one tabby. Not only do they look different from each other, but they behave differently, and the texture of their fur is so individual that I can distinguish them in the dark by touch. Nevertheless, they are all cats; and when I think about them as cats rather than as individuals, I am disregarding everything but their catness--what they have in common. In doing so, I am thinking abstractly.
Although I liked the second definition, I thought my audience (mostly college sophomores) would feel uncomfortable with the archaic language; so I looked for a more modern way of expressing the same idea. Eventually, I came up with
Abstraction: selective ignorance.
Although I don't usually consider ignorance to be a virtue, the selective nature of abstraction changes the whole picture. The point is that most aspects of technology are too hard to understand completely, so our choice is really between selective ignorance and haphazard ignorance. Given that choice, I'll pick selective every time.
We practice selective ignorance all the time when we deal with technology. For example, if you are driving a car, you should concentrate on the road, rather than thinking about how the car works. On the other hand, when you're fixing a car, you have to think about how it works; you can put the road out of your mind until after you've fixed it.
In other words, when we are faced with a problem that is too large to understand, one of our most important intellectual tools is to understand just part of the problem, constructing a mental model that lets that part stand in for the whole in a useful way. In other words, selective ignorance--abstraction--lets us deal with problems that we would otherwise be unable to manage.
Now you know the origin of this blog's title. I intend to discuss a wide range of ideas. What they will have in common will be their relationship to various forms of abstraction. If you like, the notion of abstraction is an abstraction of the blog's ideas.
If you find the previous paragraph too confusing, you are welcome to ignore it.
Posted by Andrew Koenig at 07:12 PM Permalink
|