Imagine a pattern language for building large, open plan buildings. They are public buildings, so need to be well-lit, and allow adequate ventilation for large crowds to occupy them comfortably. The only bulk building materials available (jointed stone) are strong in compression, weak in tension. To resolve such forces, the language will necessarily have come to include columns, arches, rectangular bays, ribs, vaults and domes, buttresses, towers. With ribs and buttresses you can also add in "glass walls"; with domes, extensive sky-lights. Depending on your cultural preferences (more forces) for domes ''vs''. vaults this will result in either "Gothic" or "Moorish" buildings. These two different solutions do not conflict, because they are both primarily driven by the need to combine size with a compression material. Mosques tend to be "cleaner", but if you strip the six inch depth of ginger-bread off a Gothic cathedral, what's left is almost pure functionalism. Imagine Hagia Sofia and Chartre moved next to each other, they would co-exist in harmony. Now try adding in a few modern steel and glass structures, some "organic" concrete forms... A lot of contemporary architecture seems filled with conflict because the forms and the materials don't match. With OO, we are free to invent new materials to solve a design problem, and so there is more scope for conflict, because there is no "natural" solution. ---- Very interesting. It isn't that there are no forces constraining our materials, the problem is that the forces constraining the "materials" from which we construct software are a combination of technical forces like performance and reliability and human forces likes greed, sloth, envy, terror, pride, embarrassment, joy, satisfaction, frustration, and altruism. The technical forces we can deal with, but the human forces - we aren't even prepared to admit they exist most of the time.