July 14th, 2004
I Sing the Body Electric
I fundamentally distrust technology. I can already hear you sputtering your dissent, but bear with me for a moment, and I will explain. I’m not anti-scientific, and I do not believe that technology is intrinsically “wrong,” on either moral or ethical grounds. True, there are times when I get the urge to smash up computers with a nine-pound sledge, but that is much more a specific reaction to certain computers, rather than a general hatred. Besides that, almost everyone who has to interact with a computer on a regular basis gets this urge at certain times, so any conclusions you may draw from this should not be ascribed solely to me. I am not a Luddite.
My distrust of technology arises from how it is applied, rather than its essential nature.* For example, I think that plastics are really cool, and I’m glad we discovered how to make them; however, I detest the fact that so many goods today are shrink-wrapped in a useless shell of made-to-fit polymer that will essentially never biodegrade, but which is inevitably too flimsy and specialized to be re-used for any other purpose. Similarly, I think it’s wonderful that we can manufacture powerful, general-purpose electronic computers, with the capacity to perform millions of arithmetic operations per second; but it disturbs me greatly that we put so much faith in these machines as keepers of records, arbiters of conflict, and makers of decisions. Computers, in particular, are very simple devices.** Their complexity comes from the fact that they do their simple tasks with enormous rapidity. But a computer is to arithmetic what a sewing-machine is to stitch-work: It is no more than an elegant electromechanical device that performs simple, repetitive work.
Unfortunately, many people seem to have the idea that computers can think. I do not think this belief is a conscious one, at least not for the majority of citizens of the modern industrialized world in which electronic computers are commonplace. If you walked up to the average citizen of the United States, and asked, “Can your computer think?” they would almost certainly answer “no”, unless their home computer happens to run Microsoft Windows, which displays a disturbingly life-like malice towards its users. Most people are aware, at least intellectually, that a computer can “only do what it is told to do,” a conventional wisdom captured in the poem my high school Geometry teacher kept posted on the wall of his classroom:
My God! I hate this damned machine;
I wish that they would sell it.
It won’t do what I want it to,
But only what I tell it.
It’s just an amusing bit of doggerel — but I think it reveals a more subtle unconscious feeling people seem to share, that computers really do have minds of their own, at least in some fashion. The sheer perversity with which computers foil our attempts to get things done, whether it be a task as simple as writing a letter home, or as complicated as approximating the solution to a partial differential equation, causes a deep suspicion in the people who use them with any regularity, that the machine is doing it on purpose.
* One could make the case that the Luddites didn’t hate technology in general, either. The earliest followers of Ned Ludd were not opposed to technology in general, but were angered over the displacement of skilled labour caused by the introduction of steam-powered programmable looms.
The modern connotations of the word “Luddite” seem to stem from the more violent conflicts which occurred after 1812, when hungry displaced croppers — their wrath escalated by the passage of the Frame Breaking Act, which made destruction of machinery into a capital offence — rioted, attacked mills, burned a mill-owner’s house, and looted for food. The movement was eventually put down after a number of the Luddites were transported to Australia, and others executed, for their actions. By 1817, Luddism had died out almost completely.
** Actually, the word computer used to be a job title, rather than a description of a machine. Early computing machines were called “mechanical computers,” or “electronic computers,” to distinguish them from the banks of sharp-eyed young men and women who used to be employed as computers, doing the tabulations, summations, and cross-checks now seen as the busy-work of electronic machines.
Part of this feeling probably stems from the fact that we rarely ever instruct a computer directly — modern microcomputers speak, natively, a Baroque language of binary digits, zeroes and ones, that is all but gibberish to most of us. Even experienced programmers generally do not “speak” the Spartan binary language of the machine directly; someone writes just enough of it to teach the computer some table manners, so to speak, and the rest of us use those instructions as we use plates and utensils, to keep everything neat and trim at the table. The language most programmers use to instruct the computer is like dinner-table conversation — it’s polite and carefully restricted, so as to cut down on embarrassment and confusion. You can say things more easily in the blunt, low dialect of the machine, but it’s coarse and tedious to work with, and using it incorrectly can cause many of the same problems as glass-breaking flatulence at a State dinner.
Whatever the reason, we seem to ascribe much more intention and volition to a computer than it actually possesses. True, a computer which is acting out the wishes of a human programmer is, in some sense, acting out “intelligent” behaviour. But its intelligence is limited to what the programmer can put into a simple finite table of rules, and will be followed blindly without adaptation. The great mathematician Alan Turing, among others, raised the question of whether a computer with a big enough table of rules could faithfully simulate what we think of as human intelligence. I don’t know the answer, but I can state with certainty that nobody — to date — has come up with a computer program that even comes close to simulating the intelligence of a human. Even simulating an ant turns out to be a pretty tricky problem. So, for the moment, at least, I think we can safely assert that computers cannot “think”.
Nevertheless, for certain kinds of problems, computers can do a pretty credible imitation of “thinking”. For instance, even though I knew it was just a machine running a program, watching Deep Blue beat Garry Kasparov at chess was more than enough to make the hairs on the back of my neck stand up. I’m not an expert chess player by any means, but some of the moves the computer made were profoundly cunning and insightful. Even knowing that their beauty was lost on the machine — except possibly in the outcome of a static board evaluation function — I could not keep from feeling that this machine was working a kind of black magic. (Unlike some people, however, I don’t really think the hand of the Devil is at work among the programmers at IBM. Like most modern people, I know that he resides in Redmond, WA, or perhaps Belleview).
Ultimately, I think our excessive faith in technology — and particularly in computers — arises because most people do not have a clear idea just how abstract a computer’s world is. When humans want to solve a real problem, we just think about a solution, and try to find a sequence of actions that take us from where we are (the problem) to where we want to be (the solution). Usually we don’t even think about it that abstractly — but that’s more or less the mental model we have:
Trouble is, the kinds of actions we can take in the real world are complicated, and often they’re irreversible (“Why don’t you just tap it gently with a hammer?” CRASH!). So, unless there is only one clear path to the solution, we generally like to consider our options a bit. This is where the computer comes in: If we can find a way to get a machine to “consider” all the possible solutions, sometimes we can have it figure out which one is “best”, based on our rules.
To do that, we need to come up with a mathematical model of the problem, which abstracts away the details we don’t want to worry about (“Ignore the fact that the porcelain is dusty.”), so we only need to concern ourselves with logical matters. In other words, we want a mathematical model that describes the original problem with sufficient fidelity that, if we apply logical actions, we eventually get to a mathematical model of a good solution:
![]()
So even before we’ve brought the computer into the equation, we have to decide how to model a problem mathematically, and how to extrapolate a real solution from a logical one, so that the solutions we get by manipulating logic preserve our practical understanding of how the world works. If we get it right, the logical rules of inference we use will not allow us to draw any conclusions that are stupid or unsensible when applied to the concrete world we’ve abstracted away:

