Welcome to Orcmid's Lair, the playground for family connections, pastimes, and scholarly vocation -- the collected professional and recreational work of Dennis E. Hamilton
What Computers Know
What Computers Know: But What’s the Use. I want to provide an understandable treatment of how pitifully impaired the computer is in regards to matters of the world and the physical reality in which humans operate. I suppose most people, especially computer technologists, will say they already know that. The reason for my pressing the point is that I don’t see that knowledge reflected in how people speak about computer systems and how they behave as software developers, adopters, and users.
My thesis is simply this: as valuable as digital computers are, the demonstrable chasm between the computer and the world of human experience and action is a gulf that cannot be crossed. My concern is that we cannot provide computer software that is increasingly dependable and useful unless we appreciate how that is accomplished with computers and programs that are profoundly isolated from the world in which we, nonetheless, rely on them as useful instruments of our work.
The following sketch is extracted from a lengthier treatment that is maintained on the web at TROST InfoNote: What Computers Know. There is additional context and elaboration there. It is where links to more material will be added.
Talking About Knowledge
I mean by knowledge, here, an innate or embodied understanding that informs action. I am using knowing in the way that Keith Devlin, author of The Math Instinct, would say that my cat, Teh Amor, knows calculus and ballistics, springing five feet in the air from a motionless crouch on the floor to straddle my shoulders, landing perfectly lightly with no harm to either of us.
I want to use the same sense of “knowing” in appraising the kind of actions the computer is doing when it is doing its thing. This is not about how it does it, certainly not why it does it, but simply what it is doing.
We can’t consult the computer. So let’s role-play as a computer ourselves: a digital human. It will be difficult to play digital human and give up what we know as human beings, so we’ll have to work hard to remove the things that a human would know. What a computer might know is whatever is left.
A Human-Understandable Program
There are programs that are written by humans for other humans. Cooking recipes are a favorite example. I choose a handy example that has been with us since computers were usually people: reconciling the balance of a financial account.
Every month I receive a program along with the statement for my checking account held by a U.S. bank. Here are the key details:
This procedure depends on our knowing a number of things about the world, such as “ATM withdrawals” and knowing what is my register, what is the statement, and so on. Imagine that someone gathered all of that material onto a form that could be used, side-by-side with the bank statement, so there is nothing left but to make the comparisons and record the work sheet as instructed. Those operations are all within the capacity of a computer, using digital equivalents of the register, statement, and items-outstanding chart.
The final operations are straightforward:
You should be able to see how this could be carried out, especially if the different amounts were written out for us on charts we can consult and mark. Someone could carry out the comparisons and computations without understanding what the procedure is for. And as our own experience tells us, we can do this without knowing how it works.
Until I chose this example, I had never realized what is missing from this program. There is no indication of what to make of a discrepancy. The calculated ending balance either matches the check-register balance or not. When it is not the same, we are on our own. What we do about that, and what we must know to do it, provides some valuable perspective on the degree to which even this quasi-digital human program is isolated and abstracted away from reality.
Playing Digital Human
Although we have a taste of what it would be like as a computer carrying out a purely-computational procedure, there’s still too much of human experience and expertise around the account-balancing example. To remove everything the computer cannot know and see what’s left, let’s pretend that the digital human operates under very rigid conditions. It will be as if you’re a prisoner in a locked room. You’ve never seen anything of the outside world and have no idea there is such a thing. There are no objects like check registers, bank statements, and bank-account transactions. All of that is elsewhere. What comes to the attention of this digital human is recorded data without any sense of its origin.
There is a simple procedure that is followed every time the digital-human computer goes into action:
Computer scientists and programmers will notice that the description is a bit oversimplified, omitting some important housekeeping (such as keeping track of and re-using the scratch-pad sheets). There is enough to make the key point. This mind-numbing experience is no problem for the digital human. As a computer, it is all there is. There is nothing else to be concerned about. That there could even be anything else is beyond its ken.
Instructing the Computer
Now we reach the heart of the question. What must we go through in order to instruct the computer to producing something that is useful to us despite the fact that the computer is oblivious to our interests and desires?
As the instructor of the computer, all you can do is signal start and provide coded elements that will appear at the input slot observed by the computer. To obtain results, you must record the elements that appear at the output slot. You can stop the computer. Those are the only actions available to you. Your interaction with the computer is extremely limited, no matter how much it is dressed up to be familiar for us:
What It Is Is Not What It's For
When we look at the mechanical nature of the computer's instruction, it should be apparent that the computer program is devoid of any connection to an external reality beyond the internal process of the computer and its program. The bank's instructions are almost as barren. They refer to objects that we are expected to be able to lay hands on, but that's about the only difference. In particular, nothing about the instructions from the bank tells us why we are to follow that procedure and what we are to make of either achieving the specified agreement of amount or of failing to do so.
In telling the computer only what to do, we leave behind anything about what the computation is for. Not only is there no connection to any earthly purpose, it is not possible to create one in the domain in which the digital computer carries out its programs.
By way of contrast, here’s what I use the bank reconciliation for:
Finally, when the procedure is being applied in reconciling a bank statement with a checkbook, accounting for a discrepancy in the calculated result is important. When there is no discrepancy, does that mean all is right with the world? Not necessarily. Knowing the theory by which the reconciliation is held to be valid and recognizing the theory’s relationship to reality is not enough to have confined reality to the theory. The application of theory to reality is always contingent and incomplete.
The Gap That Cannot Be Closed
It would be foolish to predict that computers will always be isolated from reality in the way that we saw for the digital human and the domain in which the digital human acted to produce computations. That's a different question and, as a practical matter, it is not necessary to address it.
The billions of computers operating at this moment, and all of those that have been built so far, operate in this isolation. The separation of programs and computations from reality is a fact for today's world. That's unlikely to change very quickly for all of those computer-augmented systems that we continue to develop, deploy, operate, and sustain.
Despite the gap, the computer is a powerful instrument. It might even be because of the gap that computers are so useful. Whatever the case, it strikes me that the nature of the gap and how we recognize it in the development of software can be of critical importance in understanding what falls to us in making computer systems increasingly useful in our world.
There are nine key ideas that I have attempted to illustrate and dramatize here:
This is enough, along with astounding progress in electronics and computer software, to accomplish everything that we have achieved since the commercial introduction of the modern digital computer barely 55 years ago. Nothing we know to do has altered the situation sketched here.
Bill Anderson and I have a running conversation on the difference between what computers are and the use we make of them. We've explored that question for a long time, almost the full 30 years we've known each other. In recent buddy calls between Seattle and Rye, New York, it seems to us that much is starting to crystallize in our thinking. We want to expand this conversation onto our blogs and engage with others, out loud and on the record. My kick-off contribution is to draw together some of the themes about the nature of computation that solidified as I researched the TROST project. This is the first piece.
update: Couldn’t get an unequal-sign to appear so wrote out the title about What It Is Is Not What It’s For. There’s something funny about controlling font sizes too.
update 2006-02-13/14: Made some small editorial adjustments suggested by Bill Anderson. This is the version we want to discuss further. I’m also troubleshooting Technorati tags without much success so far.
Comments: Post a Comment
|You are navigating Orcmid's Lair.|