Patterns document a form of a solution to a problem. Usually with the implication that it's worth knowing about because it's the right solution. But anti-patterns are things you should know about to avoid. They are seldom the right solution.
ChristopherAlexander doesn't use the term anti-pattern but talks about, and has an understanding of, "bad" patterns. And I think this is a very profound way of thinking. And we should understand anti-patterns in the same way. I will use AntiPattern to mean what Alexander calls "bad" patterns.
Specifically Alexander says such patterns are patterns which can't contain the forces they create. And for this reason, the forces will (eventually) destroy them, and can even leak out to damage other patterns.
He gives a good, simple example : a room with a window and a comfortable chair too far away from it. When people enter this pattern certain forces are released. A person would like to sit comfortably, but would also like to be near the window. Hence, one effect might be that the person sits, tries to read the newspaper, then gets up to take it closer to the window to read. Or wanders to the window to look out. The person isn't comfortable within this space. It causes continuous agitation.
Now, here there is an obvious, simple solution. Move the chair nearer the window. If the person does this, the AntiPattern is destroyed (by the forces it created) and a "good" pattern replaces it.
But suppose the chair can't be moved. Maybe it's too heavy. Or a table blocks the space near the window. Then the person either remains moving backwards and forwards uncomfortably. Or she prefers not to use the room. Maybe it becomes neglected, cluttered and untidy.
The bad forces can even leak out. Alexander gives another example, a courtyard or garden too uncomfortable for a child to play in. The child prefers to play on the street, risking danger from passing traffic. Or maybe the mother worries, and passes on the sense of anxiety to the child. The child is then torn between desire for freedom to play and desire to calm the mother's fear.
The pattern that emerges will always be the most "comfortable" way. Similarly, there will always be a way that is more "comfortable" than the current one. Evolution, discovery and "invention", and rivers are all examples of this "comfort seeking", as it were. In other words, is the distinction between Patterns and AntiPatterns just a FalseDichotomy? Shoudl it rather be considered a sliding scale of "overall effectiveness" that gets tweaked bit by bit? The amount it gets tweaked at any particular time is probably proportional to how obviously uneffective the current solution is, just as waterfalls have more force than a flat stream.
See also :
- (WarpLink) Compare DaveWiner on integrity : http://davenet.scripting.com/2001/01/08/whatIsIntegrity#whatIsIntegrity