Chapter 7. Autonomy

 

Object-oriented programming (OOP) is a programming conceit. Objects are for organizing conceptual things into conceptual structures. An “object” can be anything: a speck within a particle system, a game character, a pure data form, or just a neat way of collecting variables and methods.

It doesn’t necessarily have to correspond to anything that has a visual form or identity; it’s a data holder. But you don’t need to think of objects in such clinical terms. If you chose to define them so, you could give your objects feelings, aspirations, failings, and destinies. They can be active citizens in a virtual world, albeit a highly abstract one. Your objects can be more than data holders: they can be autonomous agents.

The difference between an object and an agent, in programming parlance, is that agents, specifically, observe and interact with their environment. They may have more sophisticated behaviors, such as goals, beliefs, and prejudices. They can also harbor imprecisions, self-interests, and irrationalities too, which is what makes them so interesting to work with.

7.1. Cellular automata

7.2. Simulation and visualization

7.3. Summary

sitemap