This chapter has defined and explored a particular mode of thought and its relationship to computation. I imagine that some readers might have found this discussion to be highly irritating. "Why all this attention to such a marginal concept?", I hear them saying. "Don't you know that anthropomorphism is at best a useful pedagogical device, and not something that really has anything to do with how computers work and are programmed?" Assuming any of those readers have actually made it to the end of the chapter, I would like to answer them. In computation, animism has become what I have called a transparent metaphor, one that is so much a part of the structure of the discourse of the field that we have forgotten that it is there. This chapter is an attempt to see a metaphor that has become close to invisible, with the hope of understanding and extending it.
Is there a need for this treatment? I think that there is, because of the confusion that rages in various segments of the computer world over issues that are deeply tied to the issue of just what it means to be animate and/or intelligent. The current fad of using the word "agent" for software of all types is one aspect of this unease, and it generates a good deal of confusion. Another symptom is the recent split in AI between representationalists and the situated action approach, reminiscent of the older split between AI and cybernetics. Mature science is supposed to converge on a theory; but instead computational approaches to intelligence and life seem to be diverging, with no consensus on the problems to be solved, let alone the answers.
This chapter, then, is an attempt to address these problems at a conceptual level, by trying to understand how the languages of computation are related to the language used to describe life and action. We found that while animate metaphors are pervasive in computation, being in some sense a founding metaphor for the field, the metaphors offer up only a limited form of animacy that leaves out many of the key properties associated with aliveness. The rote-instruction-follower image affects and infects our thinking and limits our imagination about what computers can do.
Agent-based programming systems set out to bring a fuller form of animacy to the description of computational processes. By picturing the components of programs as animate objects that can have explicit goals, a degree of autonomy, and the ability to dynamically react to their surroundings, languages can be designed that are more suitable for creating animate worlds. The following chapter illustrates some agent systems based on these ideas and explores what they can do.