Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Sometimes the authority you should question is your own inclination toward a particular solution to a problem. A great paper appeared at the 2006 OOPSLA conference called Collaborative Diffusion: Programming Anti-Objects.[47] The paper’s authors make the point that, while objects and object hierarchies provide excellent abstraction mechanisms for most problems, those same abstractions make some problems more complex. The idea behind anti-objects is to switch the perceived foreground and background of the problem, and solve the simpler, less obvious problem. What is meant by “foreground” and “background”? An example will clarify. (Warning! If you still enjoy playing PacMan, don’t read the next paragraphs—they will ruin it forever for you! Sometimes knowledge comes with a price.)
[47] Download at http://www.cs.colorado.edu/~ralex/papers/PDF/OOPSLA06antiobjects.pdf.
Consider the PacMan console game. When it came out in the 1970s, it had less computational ability than a cheap cell phone of today. Yet, it had to solve a really difficult math problem: how do you get the ghosts to chase PacMan through the maze? That is to say: what is the shortest distance to a moving target through a maze? That’s a big problem, especially if you have very little memory or processor power to work with. So the developers of PacMan didn’t solve that problem, they used the anti-object approach and built the intelligence into the maze itself.