To complicate the situation even further, computers do not work with mathematical abstractions directly. A computer, like an abacus, manipulates digits, not ideas. Instead of logical rules of inference, the computer has operational rules of computation, that govern how its digits are combined, changed, and moved around within the machine (and, yes, the digits in a computer do physically move, even in an electronic computer — only their movements are far too small to be seen):
![]()
In order to get a computer to work with a mathematical abstraction, we have to find a way to “encode” the initial conditions with a pattern of binary digits (i.e., the aforementioned zeroes and ones). Then, we need to make sure the rules of computation we built into the computer have an effect on the digits that is exactly analogous to the effect the rules of inference have on the corresponding logical model. In other words, it’s not enough that we can encode models as a bunch of bits — we also need to be able to “decode” a bunch of bits, so we can see what model they represent:

In short, before we can even begin to think about solving a problem using a computer, we have to do some pretty serious mental gymnastics in order to convert our problem from a concrete idea about the real world, into a mathematical abstraction, and from there into a bunch of bits the computer can work with:

But, hold on, we’re not out of the woods yet. Because, you see, rules of inference and rules of computation can be defined precisely, using mathematical notations, and their equivalence can be proven, relative to a formal logic of your choosing. In other words, it’s not too hard to show that if you encode a model, apply the appropriate rules of computation to the resulting bits, and then decode the bits to get another model, you wind up in the same place as if you had directly applied the corresponding rules of inference — by hand — to the original model. The thing you saved by doing the extra encoding and decoding was the work of doing it out manually. Unfortunately, it’s not so easy to prove anything about the modelling and extrapolation steps we used to convert the real problem into a mathematical model in the first place. A “real problem” isn’t a mathematical object we can push around; it’s a collection of circumstances and observations, filtered by the vagaries of human perception, interpretation, and experience. So, actually, when we construct a so-called “model”, we are making some pretty enormous assumptions:

Even if we knew that our “encoding” and “decoding” rules were really good, and we proved that our computation and inference rules are equivalent, whether or not the computer’s answer to our question is any damned good depends completely upon how faithful our modelling and extrapolation are to the real world. You can’t prove equivalence between the model and the real world, the way you can between mathematical objects and blobs of data. What’s worse, even if we assume the mathematical model is really good, you might get a bad answer if you specify the initial conditions incorrectly. You know the old saying: Garbage in, garbage out.
So, does that mean computers are useless, and we should simply stop using them? Well, no — it doesn’t mean that. But it does imply that we should always have a healthy respect for the strong possibility of human error that occurs when translating real-world problems into abstract problems for the computer to solve. Even if computers did not make mistakes (and they do), it’s a terrible idea to assume, just because a computer gives you a particular solution, that it must somehow be “more correct” than one you get from a human. It’s possible to trust the technology too much; and malicious people with access to a computer can manipulate that trust to rob you, slander you, or embarrass you.
What I’m advocating isn’t fear, or Luddism, but rather a healthy, self-aware skepticism. Don’t take technological solutions at face value. Ask for explanations, and demand proof that the technology works. Insist on understanding something about how the technology operates before you adopt it, rather than simply assuming it is “too technical for me to ever understand it,” but using it anyway. Resist the impulse to grab a high-tech solution, unless you can argue that it really does have some benefits over a simpler one. You don’t have to drive a horse and buggy to work, but you also shouldn’t jump on every technological bandwagon that comes along the pike.
So, yes — I’m distrustful of technology. But I think my distrust is a healthy reaction, rather than a pathology. After all, I’m using a computer to write this — how bad could I really be?
Filed by Michael at 16:59 under Philosophical
No Comments