What does software and a path to God have in common? Well maybe nothing right now but it may perhaps be the only hope left for our future according to Christopher Alexander.
Christopher Alexander is an architect and author of many books on the concept known as Pattern Language. His works both revered and controversial, have been adopted by the software community and sparked a revolution in software design patterns. He coined the phrase pattern language which is a structured method of describing good design practices within a field of expertise. Professor Alexander explains a pattern language as a way of describing a problem that occurs over and over in our environment and providing a core solution to that problemĀ that can be used a million times without doing it the same way twice.
The basis of his work over the past thirty years is that there is something morally wrong with modern architecture. He believes that truly great architecture should be living and should be able to balance individual, group, societal, and ecological needs. It should be aesthetically pleasing and give joy to the viewer. His books explore how beauty is brought into the world and focuses on how true beauty in built forms is an unfolding of the whole and an extension of the basic patterns of nature.
In a speech to software developers, Alexander stated that he had lost hope of modern architects ever regaining the ability to capture this essence in current architecture and as we lose this ability we lose parts of ourselves. All is not lost though, as he sees software development as a means of reshaping the world. Software touches all facets of our lives just as much as architecture and just as the horse and buggy gave way to the Fords of the world, it may now be up to software engineers to carry this torch and design software that can extend these principles restoring our humanity.
Alexander describes three basic components of his philosophy the quality, the gate, and the way:
The Quality (a.k.a. “the Quality Without a Name”):
“This is the essence of all things living and useful that imparts unto them qualities such as: freedom, wholeness, completeness, comfort, harmony, habitability, durability, openness, resilience, variability, and adaptability. It is what makes us feel “alive” and “sated”, gives us satisfaction, and ultimately improves the human condition.”
The Gate
“This is the mechanism that allows us to reach the quality. It is manifested as a living common pattern language that permits us to create multiform designs which fulfill multifaceted needs. It is the universal “ether” of patterns and their relationships that permeate a given domain. The gate is the conduit to the quality.”
The Way (a.k.a. “the Timeless Way”)
Using the way, patterns from the gate are applied using a technique of differentiating space in an ordered sequence of piecemeal growth: progressively evolving an initial architecture, which then flourishes into a “live” design possessing the quality.
He likens it to “a process of unfolding, like the evolution of an embryo, in which the whole precedes its parts, and actually gives birth to them, by splitting.”
In software development, design patterns act as templates to solve reoccurring problems. One should be careful however not to use a pattern just for the sake of using a pattern and creating problems just to be able to fit into a pattern. They are used to solve problems where there is no obvious solution.
Software design patterns are typically grouped into creational patterns, structural patterns, behavioral and architectural patterns. A commonly used J2EE design pattern is the Observer or publish subscribe pattern where by a one-to-many dependency is defined between objects so that when one object changes state, all its dependents are notified and updated automatically.
One thing to take away from the works of Christopher Alexander is that software, just like his great architectural buildings should be designed to be pleasing and not frustrating to the user. More thought should be given to the users interaction with the software and their enjoyment of the experience and maybe then we may all enjoy the Zen like bliss that the professor has worked so hard to give to the world.
For more information on Christopher Alexander please visit the following links I used as research for this post:
http://www.patternlanguage.com/archive/ieee/ieeetext.htm
http://www.cmcrossroads.com/bradapp/docs/patterns-intro.html
http://g.oswego.edu/dl/ca/ca/ca.html
http://www.tricycle.com/interview/nature-unfolding?page=0,0
http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29
Trackbacks /
Pingbacks