"If I build a fireplace for myself, it is natural for me to make a place to put the wood, a corner to sit in, a mantle wide enough to put things on, an opening which lets the fire draw.
But, if I design fireplaces for other people - not for myself - then I never have to build a fire in the fireplaces I design. Gradually, my ideas become more and more influenced by style, and shape, and crazy notions - my feeling for the simple business of making fire leaves the fireplace all together."
Also on Archive.org is Alexander's A Pattern Language [1]. Although that book is also about the architecture of buildings, it inspired the idea of software design patterns [2].
A Pattern Language is a gorgeous book. We are currently redesigning our home, and this is worth its weight in gold.
I always had the notion though, the software pattern way was a misinterpretation of Alexanders ideas. Alexander doesn't stop to emphasize that a pattern can (and should) have an uncountable number of slightly different implementations, as the special situation requests. He is outspokenly against reusing an implementation without adequate modification for the situation in architectural applications.
I always understood the highest goal in software engineering is to write code that can be reused without modification. I never could agree that this is a good idea for the users of software. It is only more economical to build. Just what Alexander defines as the most evil thing ever, because in architecture this leads to faceless homes.
The idea to reuse implementations of patterns is one that in another context delivers us cars that are more or less all VW Golf (Rabbit) underneath.
It also influenced Steward Brand's HOW BUILDINGS LEARN: What Happens After They’re Built. The BBC's adaptation includes some interview with Alexander [1].
An excellent book that I'd highly recommend. I have a copy on a bookshelf not far from where I'm sat, and your mention of it has prompted me to pull it out to dip-into later. Thanks!
And Stewart Brand is one of my intellectual heroes.
My understanding is that both books influenced software design patterns (and the wikipedia article is unclear on that). This book is really a continuation of the ideas in A Pattern Language.
To all the Christopher Alexander recommendations I'll add Notes on the Synthesis of Form. It's his best book in my not-so-humble opinion, and it's been under-rated ever since Richard Gabriel called it 'juvenalia': https://www.dreamsongs.com/Essays.html
Gabriel misspelt "juvenilia", but it's an odd criticism anyway, since Alexander seems to have got progressively more cranky and messianic as he got older. He is a complete outsider in the architecture world, which is actually quite tolerant of small-scale, community-based building (see Walter Segal)
ATWoB is more philosophical, and lest about specific implementation.
APL includes nuggets along these lines:
"Therefore: Make a public square much smaller than you would at first imagine; usually no more than 45 to 60 feet across, never more than 70 feet across. This applies only to its width in the short direction. In the long direction it can certainly be longer."
"When they have a choice, people will always gravitate to those rooms which have light on two sides, and leave the rooms which are lit only from one side unused and empty.[...]Therefore: Locate each room so that it has outdoor space outside it on at least two sides, and then place windows in these outdoor walls so that natural light falls into every room from more than one direction."
There are 253 patterns in the book, covering governed regions down to building wall details.
Most of the patterns are based on common sense and practical experience. What's novel is that they're written down and cross-referenced.
I find myself frequently nodding my head in agreement while reading - it's immensely satisfying to see ideas in concrete form that have been floating about in my head for years.
For those who are unclear on the significance of this, Christopher Alexander’s works were foundational to the pattern movement in software architecture & design.
There are some links on Ward Cunningham’s software patterns wiki:
But, if I design fireplaces for other people - not for myself - then I never have to build a fire in the fireplaces I design. Gradually, my ideas become more and more influenced by style, and shape, and crazy notions - my feeling for the simple business of making fire leaves the fireplace all together."