Christopher Alexander – Patterns in Architecture (1996) [video]
youtube.com
youtube.com
Hofstadter gives you an intuition about complexity and formal hardness of problems. Alexander provides intuition about a kind of quality of reasoning, where from Bejan there is a sense of quality of relational change.
Reading Christopher Alexander is weirdly meditative and good for a technologists soul. I'm always happy to see him rediscovered.
When I was a student, my free time was spent in dusty corners of university libraries digging up old, forgotten books. I found many gems this way (including the venerable TAOCP. I only realized how famous it is after reading the Wikipedia page).
Although he seems to be most famous for the "Pattern Language" book, my introduction to his work was during my visit to the university's architecture library, from a slim volume entitled "Notes on the synthesis of form". It really highlights the magnitude of the task facing the modern architect/designer/developer. The first half of the book details how for most of history, design has not been a conscious process but rather an emergent property arising through a selection process (basically evolution). The alternative, discussed in the second half of the book, is for a human to sit down and think through the requirements and design almost de novo - this is extremely challenging due to the number of interacting variables.
Reading this book gave me a much better appreciation and respect for evolved techniques (eg. traditional methods of building, farming, etc; even social norms and traditions), and gave me valuable thoughts on when an evolutionary approach would work better vs a design approach (similar to Linux's explicit evolution vs OpenBSD's considered design).
Tons of small, progressive, human-centered hand-drawn architecture patterns in a hard-bound brick of bible-thin pages.
The book inspired code patterns that you hear about all the time in engineering, and is a lovely way to think about better cities and homes.
[1] https://www.amazon.com/Timeless-Way-Building-Christopher-Ale...
> Alexander proposes a meta-plan. [...] The meta-plan has three parts:
> • A philosophy of piecemeal growth
> • A set of patterns or shared design principles governing growth
> • Local control of design by those who will occupy the space
I love the third part. Alexander argues that people who will inhabit a space (e.g. a home, a workplace, a town) should have the opportunity to participate in and shape the design and construction process.This perspective is incredibly humane. Clearly it could be applied to software, as well as to buildings and town-planning. Do users of the software find themselves on the receiving end of some opaque automated bureaucratic system that was designed / built by some class of experts and then "thrown over the fence"? Or instead can users participate in the design and construction of the software, and make incremental changes to "sand away the rough edges" over time so it better fits their needs?
It is a shame that the philosophy from "The Timeless Way of Building" did not take off in software engineering, whereas instead Alexander's more formal "design pattern" approach took off and gave us e.g. the Gang of Four's Design Patterns book.
That said, the "design patterns" approach of attempting to formally frame and document patterns is helpful, even if some of the design patterns historically identified in the realm of software are not good ideas or arguably programming language defects. Some of the time in software projects there can be a tendency to get excited about adopting a pattern from another company or project, without first understanding what context that pattern arose in, and what problem it was trying to solve, and if the context and problem apply in the current setting. So I'd argue that the methodology of thinking about patterns in software engineering is a good practice, although cargo-cult application or execution from a given book of patterns is not necessarily helpful.
"The Timeless Way of Building" is a beautiful book, in terms of ideas, writing, and photography. Here's an excerpt of the italicised lines from Chapter 2:
> THE QUALITY WITHOUT A NAME
> There is a central quality which is the root
> criterion of life and spirit in a man, a town,
> a building, or a wilderness. This quality is
> objective and precise, but it cannot be named.
> The word which we most often use to talk about
> the quality without a name is the word "alive".
> But the very beauty of the word "alive" is
> just its weakness.
> Another word which we often use to talk about
> the quality without a name is "whole".
> But the word "whole" is too enclosed.
> Another facet of the quality which has no name
> is caught by the word "comfortable".
> Yet the word "comfortable" is easy to misuse,
> and has too many other meanings.
> A word which overcomes the lack of openness in
> the words "whole" and "comfortable", is the
> word "free".
> And yet, of course, this freedom can be too
> theatrical: a pose, a form, a manner.
> A word which helps restore the balance is the
> word "exact".
> And, yet, of course, the word "exact" does not
> define it properly.
> A word which goes much deeper than the word
> "exact" is "egoless".
> And yet, although the old bench and its carving
> may be egoless, this word is also not quite right.
> A last word which can help to catch the quality
> without a name is the word "eternal".
> I once saw a simple fish pond in a Japanese
> village which was perhaps eternal.
> And yet, like all the other words, this word
> confuses more than it explains.
> And so you see, in spite of every effort to
> give this quality a name, there is no single
> name which captures it.
> It is not only simple beauty of form and color.
> Man can make that without making nature. It is
> not only fitness to purpose. Man can make that
> too, without making nature. And it is not only
> the spiritual quality of beautiful music or of
> a quiet mosque, that comes from faith. Man can
> make that too, without making nature.
> The quality which has no name includes these
> simpler sweeter qualities. But it is so
> ordinary as well, that it somehow reminds us of
> the passing of our life.
> It is a slightly bitter quality.
[1] https://archive.org/stream/Peopleware3rdEdition/Peopleware%2...[0] http://www.patternlanguage.com/archive/moshav-shorashim.html
https://www.amazon.com/Battle-Life-Beauty-Earth-World-System...
Book 1: The Phenomenon of Life (2002)
Book 2: The Process of Creating Life (2002)
Book 3: A Vision of a Living World (2005)
Book 4: The Luminous Ground (2004)
Does anyone remember which book and chapter it was in?
GTFA gives me this link on kitchens by Christoper Alexander:
https://www.thekitchn.com/christopher-ale-164084
Although this isn't what I was after
— Christopher Alexander et al., A Pattern Language
So true, and it applies to software development as well.
Amazon: https://amzn.to/2u5HBHY Free here: https://skilesare.github.io/immortality/ Shortcut to the pattern language: https://skilesare.github.io/immortality/the_pattern_language...
I'd also highly recommend Thriving Systems Theory and Metaphor-Driven Modeling by Leslie J. Waguespack that is based on his ideas in Nature of Order.