HackerNews Readings
40,000 HackerNews book recommendations identified using NLP and deep learning

Scroll down for comments...

The Soul of A New Machine

Tracy Kidder

4.6 on Amazon

177 HN comments

A Pattern Language: Towns, Buildings, Construction (Center for Environmental Structure Series)

Christopher Alexander , Sara Ishikawa , et al.

4.7 on Amazon

176 HN comments

Meditations: A New Translation

Marcus Aurelius and Gregory Hays

4.8 on Amazon

172 HN comments

The Innovator's Dilemma: When New Technologies Cause Great Firms to Fail

Clayton M. Christensen, L.J. Ganser, et al.

4.5 on Amazon

168 HN comments

The Millionaire Next Door: The Surprising Secrets of America's Wealthy

Thomas J. Stanley and William D. Danko

4.6 on Amazon

166 HN comments

Infinite Jest: Part I With a Foreword by Dave Eggers

Sean Pratt, David Foster Wallace, et al.

4.3 on Amazon

166 HN comments

The Elements of Style: Annotated Edition

William Strunk Jr. and James McGill

4.7 on Amazon

155 HN comments

Outliers: The Story of Success

Malcolm Gladwell

4.7 on Amazon

152 HN comments

A Guide to the Good Life: The Ancient Art of Stoic Joy

William B. Irvine

4.6 on Amazon

151 HN comments

Amusing Ourselves to Death: Public Discourse in the Age of Show Business

Neil Postman and Andrew Postman

4.6 on Amazon

151 HN comments

Stranger in a Strange Land

Robert A. Heinlein, Christopher Hurt, et al.

4.4 on Amazon

151 HN comments

Antifragile: Things That Gain from Disorder

Nassim Nicholas Taleb, Joe Ochman, et al.

4.5 on Amazon

150 HN comments

The Power of Habit: Why We Do What We Do in Life and Business

Charles Duhigg, Mike Chamberlain, et al.

4.6 on Amazon

149 HN comments

The Righteous Mind: Why Good People Are Divided by Politics and Religion

Jonathan Haidt and Gildan Media, LLC

4.6 on Amazon

144 HN comments

Getting to Yes: Negotiating Agreement Without Giving In

Roger Fisher , William L. Ury, et al.

4.6 on Amazon

143 HN comments

Prev Page 3/180 Next
Sorted by relevance

mandelbrotwurstonJune 10, 2021

The introduction to the book agrees with you and warns about that - it specifically mentions that it is just one possible pattern language, which is why the title is “A Pattern Language” and not “The Pattern Language”

germinalphraseonAug 5, 2020

I’m neither an architect nor a software engineer, but every six months or so I flip through A Pattern Language just to help imagine buildings I’ve never been in. It’s a beautiful book.

pjmorrisonJuly 21, 2020

The article's author mentions Alexanders 'Timeless Way of Building', the first book in the series of which 'A Pattern Language' is a part. I agree, it's a wonderful book.

drumttocs8onDec 10, 2018

A Pattern Language is required reading. Ever since reading it I've dreamed of making some kind of rule-based generative architecture program- where a building is created according to selected patterns.

jsilenceonFeb 11, 2017

The book "A pattern language" by Christopher Alexander might give some good ideas to achieve this.

rifficonApr 5, 2017

References to A Pattern Language are always refreshing to see.

crabmusketonJune 16, 2020

A Pattern Language is a fascinating read, and an online copy can be found using DuckDuckGo if you persist.

It's interesting both from an architectural/societal point of view, as well as providing a great example of a wiki-like organisation of ideas and patterns that build on and enhance each other.

audionerdonNov 23, 2009

I had heard this idea attributed to Christopher Alexander, from either "A Pattern Language" or "The Oregon Experiment". Possibly it originated from the University of Oregon?

Regardless of the original source, this is a great explanation of the concept..

schiffernonMar 24, 2016

If you haven't, I highly recommend A Pattern Language. It's full of fascinating insights into the ways functional design interacts with our lives (and perhaps moreso, how dysfunctional design impedes it).


pgonApr 5, 2008

I read (parts of) A Pattern Language. That seemed like it had a lot of good ideas in it.

munificentonApr 10, 2014

Oh god, how did I omit that? A Pattern Language is seriously one of my all time favorite books.

Filed a bug: https://github.com/munificent/game-programming-patterns/issu...

karlelloonFeb 5, 2019

A Pattern Language, Christopher Alexander.
This is the original "pattern" book. About architecture and living spaces and exactly what makes a good place to be in so good.

malandrewonNov 8, 2010

I read somewhere that this apparently is also one of the patterns in the book A Pattern Language by Christopher Alexander. I don't own a copy yet so I can't confirm this.

germinalphraseonFeb 6, 2017

That's a great suggestion. I flipped through A Pattern Language a few years ago and found it fascinating.

rifficonSep 26, 2012

"There is abundant evidence to show that high buildings make people crazy." - Christopher Alexander, A Pattern Language.

gluponJan 9, 2017

I'm reading "A Pattern Language" right now and it's pretty revelatory. It certainly suggests that structural properties of natural languages are prevalent throughout culturally-transmitted behaviors

ojbyrneonDec 2, 2009

I really enjoyed "A Pattern Language, " even though it wasn't relevant to my life other than its influence on the Design Patterns people.

pmdulaneyonApr 10, 2021

Alexander's A Pattern Language is MUCH more accessible and enjoyable in my view.

beatonJune 2, 2014

Every software developer in the world should read Christopher Alexander's A Pattern Language, and learn the relevance of the appearance of security versus actual security. A lock is only as strong as its context. Better lock? Did you upgrade the door frame as well?

praptakonMar 8, 2009

"What physical features make space work?" is a very interesting question indeed. It is at the core of research by Christopher Alexander, especially "A Pattern Language" - the book that inspired the pattern movement in software design.

elihuonAug 11, 2021

I haven't read those, but I'll add a third book recommendation: A Pattern Language by Christopher Alexander et al. It changed my way of thinking quite a bit about what makes a good house, or a good town.

LaRoachonJan 25, 2019

Is it me or does New Urbanism sound an awful lot like the ideas in A Pattern Language? It's been a long time since I read the book but this feels less "new" and more like "finally". :)

scarmigonFeb 14, 2012

Interestingly, "A Pattern Language" directly inspired the GoF book.

It has similar flaws, as well. It should be considered descriptive, not prescriptive--and Christopher Alexander is not nearly as careful around that distinction as the GoF.

gumbyonFeb 20, 2015

They should all be sent a copy of "A Pattern Language". In one of the most memorable patterns, Christopher Alexander writes (paraphrased), "Find the most lovely location on your plot of land. Then make sure you don't build on it! Instead build elsewhere so you can continue to enjoy that lovely location."

spthornonDec 3, 2009

A Pattern Language presents a compelling way of thinking about "place". It clarifies what so many have longed for in the way of community, and shows clearly what's wrong and what to change to fix it. I highly recommend it for everyone!

a3nonSep 7, 2019


Highly recommend Alexander's "A Pattern Language." I just did an insanely massive purge, and this is one of the few books I kept.



nkorenonMar 27, 2015

"Gödel, Escher, Bach" was near the top of my reading list as a 14-year-old. "A Pattern Language" was another. Also: "The City and the Stars".

germinalphraseonFeb 9, 2015

I'm more familiar with CA's "A Pattern Language" and would liek to dig a little further. Anyone know of an additional resource?

shoveonAug 28, 2018

Concrete structures are cool, but there are lots of issues. Insulation, water vapor / condensation, potential chemical reaction with other materials, difficulty of future modification ...

Get a copy of A Pattern Language by Christopher Alexander

HuhuhonApr 20, 2016

I really enjoyed the book 'A Pattern Language' by Christopher Alexander. It looks at architecture from the level of the ordinary person and has some brilliant insight into what makes a building pleasant to live in. I applied some ideas from the book when I renovated my house and it has been a huge success.

rifficonMar 9, 2013

On the other hand, it has been argued that skyscrapers can be detrimental. In A Pattern Language it's stated that "There is abundant evidence to show that high buildings make people crazy", and it goes further to propose a pattern of a four-story limit for dense urban areas.

elihuonJune 8, 2021

It's not important, but I wondered if the title was an allusion to one of the patterns in Christopher Alexander's "A Pattern Language" titled "A room of one's own", about the necessity in designing houses to give everyone some bit of space that's distinctly theirs. The theme seems kind of similar, and PG makes a lot of architectural references in the essay.

In googling for "A room of one's own", though, I discovered that it's also the title of an essay by Virginia Wolfe written in 1929. It's possible that might possibly have inspired the name of the pattern in Christopher Alexander's book.

harryloveonFeb 15, 2012

And I would add, regarding Alexander, at least, start with his most recent series on The Nature of Order. Then, if you want more, go back and read The Timeless Way of Building, followed by A Pattern Language. But really, his most recent stuff is the most compelling, and the most profound.

frikonOct 26, 2014

Very good video. Btw. the video is from 1979 (see credits), not 1988 (archive.org title).

Do urban architects know about this video and the A Pattern Language book? Has the school of thought changed in recent years? Has the introduction of CAD tools changed/simplified the architecture style?

brudgersonApr 28, 2021

Oh hell, you’ve got Chris Alexander’s shotcrete spayed on chicken wire all the way back in the 1960’s...it’s the methodology of A Pattern Language and the book has pictures.

The difference is that Alexander’s method was rooted in self-sufficiency. Do-it-yourself without an architect or contractor.

beatonJune 2, 2014

If you liked A Pattern Language, I also recommend How Buildings Learn, by Stewart Brand. I read both of those books during a few months of unemployment suffered in the old dotcom crash of 2001, and they completely changed my way of thinking about software. I recommend them to all programmers.

tptacekonMay 8, 2016

If you like both the content and the tone of this post, you'll probably also like Christopher Alexander's _A Timeless Way Of Building_ and _A Pattern Language_, which has a similar tone and topic, but with a broader sweep.

whitepoplaronJune 28, 2018

For anyone who wants to see a pragmatic way to build cities and communities, I'd highly recommend Christopher Alexander's A Pattern Language. https://www.amazon.com/Pattern-Language-Buildings-Constructi...

mbrubeckonDec 2, 2009

I'd also recommend The Timeless Way of Building, which provides the overview of Alexander's method (of which A Pattern Language is just one piece). I once wrote a review of The Timeless Way from a programmer's perspective: http://advogato.org/person/mbrubeck/diary/106.html

(The Oregon Experiment, which I mention in that link, might also be of interest to programmers inside huge organizations.)

abdullahkhalidsonFeb 7, 2021

Thanks. A Pattern Language is on my reading list. But I agree that in different times, cultures and legal regimes the feedback loop might have been much stronger. We should learn from those places.

elihuonSep 15, 2017

The article seemed like kind of a fluff piece reminiscent of the articles people used to write about flying cars, robot maids, videophones, etc.., but for anyone who's interested in this kind of thing, I'd recommend A Pattern Language by Christopher Alexander. It was written 40 years ago, but the ideas are still relevant, I think.

cafardonApr 16, 2020

There is a statement very like this, about construction workers--masons or carpenters--in Christopher Alexander's A Pattern Language.

natchonJuly 9, 2018

YES! Fantastic book and such enjoyable reading. And I love the built-in lifehack it suggests for reading just certain passages and type styles if you are in a hurry, then diving deeper on the sections you need to. I have both books and would find it hard to choose just one. A Pattern Language is more famous but this one is a really good complement to it.

viburnumonNov 15, 2020

In “A Pattern Language” Alexander says people almost never use balconies unless they’re at least six feet deep.

poulsbohemianonJune 17, 2018

It really helps to read both A Pattern Language and The Timeless Way of Building together, so you get a complete picture of Alexander's thoughts.

jrochkind1onMar 15, 2014

The books.google URL I link to above is a google books scan of the page from A Pattern Language, you can read it right there!

Or if for some reason you are in a location gbs won't deliver to or otherwise it's unavailable to you, yeah, #20.

vanderZwanonJuly 25, 2021

> But after two days wandering the streets and talking to residents who have forked out big money to be guinea pigs in this experiment, it’s clear Poundbury’s strengths far outweigh its weaknesses.

I'm sure the area being pre-gentrified has nothing to do with the opinions of the locals whatsoever. Cynicism aside, I do empathize with Prince Charles view on brutalist architecture here.

(But what do I know? The only books on architecture I ever read were Christopher Alexander's The Timeless Way Of Building and A Pattern Language, and only because I heard they somehow were influential on software development)

tatterdemaliononOct 26, 2014

This is a wonderful video! Thankyou.

A lot of the comments remind me of patterns from A Pattern Language by Christopher Alexander. I'm sure many people on HN know this book from the preface to Design Patterns, but if you've never flipped through it you really should - any single pattern contains a great deal of insight into how we live in the world.

mbrockonAug 11, 2017

Interesting connection for people interested in design patterns:

> At the University of Oregon campus, outrage and vocal distaste for Brutalism led, in part, to the hiring of Christopher Alexander and the initiation of The Oregon Experiment in the late 1970s. This led to the development of Alexander's A Pattern Language and The Timeless Way of Building.

mhomdeonMar 15, 2015

"A Pattern language" is such a great book, its' a shame its kinda forgotten by many these days. Whenever I talk to an architect I ask them if they've read it and I've yet to get a "yes".

Anyways, highly recommended, if nothing else to get insight in human patterns regarding living spaces and communities

dansoonJan 15, 2013

This isn't about programming related design, but "A Pattern Language" is a classic, with architectural and urban design principles that apply in many other domains:

oh_sighonMar 13, 2014

Do you happen to remember the number of this pattern in the book? I read A Pattern Language by flipping to random pages, and following various trails of references, but I don't think I've come across this one yet...

brensmithonJune 1, 2018

"A Pattern Language" by Christopher Alexander. Helped me to understand the language of architecture. What works and why, and what doesn't work and why. To this day I can still pick up this book, turn to a random page and get lost for hours in it. https://en.wikipedia.org/wiki/A_Pattern_Language

thebaeronApr 6, 2019

Yes, it's especially important when these games are used to educate students. Recently came across this [0] very informative talk that discusses some of the same things.

On another note, I'm really excited to see that A Pattern Language was an inspiration for this sim. That seems like a great start!

[0] http://molleindustria.org/GamesForCities/

tintinonFeb 1, 2012

Reminds me of Christopher Alexander's book 'A Pattern Language' where he explains exactly this.

I even think the programmers of 'The Sims' and others used it.
Sometimes it's also called Object-Oriented Design.

mfschonAug 5, 2020

Related: There was a recent discussion on HN [1] of an article in which someone described their process for designing a new home, and the author recommended “The Timeless Way of Building” by Christopher Alexander as one of their inspirations. I’ve since started reading the book and found it very inspiring so far. I haven’t read “A Pattern Language” yet, but my impression is that “The Timeless Way” is focusing a bit more on the “why” rather than the “how”.

[1]: https://news.ycombinator.com/item?id=23881363

recurrieonApr 18, 2014

If you optimize for cars, you get cities optimized for cars.

Funny that it was a American (Christopher Alexander)who write the most concise recipe for getting this right in "A Pattern Language." Pattern 88, Street Café.



ojbyrneonSep 3, 2015

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.

gdubsonJune 16, 2020

This is one of my all time favorite books. It’s actually had a significant influence on a wide variety of fields. I’ve heard it said that Object Oriented Programming was inspired by Alexander’s book. He gave a talk in ‘96 on what he thought software had gotten right, and gotten wrong, about A Pattern Language:


ryanisnanonApr 24, 2020

A very good pattern book that I've found to be incredibly well written is Robert Nystrom's Game Programming Patterns. I'm a huge pattern advocate, and have consulted the Gang of four pattern book many times, as well as Christopher Alexanders' A Pattern Language. Still, Nystrom presents some new patterns with very concrete examples. Even though they are presented within the domain of game development, with a little creativity their utility can be imagined elsewhere.

dwenzekonMar 7, 2021

> How can you distribute responsibility for design through all levels of a large hierarchy, while still maintaining consistency and harmony of overall design?

This how the author summaries the intent of Christopher Alexander's work. I have not read "A Pattern Language" so it's difficult to say if this is accurate or not. However this is such an important issue in software engineering that I would welcome any ideas to reduce the problem.

I agree when the author that the GoF addressed a lower level problem. However, I'm also disappointed by these slides that provide not hints for a better high-level approach. The GoF patterns form a language for developers speaking to developpers. We also need a language across roles.

microtheriononMay 22, 2018

"Getting to Yes" and "Getting Past No".

"A Pattern Language" by Christopher Alexander.

"The No Asshole Rule".

"How to Lie with Statistics".

downerendingonJune 21, 2020

Christopher Alexander's A Pattern Language is not only a great book on architecture, but one of the best books on any subject I've ever read. Highly recommended.

That said, once you've read it, you will forever find the flaming garbage dump that is contemporary architecture severely wanting. These days, and architect could almost be summarized as someone who designs buildings and hates people.

bengebreonDec 2, 2009

I second the recommendation. A Pattern Language outlined a lot of the actual patterns (which was neat), but Notes on the Synthesis of Form did a better job of illuminating a broad conceptual foundation for designing systems. I think I need to re-read it now that you mention it.

13renonOct 5, 2008

Embodied in the books "A Pattern Language" and "The Oregon Experiment", pattern theory inspired many, but also failed to consistently lead to beautiful buildings. [...] Although most of his buildings have effectively supported his theories, Alexander has mainly influenced the architectural profession through his writings and teaching rather than through his completed buildings.

It may be that he's a brilliant/inspiring communicator and a competent practitioner. Others like this (to my mind) are Douglas R Hofstadner and David Flanagan. We need inspiring writers; it's a good thing.

iramilleronJuly 21, 2020

In all this discussion of the art of design in old houses I am surprised to see no one has mentioned “A Pattern Language” [1] yet. This is truly a must read book for anyone considering the design and building of their own house.

Interesting topics such as the design of a front door viewed from a street have stuck with me and is something I reflect on when walking through an old neighborhood. Infallibly the most appealing houses match up well to the principals outlined in the book.

[1] https://en.wikipedia.org/wiki/A_Pattern_Language

elihuonApr 28, 2021

> If you were an architect with those kinds of clients you would have a list of potential builders with track records of successfully completing similar work.

My point is that you don't have to have this knowledge, and you don't have to hire expert craftspeople and pay them expert wages if you can have a machine do the difficult work.

> And most importantly you would know that right angles are almost always the right answer...

Not necessarily. Box-shaped rooms work nicely, but the most important thing is to not have acute angles between walls. (IIRC Christopher Alexander goes into this in A Pattern Language in defense of right-angle walls, but for some reason neglects to consider rooms with more than 4 sides as an option.) Greater than 90 degrees is fine as long as it doesn't present a problem for the intended use (i.e. client expects furniture to fit at right angles). Also, if you're printing a whole house you can design benches, shelves, desks, and so forth into the design. Or maybe contract out to some service that will make the furniture based on a 3D model.

A big part of why walls are straight and meet at right angles is that building materials are generally straight and expect to be joined at right angles. Anything else turns into a complicated geometry problem that takes a lot longer to build. With a 3D printer, though, that's not a limitation. It doesn't matter how simple or complicated a design is, it takes about the same amount of time to print and uses about the same amount of material. The main constraints then just become what's strongest, nicest-looking, and most functional. Most people will probably prefer box-shaped rooms, but the point is that they'll have options if a box-shaped room isn't optimal.

One could imagine if house-design software becomes sufficiently advanced, you could dispense with the architect as well. Someone who wants a house could just log onto a website, identify the site where the house is to be built, and specify a bunch of constraints and preferences, and then the backend software generates a bunch of house plans. The customer choses the one they like and pay the money, then a building permit is applied for and a printing machine and work crew show up on site and assemble a house that's unique and exactly suited to its site.

hcarvalhoalvesonMar 8, 2021

I have read
Christopher Alexander’s bibliography and also had this impression that software people got it “wrong“. The patterns on GoF aren’t really at the same level - an “Iterator” is too low-level and not at all the level at which you would be discussing architecture with the end-users, which is the point of C.A. They focused on pattern “reuse” because that’s what the industry and OOP obsessed about - in the end reuse happens at package-level, so the industry missed the mark.

In fact, it surprises me the focus on “A Pattern Language” at all when the “Notes on the Synthesis of Form” is a much relevant book on the topic of gathering requirements, prototyping and designing solutions.

Anyway, I recommend going straight to the source and reading Christopher Alexander’s work as it’s very relevant for anyone designing solutions of any form.

schlagetownonSep 2, 2017

Mindstorms, by Seymour Papert - for understanding the relationship of learning and technology; a smart, humanist, empathetic approach to education
[See also: The Children's Machine; Deschooling Society]

Clock of the Long Now, by Stewart Brand - for the concepts of deep time and the long now; appreciating a sense of how we experience time and our place in history
[See also: Time and the Art of Living]

Flatland, by Edwin A. Abbott - creative parable that's very helpful for conceptualizing abstract concepts of topology and higher dimensions

Thinking in Systems, A Primer, by Donella Meadows - great introduction to systems thinking, which is a useful lens for appreciating the complexity of all sorts of complex phenomena

A Pattern Language, by Christopher Alexander - great work of urban design, useful framework for looking at design systems and how pieces fit together on different scales
[See also: Death and Life of Great American Cities]

Oulipo - A Primer of Potential Literature - nice introduction to the Oulipo and ideas of constraint as creative / poetic device
[See also: Exercises in Style; Eunoia]

Impro, by Keith Johnstone - great primer on improvisation, really made me appreciate its impacts beyond just the theater, for example the importance of status in social relations

The Power Broker, by Robert Caro - unbeatably rich and compelling look at how power and politics actually work, for better (power gets things done) and for worse (power blinds and corrupts)

Pilgrim at Tinker Creek, by Annie Dillard - beautiful, meticulously observed study of the natural world close at hand; made me appreciate the power of looking deeply and persistently

Le Ton beau de Marot, by Douglas Hofstadter - remarkable exploration of language and translation, in all its magic and complexity…both deeply personal and deeply researched, a must-read for lovers of language

The Library at Night, by Alberto Manguel - turned me on to the various lenses through which we can conceive of and appreciate libraries; their vast power and potential

Moby Dick, by Herman Melville - for really hammering home the grand, powerful potential of great literature and well-wrought language
[ See also: Don Quixote; Infinite Jest]

elihuonNov 1, 2016

It's worth mentioning that "A Pattern Language" is just that, it's a language of about 250 patterns that can be applied to urban design, building layout, and construction. If you want to know more about design patterns and how and why Alexander came up with the patterns described in "A Pattern Language" in the first place (which is helpful if you want to create a pattern language of your own to address the needs of a different field), you might be interested in "A Timeless Way of Building".

(I would recommend reading or skimming through "A Pattern Language" first, to get a good idea of what Alexander's idea of a well-formed pattern is. It's also a really interesting book in its own right, especially if you have any interest in architecture.)

shooonNov 18, 2015

ah damn, I've already bought two Christopher Alexander books ("The Timeless Way of Building"[1] and "A Pattern Language"), and now I'm going to have to get another one. That sounds great.

[1] - well worth a read. Did you know there was a terribly humane philosophy behind the original design patterns work? This was beautifully described in Peopleware as "Local control of design by those who will occupy the space". E.g. - Alexander advocates for the people who are going to live in and work in the buildings be intimately involved in both the design and the construction of the buildings. Not only does he advocate for this, he explains ways of doing this in practice. This philosophy could be ported to software -- let the users of software systems be involved in the design and construction of the systems. That sounds like far more of an ambitious and genuinely positive idea than the old "visitor pattern" / "singleton [anti]pattern" stuff that springs to mind when one has been subjected to the computer-science-education version of design patterns.

ljw1001onNov 27, 2016

TLDR: Get educated. Get Angry. Get Inspired. Take the time to read a great book.

It's ironic that people are arguing that books are a waste of time - on HN.

There are certainly too many one-idea books, but there are also many extraordinary, irreplicable works: A Pattern Language, Thinking Fast and Slow, The Landscape of History, The Modern Firm, The Diffusion of Innovations, Bowling Alone, The Life You Can Save, And the Band Played On, and on and on.

raihansaputraonJune 10, 2021

I feel like A Pattern Language is overrated standing on it's own. Too much people are extrapolating based on this book only instead of diving deeper into Christopher Alexander's other works. The patterns becomes a small thing in the mindset of working from a whole, piece by piece, and iterating with real world feedback instead of planning everything to the minute detail.

mironathetinonSep 4, 2015

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.

elemenoonMay 31, 2013

GoF is, in my opinion, about establishing a language to talk about commonly used constructs in languages - especially given it's providence in Christopher Alexander's A Pattern Language.

Referring to it as 'a set of tricks' would suggest to me that you've only given it a cursory glance and assumed that it's just about copying out example blocks of code, or that you've not worked in a wide enough set of languages to realize that every language has commonly used patterns for doing particular things, no matter how expressive the language is. Having a way to discuss the architecture of a piece of software without having to explain every implementation detail because there's already a shorthand refer to various parts of it is invaluable when working on larger projects. Being able to call a block of code as a flywheel is no more a trick than being able to refer to an options pricing equation as a 'modified black-scholes' - the important part is that other person knows from that what you're talking about and so you can get to the important part of the conversation.

AnthonyNagidonJuly 13, 2016

Architect Christpher Alexander has developed a beautiful theory that is absolutely applicable to this topic (dare I say, second to none?) in his work 'A Pattern Language' and especially in his 'The Nature of Order' series. It's painful to think how little attention his work seems to get when you think of what could come from further exploration of the ground work he has laid in regards to understanding and creating meaning, that which comes from the heart and life preserving / nurturing processes.

design-of-homesonJune 24, 2014

"This video is pretty disingenuous in my opinion...

This was my thought too. This quote by architect Christopher Alexander from his book A Pattern Language" feels very relevant:

"…face-to-face rental, with the owners occupying the main structure is the one kind of rental relationship that is reasonably healthy. The landlord is actually there, so he is directly concerned with the well-being of the life around him and with the environment, unlike the absentee landlords who own property only for the money which it makes."

In the UK, we have huge numbers of buy-to-let landlords. They are the worst type of abstentee landlord. I see AirBnB operating in the same space.

People like having familiar neighbours, not neighbours who come and go contantly, and who have no commitment, concern or care for their neighbourhood; or for their immediate neighbours. Do these things matter to absentee landlords? For most of them (especially in the UK), absolutely not.

Housing has a social factor that cannot be ignored. In fact, it isn't ignored in countless countries who place restrictions on renting property for the very reasons above.

gravity13onJan 12, 2016

There's a really interesting book called [A Pattern Language](https://en.wikipedia.org/wiki/A_Pattern_Language) that goes into this.

They attribute tall buildings with insanity, as denizens begin losing scope of their world simply by virtue of not being able to see beyond buildings.

Another thing to note is that "Centers of Culture" are beginning to become more amorphous, as tech gentrification is whitewashing a lot of what gave San Francisco its identity. The Mission is probably the most glaring example of transformation, for better or worse.

openfutureonMay 3, 2020

I love Cristopher Alexander, the nature of order and his other books are like they are sent from the future. However 'A Pattern Language' is a nice way to say 'Algebra' and I don't think that he would disagree that he is just passing on a translation of something he was taught himself.

The narrative 'Father of..' feels too pedestal-y for such a humble man.

tsulonDec 1, 2017

If we’re going to talk “timeless” I might recommend a read through Chris Alexander’s “A Timeless Way of Building” and its follow-up, “A Pattern Language”.

Alexander talks about the timelessness and beauty of buildings in terms of culturally-defined patterns—almost ‘design patterns’ but a bit more abstract—that are applied and repeated to create buildings and spaces that evoke a particular “feeling without a name”: something we all feel when a building feels alive and congruous with the actions that take place there. A beautiful building is symbiotic with its purpose, its surroundings, and the people who use it.

That’s sort of a gross oversimplification though. I really recommend checking it out. Though its focus is loosely on architecture, I’ve seen a lot of engineers and designers get excited about it and find applications to their own work.

ThePhysicistonMay 8, 2016

A very interesting read about architectural patterns at various scales -from the home itself to the city and agglomoration- is Christopher Alexander's "A Pattern Language":


It contains lots of good examples on why some spaces are livable and why others are not. The book itself is a bit ideological but most of the described patterns are really great and give you a good understanding of why e.g. rural Italian or French villages have this nice vibe to them.

vickytnzonFeb 1, 2014

A pattern library is normally a collection of best UI practices: see the Yahoo UI pattern library http://developer.yahoo.com/ypatterns/ or http://ui-patterns.com/ for the two most well known examples. (It comes from Christopher Alexander's A Pattern Language and it being adapted to object orientated programming by the Gang of Four in 'Design Patterns: Elements of Reusable Object-Oriented Software'). The ALA version is a bit odd as it's more style-guide like (you normally have more options).

elihuonJune 27, 2016

Part of the point of A Pattern Language is that it wasn't revolutionary. The premise is that people have been building buildings for thousands of years, and certain common patterns appear without anyone calling them out specifically. So, Alexander set out to compile a list of all those patterns, and hypothesize about the problems they solve and why that particular solution is preferable to the alternatives.

To someone who is trying to make an artistic statement with their buildings, A Pattern Language might be uninteresting, since his advice is essentially the architectural equivalent of composing music in a major key according to traditional rules of harmony. If that's what you want to do, that's great, but if you want to make something deliberately dissonant or challenge traditional notions, it's not so helpful.

It's also worth noting that Alexander has some very strong opinions about things, and (just like any other area of human endeavor) there are architects who disagree with him.

thelastinuitonAug 5, 2020

I read Notes on the Synthesis of Form and I loved it.
Then I read A Pattern Language... damn son.

I recently bought The Battle for the Life and Beauty of the Earth. Within the first 2 pages I was already hooked. But in fairness, It's because I think we are two minds alike so I hardly disagree with him... which I think it's bad.

elihuonNov 1, 2016

> The problem Alexander is trying to solve is:
> How can you distribute responsibility for design through all levels of a large hierarchy, while still maintaining consistency and harmony of overall design?

> The pattern language does not tell you how to design anything

> It helps you decide what should be designed

> You get to make up whatever patterns you think will lead to good designs

I'm not sure I completely agree with this. I agree Alexander was trying to establish a vocabulary for communicating common ideas, and I agree that his collection of patterns wasn't meant to be the one true canonical list of architecture patterns, but I do think a lot of his patterns do specifically tell you how to design things. Also much of what he wrote isn't specific to large construction projects with many stakeholders ("The Oregon Experiment", which I haven't read, is an account of the process of designing the University of Oregon campus. However, "A Pattern Language" would also be of use to a person designing their own house by themself.)

What makes A Pattern Language more interesting and intellectually honest than just a list of design rules is that he gives justifications for each pattern and tells you what problem they solve and why he believes them to be an optimal solution. Anyone else can come along and propose a better pattern that solves that problem (or a more general one) in a better way, or can provide some argument that the problem isn't really a problem in certain circumstances. There's no appeal to authority or tradition; patterns are judged solely on their merits (to the extent that we can understand what those are; architecture is strongly tied to psychology, which isn't entirely understood).

(I really wish that someone would write a book similar to A Pattern Language, but about music theory.)

chubotonJune 8, 2021

Yeah I'm pretty sure that Christopher Alexander makes this point in one of his books, maybe A Pattern Language

He says that suburbs are configured "wrong", in a way that's antithetical to life.

Because the children go to school somewhere nearby, where they are babysat, and the fathers (at that time) commute to work in the city.

And the children have no idea what their parents do, and that is alienating. The configuration of space diminishes people and relationships. They don't see their parents enough and they don't learn from them.

Children want to learn from "real" work, not the fake work of school, which is why so many of them can't sit still in class, and get poor grades despite being smart, etc.

That work/suburb split definitely describes how I grew up, so I remember that point very distinctly. You are supposed to jump through hoops for 12 years, and then apply to a place where you jump through 4 more years of hoops, etc. But you are confused about how the world actually works. It's not a good way of teaching people to be adaptable to the world.

lliamanderonApr 17, 2018

Genuinely curious: why do you think this is?

I haven't surveyed zoning policies, so I don't know whether I agree with your conclusion, but I'd like to clarify a couple things.

First, we must ask ourselves what the goal of optimal zoning policy is. Is it to maximize the number of people who live there? Achieve an ideal rent/wage ratio? Maximize the efficiency of shared infrastructure?

Perhaps it is to maximize the desirability of living in an area. If that is the case, then if people are complaining about the house prices that may mean you're doing something right.

In any case, assuming we settle on a shared metric (which may involve a combination of these various factors), we need to distinguish between comparing the average case and the worst case performance of centralized vs. decentralized zoning policy.

I would say that my claim is that decentralized zoning policy will have a significantly better worst-case than centralized zoning policy, and that crafting a good zoning policy is enough of a gamble that I'd rather settle for a less-than-ideal decentralized policy than risk a horrendous centralized one.

Now, to tie back to the original debate of scientific expertise in particular: would adding a group of economists and social scientists to the central planning committee tilt the situation in favor of central planning? I very much doubt it.

"At the core […] is the idea that people should design for themselves their own houses, streets and communities. This idea […] comes simply from the observation that most of the wonderful places of the world were not made by architects but by the people."

— Christopher Alexander et al., A Pattern Language, front bookflap[1]

[1] https://en.wikipedia.org/wiki/A_Pattern_Language

bdauvergneonMay 14, 2019

Glass houses are a thermal crime. I'm from south of France, suck kind of houses are stupid here, but I think also anywhere. There is a typical architecture here, for countryside houses, that of the "Bastide", which is adapted to the climate. In hot climate, it's too much opening during summer, in cold climate it's too much opening during winter. Maghreb, spain and all countries around the Mediterranean have their own architecture adapter to hot climate with nearly passive cooling during summer (with an adapted way of life, i.e. work early and do nothing in the middle of the day during summer).

We don't need styles, movement or whatever, we need forms evolved for a long time by normal humans (on this point I'm a fan of Christopher Alexander position on architecture, see A Pattern Language or The Timeless Way of Building). Modern architecture is just a fraud based on nothing.

Look at those :
* http://www.hugues-bosc.com/blog/wp-content/uploads/2011/09/M...
* https://sunnyspainholidays.com/wp-content/uploads/2018/05/su...

gruseomonAug 23, 2008

I sympathize with the critique of GoF design patterns, but the author is seriously distorting Alexander in his eagerness to dissociate him from them. "How can you distribute responsibility for design through all levels of a large hierarchy" is not the theme of A Pattern Language, which is easy to see when you consider that the book is largely about dwellings (which don't involve any large hierarchies).

I agree, though, that the most interesting aspects of Alexander never made it into GoF. His key insight is that buildings should be designed around what makes humans feel more alive in them. Applying that to software, you'd end up thinking more about projects and teams than about iterators or singletons.

Another aspect of Alexander that's relevant to programming is his exploratory approach to making buildings. As I understand it, he never designs anything up front. Rather, he studies the site, talks to the people, and builds a little at a time, allowing the thing to emerge in a way that is appropriate.

gdubsonOct 26, 2018

One of my favorite books, "A Pattern Language" [1] – which is a sort of architecture manifesto / philosophy book – has a section related to building a workshop for retirement. The idea is that retirement shouldn't be an end, but rather a transition to a kind of work more suited towards one's later years. In building that space, one starts preparing for that next chapter, considering what that new role will look like, and eventually moving into it when the time is right.

1: https://www.goodreads.com/book/show/79766.A_Pattern_Language

simonsarrisonOct 27, 2019

I designed/built my own house too[1], giving sketches to an architect and working with him. Some major takeaways for others who have yet to build:

* No one will care about your project as much as you and this includes the architect :(

* Few(???) architects and zero builders seem to understand light/wind/circulation like people apparently intuitively did 200 years ago. You might be better off with the average curious engineer designing the house than the average architect. Everyone is astonishingly lazy, even mansions around here have terrible light/circulation problems.

* VR is no match for IRL! It's best to actually get a measuring tape and stake out the dimensions of the house on the land. An even better, get chalk and go to a big flat parking lot and draw out the entire floor plan (compass-correct) and walk inside, looking at the sun (keeping in mind what season). This worked well for me, I should have done more of it. I didn't build a porch though, which is where getting more exacting summer/winter sun angles would matter.

I actually got the chalk idea from the excellent movie The Founder, where the creators of McDonalds try out different kitchen workflow models this way.

* Draw and sketch a huge amount. Sketch facades freeform, with the ruler, etc. The fidgeting will help you discover things.

* Read a bunch of books about old houses. Maybe most approachably: Get Your House Right and A Pattern Language

* Get a pinterest board for you + spouse. We used ours heavily and it was great for keeping track of interior detail decisions.

[1] It's a fundamentally simple house, basically a box that maximizes light and airflow and wood burning heat, so I probably had a much easier task than you. Some of the original drawings: https://twitter.com/simonsarris/status/1183150002002112512

threepipeproblmonJune 30, 2017

Lol I don't believe it's worth my time to argue this further, since you haven't made any actual arguments, and you come off as kind of a jerk with all the unsupported claims, not responding to my points, and demanding that I do work for you. Sorry you are blind to this. If you want to understand your deficiencies in this area I'd recommend reading A Pattern Language by Christopher Alexander, followed by Design Patterns by the 'Gang of Four', then thinking about the connection between architectural pattern languages and cutting edge software design. Perhaps think about why programmers have taken the time to assemble libraries of anti-pattern examples specifically, analogous to McMansion Hell's.

theohonJuly 22, 2018

You're right that this is about judgements of value. But part of the problem is that architecture can't be reduced to bite-sized principles and quick-reference rules of thumb.

Architecture is so much more complex and nuanced than that. Even "A Pattern Language" falls into the trap of providing reductive prescriptions. Ask literally any architect what they think of Christopher Alexander's actual built work, and they will either dismiss it or (more likely) won't even have heard of it.

memracomonMar 27, 2016

Great idea. But it would be a mistake to start with GOF because GOF is not the beginning. I first encountered patterns reading Christopher Alexander's books, "A Pattern Language" and "The Timeless Way of Building". Although they were books about houses and other buildings, I was able to apply the ideas in building software on 80's minicomputers using Business Basic and COBOL.

Good architecture should be independent of materials including programming language, even though Alexanders books put heavy emphasis on how choosing good materials allows one to effortlessly apply his Pattern Language to build great buildings.

Also, Alexander's books made it clear that patterns are not building blocks. You need to use creative thinking to be able to combine them into a cohesive design, even adjusting the patterns to fit the situation and documenting your own personal set of patterns.

Too much of the post-GOF use of patterns treats them like fixed building blocks that have to be put together the way the book says, and if you deviate from the book, then you are doing it wrong. I think that is a mistaken way of thinking. It can be useful for a new developer to get over their first couple of years of learning how to build software, but since it is a crutch, using patterns as rigid building blocks will not get you far.

MiguelVieiraonMar 15, 2015

This was covered in "A Pattern Language" decades ago, under Ceiling Height Variety:

> the mere fact that the ceiling heights vary, allows people to move from high rooms to low rooms, and vice versa, according to the degree of intimacy they seek — because they know that everyone correlates
intimacy with ceiling height.

> According to this theory, the effect of the ceiling height is not direct; there is instead a complex interaction between people and space, in which people read the different ceiling heights in a building as messages, and take up positions according to these messages. They are comfortable or uncomfortable according to whether they can take part in this process, and can then feel secure in the knowledge that they have chosen a place of appropriate intimacy.

nkorenonOct 14, 2012

+1 for Drawing on the Right Side of the Brain. It's superb.

I'd add A Pattern Language to the list. It's actually been very appropriately valued by the programming community, but massively undervalued by its intended audience of architects and urban planners. Should've been the architecture and planning book of the 20th century; instead most design professionals have never heard of it. Their loss!

munificentonMay 18, 2020

> is it possible that not seeing things as patterns allows for a more intuitive grasp?

Yes! I think about this often. There is sort of a Zen or Bruce Lee aspect where thinking of things strictly in terms of named categories can lead to overly rigid thinking and cause you to avoid better solutions simply because they don't have a name and don't seem as "real".

There is a balancing act, though. When we write code on a team, there is a real value to shared understanding of the codebase. Sticking to familiar categories, even at some minor expense of fitness to the task, is probably a net gain if it makes it easier to the entire team to understand what the code is doing and why.

It's also important to remember that the primary reason the Gang of Four wrote Design Patterns and called them patterns after Christopher Alexander's A Pattern Language is because they are not rigid copy/paste structures. If they were, we'd just call them data structures or algorithms.

The fundamental premise of why we call these patterns is that each manifestation of a pattern will appear slightly different, shaped by the context in which it is applied. That's why you don't often see resuable "pattern implementation libraries".

Good literature on patterns stresses this flexibility. Less good literature tends to just say "here's the thing that solves all your problems" and discourages readers from thinking deeply.

chrisdinnonJune 10, 2021

Reading A Pattern Language without reading The Timeless Way of Building makes no sense at all. We do it, I think, because many technologists stumble on A Pattern Language through its relationship to Gang of Four and other “pattern” approaches. The book I always return to, more and more as I get older, is The Timeless Way of Building.

shagieonOct 15, 2016

That incidentally is the idea behind Patterns... not this "pick a pattern to solve the problem" - or worse yet, "here's a Pattern, find the problem to solve."

The shard language. The GoF wanted that shared language, but people missed the ideal behind it and thought it was a cookbook instead.

The GoF draws from A Pattern Language ( https://www.amazon.com/dp/0195019199/ ) and I believe does a better job at communicating what Patterns should be - a common language and broad brush strokes of solving common problems (though almost always require some tweaking to make it fit just right).

throw0101aonJune 10, 2021

Some of the co-authors / contributors of A Pattern Language distilled the original >200 patterns to what they though were the 10 most essential in the book Patterns of Home: The Ten Essentials of Enduring Design:

* https://www.goodreads.com/book/show/885970.Patterns_of_Home

* http://www.architectureweek.com/topics/patterns.html

andreareinaonFeb 7, 2021

> I think a lot of his ideas can be applied to software too

Reportedly his book A Pattern Language inspired the GoF software patterns book.

tptacekonDec 10, 2011

I read Cialdini years ago because Joel Spolsky recommended it here:


From that list, I also highly recommend:

* Peopleware (get your cofounders to read it too)

* Godel Escher Bach

* A Pattern Language (but don't bother reading it straight through)

* Growing A Business

theptiponMay 4, 2021

It's an interesting comparison. Looking back in the history of software, "A pattern language" was an architectural treatise which inspired the software concept of "software design patterns".

Similarly, I can see that considering the known issues with top-down vs. bottom-up city planning/evolution could be beneficial for software-centric organizations too; the issues with badly-fit top-down city plans seem to match very well with the pains of an ill-fit software architecture that's mandated from an ivory tower, complete with users using the planned cities "wrong".

I'm sure there are differences though. You have a lot more observability into your software systems, and at the end of the day, they are orders of magnitude less complicated than cities, so you can comprehend more of the system at once, and truly find common usecases to standardize around. This is in contrast to cities where it's impossible to really know every citizen's unique needs, temperament, and usage patterns.

Worth thinking about more; given the relatively low cross-pollination rates between the fields, I suspect there are more lessons that software engineers could glean from architecture and city planning.

legerdemainonMay 19, 2020

This seems to be a hypertext version of A Pattern Language .[1]

[1] https://en.wikipedia.org/wiki/A_Pattern_Language

nkurzonSep 19, 2016

It depends on your goals. One saying is that "a good window is still a poor wall". A quality double glazed window still has about 10x the heatloss of a well built wall. Here's a summary with a link to more: http://www.energyvanguard.com/blog-building-science-HERS-BPI...

Shades can help with privacy, but what if you want the privacy at the same time you want to be capturing heat? And if requires active control --- well, that's by definition not passive. Interestingly, the new movement in high efficiency houses is frequently for low solar gain windows: well insulated windows with special coatings to admit less heat while still admitting light.

From another standpoint, gigantic expanses of windows are rarely the best way to build a pleasant room. As well as being a rare crossover between Computer Science and Building Architecture, Christopher Alexander's "A Pattern Language" has lots to say on this. Some excerpts here: http://kk.org/cooltools/a-pattern-language/

Which is to say that opaque heat-gathering walls serve a purpose that is separate than that served by windows. Both have their place, and they don't tend to replace each other directly.

thomasptacekonOct 14, 2007

Three comments.

(1) Reads like "case-in-point" for Norvig's argument that the GoF patterns are artifacts of less expressive languages. Most of these examples battle clearer, more effective idiomatic alternatives in Ruby.

(2) Yet another misinterpretation of what Chris Alexander meant by "A Pattern Language". The GoF book isn't a cookbook, it's a starting point.

(3) This document didn't benefit at all from being "typeset" in PDF; any Wordpress blog with syntax highlighting plugins would have presented it better.

Wouldn't it be cool to see the "real" design patterns for Ruby?

shooonDec 30, 2015

Slight tangent: if one is interested in design patterns, consider reading the book "A Pattern Language", 1977 by Christopher Alexander et al. It's the original patterns book, for architecture.

Continuing tangent: if that sounds interesting, please consider also reading the precursor book "The Timeless Way of Building" by Christopher Alexander. It focuses on the theory and the philosophy. This is a beautiful book, in both senses of the beauty of the book itself, and the beauty of the ideas contained inside. It is very humane.

"There is one timeless way of building. It is thousands of years old, and the same today as it has always been. The great traditional buildings of the past, the villages and tents and temples in which man feels at home, have always been made by people who were very close to the center of this way. And as you will see, this way will lead anyone who looks for it to buildings which are themselves as ancient in their form as the trees and hills,and as our faces are."

It wouldn't hurt to have more humane and beautiful things in the world, particularly those that are designed and built and customised by those who must inhabit or use them. Whether those things are buildings, or software, or laws, or societal goals.



aaron-santosonSep 13, 2017

Christopher Alexander, an architect who wrote among others A Pattern Language: Towns, Buildings, Construction. A Pattern Language later inspired Gamma et al to write Design Patterns: Elements of Reusable Object-Oriented Software.

elihuonJune 17, 2017

> There are no complete scientific theories of music and there never will be, because music is a huge and semi-random collection of cultural experiments and stylistic conventions built only very loosely on perceptual psychology.

You could say much the same thing about architecture. In that domain, I find Christopher Alexander's book A Pattern Language to be a very good reference for describing many concrete reasons why certain buildings feel better than others that seem to be pretty universal. (And we could reasonably expect to be able to test that if we were in doubt.)

It's not a complete theory of architecture and can't be, but partial theories are still tremendously useful and more likely to produce good results than blindly following stylistic rules without knowing what purpose they serve.

I've been hoping for awhile that someone will write a good music theory book in the same format.

ratrocketonAug 5, 2020

I don't remember where I read it (sorry), but I recall that "The Timeless Way of Building" and "A Pattern Language" were supposed to be, or were conceived as, one book. But it would've been way too long, so it was split up. Generally, I think you're right: "TTWoB" is sort of the set up to "APL", motivating why "APL" is useful, and telling you how to use it. I remember I used to be more drawn to "APL" because you can just open it up anywhere, and since the patterns are so short, you just read a little bit and get inspired. It's bite-sized fun! But when I finally read "The Timeless Way of Building", things really clicked. "APL" is really illuminated by digesting "TTWoB" first. (I also think "APL" is more useful read cover to cover, though nothing wrong with taking some bite-sized inspiration once in a while :) )

So, I guess, besides just agreeing with you, sort of also saying, keep reading "TTWoB", soak it up, then you'll be primed for "APL". It's such a fun journey! (If you can't tell, I'm a big admirer of Christopher Alexander :) )

pjmorrisonJuly 27, 2016

I'm a huge fan of Stewart Brand, starting with the 'Next Whole Earth Catalog', which is where I learned how big a fan Brand is of Christopher Alexander and his 'A Pattern Language'. Alexander's work in patterns inspired the 'Gang of Four' to write 'Design Patterns'... so I think your best-seller prediction is not only correct, but empirically validated :)

frikonApr 5, 2015

Funny that you mentioned "Brutalist architecture" as it led to the development of Christopher Alexander's famous books A Pattern Language and The Timeless Way of Building. He is the "second" Dijkstra, and his work is a must read for both architecture and computer science students, etc. http://en.wikipedia.org/wiki/Christopher_Alexander#Influence (influenced a lot in both fields).

I think you got it, what I meant with "nobody". Sure there are fanboys and followers for almost every niche, what should matter are the mass of normal tourists. Some cities (and their city planers) understand that, some don't.

> they are [...] primarily functional

Sure, functionality is usually a requirement. But bog-standard sterile concrete box architecture is just laziness/tasteless or constraint by the budget. (that's another debate).

Coming back to the former debate-topic, there has been a certain influence in Modern Architecture.

munificentonFeb 8, 2017

> which turn up again and again in Java code

This is true, but it's an effect, not a cause of the book. "Design Patterns" is older than Java. They wrote it based on patterns they saw mainly in Smalltalk and C++.

> prescribed their use generally

Like "A Pattern Language", "Design Patterns" reads more descriptively than prescriptively. It's, "Here's a thing we saw people do. Here's what problem they were solving with it. Here's the context of their problem. Here's the positive and negative consequences."

andyjohnson0onSep 3, 2015

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].

[1] https://archive.org/details/APatternLanguage

[2] https://en.wikipedia.org/wiki/Software_design_pattern#Histor...

phromoonMar 7, 2021

Alexander's works are wonderfully inspiring to read. I'm sure they can inspire many diverse interpretations useful for creating digital artifacts.

To the curious, note that what the patterns are is not explained in 'A Pattern Language' but instead in the companion book 'Timeless way of Building'. It's quite a philosophical exposition. It talks about evoking 'The quality without a name', that every human has the capacity to feel, but not necessary to name or dissect.

Here's a quote for the curious from 'Timeless way of Building' that I think captures somewhat what the post wishes more software designers thought about in relation to patterns:

(page 236-237, speaking about the specialisation of professions in which people's pattern languages gets lost through disconnection)

"... Of course, even now a town still gets its shape from pattern languages of a sort. The architects and planners and bankers have pattern languages which tell them to build gigantic steel and concrete buildings. The users have a few shattered patterns left in their vocabulary: a sheet of plastic to make a kitchen counter; huge plate glass windows for the living room; wall-to-wall carpet in the bathroom -- and they enthusiastically piece these patches together, whenever they have a free weekend.

But these remnants of our former languages are dead and empty. They are based mainly on the by-products of industry. People use plate glass windows, formica counters, wall-to-wall carpet, because industry makes them available, not because these patterns contain anything essential about life, or how to live it.

The time when a pattern language was a song, in which people could sing the whole of life, is gone. The pattern languages in society are dead. They are ashes and fragments in the people's hands"

oldmancoyoteonSep 11, 2018

Why: No available home offered the amenities that I wanted. Home architecture seems to focus on increasingly elaborate variations on the 3 bedroom 2 bath conventional home at higher and higher densities.

How: After designing a home following "A Pattern language" by Christopher Alexander and taking a course in owner-built homes multiple times, I got a construction loan at an exorbitant rate from private money (brokered by a specialist in private money). Then, I served as my own general contractor using conventional project management methods. Once the house was finished, it was easy to get a conventional home mortgage.

brudgersonJuly 29, 2015

Christopher Alexander also wrote A Pattern Language which was one of the inspirations for Beck and Cunningham's thoughts about software design patterns. Alexander is both an architect and mathematician.

chrisdinnonJune 11, 2021

The Timeless Way of Building describes a philosophy, not just of building practice but really of how to live a good, fulfilling life. A Pattern Language is an set of examples of how to shape specific parts of your community and home to implement that philosophy.

Following the patterns without understanding the philosophy makes no sense to me because it’s a very opinionated and, in the modern world, quite radical. What if you don’t agree with it? I think many don’t. At least, you want to be able to read them critically.

elihuonAug 14, 2016

I think a counter-example of that type of architectural criticism is the work of Christopher Alexander; he's extremely opinionated about what he likes and doesn't like, but in "A Pattern Language", he lays out a bunch of design principles and explains what problem they solve and why he thinks they're the optimal solution to that particular problem.

Any other architect can come along and say "I don't think that's a real problem" or "I think I have a better solution to that problem". There's no appeal to authority (e.g. "this is how architectural tradition says you're supposed to design things, and anything that breaks these rules is wrong"). Everyone is encouraged to work things out on their own from first principles and see if they come to the same conclusion. I think this is especially important in Architecture, where anything beyond basic utilitarian functionality is very tied to psychology and is therefore in a realm of conjecture where very little is definitively provable and yet many people seem to react very similarly to certain design elements.

In "A Timeless Way of Building", Alexander talks about cultivating the mental discipline of separating what you think ought to be a good design from analyzing your actual emotional response to that design. Learning to pay attention to the latter instead of the former can often lead in unexpected directions and result in better design.

praptakonFeb 12, 2015

Christopher Alexander (of the Patterns fame) gives props to this concept in "A Pattern Language": Pattern 230, "Radiant Heat":http://patterns-dev.github.io/patterns/newpat/newpat230/newp...

GFischeronSep 12, 2014

There were plenty of discussions about human-scale cities here on HN (and I hope to see more of them) :)

One oft-quoted title is Christopher Alexander's "A Pattern Language", which advocates several building and design patterns, and ended up picked up mostly by the software engineering community.


some previous discussions here on HN:




strangetimesonMay 27, 2015

"A Pattern Language" by Christopher Alexander


RyanMcGrealonDec 2, 2009

> The theories that are taught in architecture schools today are of a different sort, and in the belief that the field of architecture should be grounded in intellectual speculation, rather than pragmatic observation, students are more likely to be assigned French post-structuralist texts than A Pattern Language. Which is a shame.

It's just astonishing, decades after Jane Jacobs' The Death and Life of Great American Cities, that pragmatic observation is still on the margins. What, a half-century of abject failure in building and neighbourhood design isn't enough to demonstrate the fundamental wrongheadedness of dogmatic, a priori design principles?

crazygringoonNov 26, 2018

This is one of those ideas that (rightly) won't go away.

I've recently been quite inspired by Christopher Alexander's "The Luminous Ground" (2003). For those who don't know, he's an architect and mathematician [2] whose work greatly influenced object-oriented programming (he's best-known for "A Pattern Language"), and in this most recent work of his, he addresses the concept of "wholeness" head-on -- investigating what can be done to integrate the completely separate worlds of art/spirit and physics, under the belief that they can't stay separated forever... and following in the steps of thinkers like Bohm, Penrose and Mandelbrot. (I.e. he's serious, not some new-age QM crackpot.)

The print copy is sadly ridiculously expensive, but whether online or in libraries there are definitely ways to read it if you're determined...

[1] https://www.amazon.com/Nature-Order-Building-Environmental-S...

[2] https://en.wikipedia.org/wiki/Christopher_Alexander

raihansaputraonFeb 7, 2021

Yeah, the practice of extracting of patterns in software does refer a lot to A Pattern Language[0][1]. Admittedly I stumbled upon CA's work when I'm looking into building a design pattern for my current workplace. But it's a bit disheartening that currently CA is referred more towards the design and design system side of software instead of the building/writing, although patterns are still very much practiced.

[0]: https://en.wikipedia.org/wiki/Design_pattern
[1]: https://www.martinfowler.com/articles/writingPatterns.html#A...

ohwponJan 22, 2013

The book "A Pattern Language" describes a lot of these problems and solutions. Although its from 1977 I think its still valid. http://en.wikipedia.org/wiki/A_Pattern_Language

jrochkind1onNov 10, 2017

I think I could handle a 2-3 person office fine, but I bet that fairly small shared offices on a common hallway would work for you too.

I think my fantasy ideal situation is probably like groups of 4-6 small private offices clustered in a L-shape around a shared small conference room. Next to other such groups on a corridor (or even sometimes inter-connected). Would surely be incredibly expensive office space. Oh, let's give each private office a window while we're at it then. :)

Writing this reminded me of Christopher Alexander, I bet there's a pattern for this in A Pattern Language. Looking... #146 Flexible Office Space touches it a bit.

I think there's probably way more to this than 'open office' vs 'individual offices', tons of diversity within each, well less in 'open office'. But open offices with 8 people vs 20 people vs 100 people are going to be very different, also the square feet per person, and the layout and furniture.

neonologicalonMar 7, 2021

>Mathematicians aren't building/designing things all day long so they don't need this word.

Not true, they build proofs. Within proofs there are many many common techniques, aka "patterns."

Either way you seem to imply that "patterns" are for people who "build" things, which isn't emphasized in your definition below:

>"A pattern language is an organized and coherent set of patterns, each of which describes a problem and the core of a solution that can be used in many ways within a specific field of expertise. The term was coined by architect Christopher Alexander and popularized by his 1977 book A Pattern Language."

The problem with the above definition is that English vocabulary already communicates what a pattern does perfectly fine. What is the point coming up with an over complex name and postfixing all of these things with "pattern?" It's basically a redundant concept.

In fact, my communication with you at this very moment is employing many many common patterns. Check the pattern in the previous sentence "many many." I call it the double emphasis pattern and I've used that pattern twice in this reply. I'll write more about it in my book on Design patterns for English communication.

rmahonFeb 14, 2012

Read "A Pattern Language" by Christopher Alexander. http://www.amazon.com/Pattern-Language-Buildings-Constructio...

SteveJSonJuly 15, 2012

The idea of sharing a kitchen counter and computer desk just makes me think crumbs in the keyboard. However, minimizing the kitchen and having really high end shared kitchen facilities would be great. Between the ages of 24 and 28 I didn't eat at home even once.

One of the underlying sources for 'smaller is better' is Christopher Alexander's "A Pattern Language". It also is the source that inspired the pattern movement in software. A pattern language is second in the series, and is a 1000+ page book with strong opinions on everything from City planning down to interior decorating. It is very much worth the read.

shimononSep 26, 2008

I'd be interested to hear more about this. I think there are some significant opportunities to make cities better (maybe by starting new ones, maybe just by working with our existing ones in new ways). And a lot of the ways technology has changed our lives recently has affected what we need and expect from a city, including things like:

- knowing our neighbors

- usable mass transit

- energy efficiency

- interaction with government

It's the sort of area that I think has a lot of opportunity in it, but that opportunity isn't clearly something that could make you rich. So as a general area of focus, I think it'd be well worth a hacker's attention.

P.S. If you think cities, architecture, and the community shaped by those things are interesting, you should definitely read "A Pattern Language" by Christopher Alexander et al. It illuminates a lot of what goes on in cities and buildings in a very concise way, and will probably give you ideas to improve your home and environment.

apinsteinonJan 16, 2015

Reading "A Pattern Language" immediately changed the build-out plans for our new office. We're truly putting these ideas in practice.

We have a large-ish, well-lit open space, surrounded by several conference rooms. The open space is oriented in the overall space such that it's farthest from the door to minimize traffic. We're going to let each team (4-8 people) build out their own workspaces in the open area. They will organize the furniture, control how they physically interface with the rest of the space and other teams, etc. They'll have enough types of furniture to build walls, alcoves, desks, conference tables, social spaces, etc. As projects and teams change, adjustments can be made immediately.

I must say it's an exciting yet terrifying prospect, particularly because as with many existing spaces, it's not always possible to follow the prescriptive advice 100%. Additionally, almost no one has ever worked in an office space that is like the Alexander describes, which makes it somewhat of a leap of faith (in Peopleware we trust) that it will all work out.

If anyone else out there has already gone through this process, I'd love to hear how it's worked out for you.

This is the web page that got me into his work [http://zeta.math.utsa.edu/~yxk833/Chris.furniture.html].

ryanisnanonNov 1, 2016

I'm somewhat familiar with the GoF book and Alexander's A Pattern Language book and I must say, I don't really understand this post.

I wish I had the latter in my hands now for reference (it's at home), but from what I can recall, the book goes into great detail about how to solve specific problems using generalizable solutions. For example, to establish a connection between the space inside of a building with the space outside of the building, consider adding awnings with open archways to the perimeter.

The Design Patterns book, though wildly specific (possibly only because it can be), also deals with solving specific problems with generalizable solutions. For example, creating and ensuring only one instance of an object exists (Singleton - p. 127). The book outlines the motivation for this (e.g. the problem), and defines an abstract for the solution.

Also, the fact that more modern languages can more easily solve some the problems discussed in Design Patterns is, while true, seems like a bit of a red herring. Undoubtedly the patterns themselves have a lifetime of usefulness, and will evolve as we discover new ways of solving new (and old) problems.

brudgersonAug 4, 2020

I'm not sure your assumption is accurate. In part because people generally don't study architecture at university, have careers in architecture, and do apprenticeships when talking about software architecture (and there's hardware architecture too, though the same applies though perhaps slightly less so). But all these are common when talking about architecture in the built environment.

The other reason I'd question your assumption is I'm an architect of the type that designs buildings. Though I don't practice much these days, I still keep one active license and one inactive license just for giggles and because it's occasionally more convenient to say "I'm an architect" when asked "What do you do?" than to describe what I actually do because I'm not exactly sure what that is beyond it being just the things I do.

There is (or was) a sort of standard student cannon in the US that included Ching's Form, Space and Order and Alexander's A Pattern Language. Alexander's work of course overlaps with software architecture, so it's "arguably" relevant either way -- though it's not a very interesting argument to me and so not one I'd wish to have.

vanderZwanonMay 3, 2020

I discovered Christopher Alexander through an interest in permaculture back in the mid-2000s while studying art, so yeah, many fields indeed. Reading Notes on the Synthesis of Form, The Timeless Way Of Building and A Pattern Language was enormously influential (it also made my follow-up design master a relative breeze, since it conceptually overlapped with so much other material that we were taught).

The romanticizing issue is very visible, although you can also see it as a product of the dominant architectural mindset of the era the books were written in (or more accurately: a reaction to it). It's a lot easier to look past it with that in mind.

brudgersonJuly 5, 2015

By capturing abstractions over graphic formats it reminds me a bit of Alexander's A Pattern Language and its relationship to buildings. The chapter on Quantitative Cartoons gave me one of those "that thing has a name" moments and afterwhich a previously unremarkable piece of the cultural furniture becomes remarkable because we get a new way of seeing.

brudgersonJan 16, 2014

Alexander considered his work prior to A Pattern Language to be a failure. Notes on the Synthesis of Form was largely his Phd work from Harvard, and his self-criticism was that the process was too formal.

My personal opinion is that it better corresponds to current software architectural practice because whereas A Pattern Language is entirely focused on habitability for end users, both current software architectural practice and Notes on the Synthesis of Form emphasize habitability for the architect/programmer - e.g. three tiered systems make the job of the programmer easier, they don't necessarily improve user experience, but light on two sides does.

kapv89onSep 11, 2013

You know what its time for ? To go back bit, beyond the patterns, read "A Pattern language" by Christopher Alexander. Understand why those patterns become the way they are, and build software that makes as much sense as real world buildings. Things that are much more costly than software to tinker with. Given how much complex shit is becoming today, imposing any fixed label on how we devs build things would become very restraining very quickly.

kthejoker2onMar 8, 2021

I think the simplest response I can give to this is the "above defition" is of a pattern language, not a pattern.

A pattern language is an organized and coherent set of patterns. They are developed holistically to work in relation with each other. They're designed to be combined together - as sequences, in parallel, as contrasts - and also to be as "platform-agnostic" as possible.

For example, Alexander's book helpfully includes a ton of points on how to combine the various patterns in the book, and a healthy "see also:" section to get alternative ideas or just areas of overlap between them all.

And the patterns in the book are about the physical, environmental, and social needs of humans (the problems) and how they can be met trough architecture and infrastructure.

It's very distinct from just "a list of patterns." They're always described in service to the whole, in relation to the others.

For the English language, I would say Aristotle's Rhetoric is closest in spirit; whereas Elements of Style is clearly more a "list of patterns"

Other "pattern language"-style books I can think of are The Prince by Machiavelli; Capital by Marx; 22 Immutable Laws of Marketing by Ries and Trout; Diffusion of Innovations by Rogers; and High Output Management by Andrew Grove.

I would also say the original C2 Wiki comes closest to creating a "bottoms-up" pattern language. Here's the entry on A Pattern Language - https://wiki.c2.com/?PatternLanguage

But these books aren't explicitly set up as pattern language books - nor are many others. Very few books (not even the GoF) are put together so well and as comprehensively as A Pattern Language. It's truly a masterpiece.

schiffernonJuly 31, 2014

Came here to recommend "A Pattern Language" -- truly a transformative book. The article touches on a few of the patterns it lists, but I think this nascent project would benefit greatly from the author reading it through.

For instance, just building narrow streets is not "all we need to do" as the author states.

Full text available on Archive.org (but it's worth buying a copy for the illustrations alone): https://archive.org/stream/APatternLanguage/A_Pattern_Langua...

brudgersonFeb 13, 2012

Based on the photographs, it does not appear to be engineered - roof supports do not appear to be of adequate depth to support live, dead, and snow loads. People can dance on that roof and under most building standards deflection is the controlling factor for structures this size.

IMO, it is highly improbably that adequate structural analysis was done on all those small twisted members because branches and stunted trunks contain so many knots and so much sapwood.

On the positive side, the approach is straight out of Christopher Alexander's A Pattern Language, and any victims of the inadequate structural design will be due to Darwinian forces.


asoloveonMar 22, 2012

You may know the architect Christopher Alexander from "A Pattern Language" and his influence on design patterns/agile.

Later in life he studied the organizing principles of nature and well-man-made artifacts and discussed the common patterns in his books "On the nature of order" [1]. The ideas are perhaps more grandiose than this author is discussing, but also very interesting when applied to engineering.

[1] http://www.amazon.com/Nature-Order-Phenomenon-Environmental-...

kqr2onDec 2, 2009

Here's a summary of his influential book A Pattern Language:


canduonSep 14, 2020

Lots of competing opinions on what the big question in politics is, so I figured I'd add my own :)

To me, the biggest question in politics is: how do we build political / societal systems whose impact on human society is consistently positive and equitable?

This implies _fundamental_ changes in those systems. To wit: publicly-funded R&D returning value to the public purse, and not just to private companies (see: Mazzucato's "The Entrepreneurial State"); effective and highly coordinated wealth / corporate tax regimes (see: Piketty's "Capital in the Twenty-First Century"); complete transformation of education and its relationship to both human psychology and technology (see: Papert's "Mindstorms"); eradicating the very concept of "good" and "bad" neighborhoods through massive and equitable investment in schools, housing, mixed-use zoning, mixed-income development, multi-modal transit, functional green space, etc. (see: Alexander, Ishikawa, and Silverstein's "A Pattern Language"); and, backing it all, a modern, responsive, truly digital government that is empowered to invest in tools and technologies to continually improve both internal work and external service delivery (see: Cyd Harrell's "A Civic Technologist's Practice Guide").

brudgersonOct 14, 2012

A Pattern Language is often a required text for at least one studio course in US architectural schools. There are, however, practical issues with Alexander's approach at a professional level. Some are perhaps subtle to a layperson - most architectural projects are typically driven by the client's commercial concerns, e.g. a firehouse apparatus bay is designed for trucks not human habitation and a restaurant is designed to turn over customers not cause them to linger for six hours. On the other hand, some are obvious - planners do not have the ability to limit existing communities to a few thousand people.

This isn't to say that Alexander cannot inform a design. In fact, many architects look at his work during the process. But the kind of project which will look like the images in his book is rare simply because many of these patterns are best implemented "at run-time" by the user, rather than at "compile time" by the architect or planner.

Finally, I would say that what the programming community got from A Pattern Language is not Christopher Alexander, but Richard P. Gabriel. [http://www.dreamsongs.com/]

talkingtabonMar 31, 2019

While I agree with the gist of the article I think "blind faith" is misleading. Having faith in your intuition is certainly the key. In my experience intuition comes from pattern recognition and often from recognition of discontinuities. Christopher Alexander, he of "A Pattern Language" has another book, "Notes on the Synthesis of form", in which he discusses what I think can be summarized as: we can tell that something is wrong, but understanding how to fix it is harder. At least that is what I took away.

The "blind" part half way applies. You have to have faith that you recognized something that that is out of kilter, and you have to be blind to the fact that you don't know the solution.

munificentonMay 11, 2018

Here are a handful that really stuck with me and changed how I think about things:

    Gig: Americans Talk about Their Jobs
The Tao of Pooh
Zen and the Art of Motorcycle Maintenance: An Inquiry Into Values
Tao Te Ching
A Pattern Language: Towns, Buildings, Construction
Nonzero: The Logic of Human Destiny
Novice to Master: An Ongoing Lesson in the Extent of My Own Stupidity
How the Mind Works
The Design of Everyday Things
Gödel, Escher, Bach: An Eternal Golden Braid
The Paradox of Choice: Why More Is Less

Some of these are typical for the audience here, but a few are more off the beaten path. I really liked "Gig" and "A Pattern Language".

Fiction is harder to pin down. I think, overall, reading fiction has had a greater impact on my understanding of human nature than non-fiction has. But it's diffused over a larger number of books so it's hard to point to specific ones. I think simply reading a large volume of fiction helps me understand all the ways people can live and think.

praptakonFeb 15, 2012

I recommend the totally reversed order. First, A Pattern Language - the concrete examples presented there are IMHO the most compelling. Then The Timeless Way of Building since it actually builds upon "A Pattern Language". There are quite a lot of references to particular patterns there, so you minimize forward references this way.

The Nature of Order series generalize even more, so I'd read them after that. They rather independent from the TWoB and APL but I believe the way from the concrete examples (APL) to the generalizations is a better one. Here it's rather a matter of preference than one of forward-dependency.

rando_2458976onNov 2, 2016

I agree with the author's main point (software engineers should take another look at how Alexander frames the patterns in "A Pattern Language"). Obviously we should all look for common patterns and problems in our work and build up a shared "vocabulary" of approaches to those situations.

But these pattern catalogs present a risk of seeming complete. To believe that you're near completion on a list of patterns in any field is utter hubris. Alexander's own hubris at having discovered objectively "correct" architectural styles led him down a path towards obsolescence while the rest of the architectural discipline moved on. The hand wavy "scientific" surveys Alexander conducted wouldn't pass a basic social science methods review these days. Pseudoscientific methods of assembling anecdotes or interviews from small samples that don't control for sampling bias will always result in some interesting insights that can't be reliably generalized beyond the narrow scope from which they were gathered. That's what both of these pattern languages are. At best they are a handful of neat ideas that other practitioners can reuse. But these are not some sort of reliable canon. We're all going to have to do more rigorous research if that's what we want.

There might be another parallel in here about the fetishization of anachronisms. Alexander, who is an architect not a carpenter, goes out of his way to glorify hand-crafting things (literally avoiding power tools). Unless you're a carpenter who specializes in make "artisanal" works of art for wealthy patrons, I guarantee you'll enjoy the productivity gains of a pneumatic nail gun. So if you ever find yourself insisting that some old "pattern" is more pure at the expense of everyone else's productivity, double check whether your dogma is worth it.

TL;DR. Don't take patterns too seriously. Always look for new ones.

brudgersonJune 10, 2021

A Pattern Language is applicable when putting lines on paper or nails in wood, i.e. actually designing and/or building. Though interesting, A Timeless Way of Building tends to be mostly useful for complaining about the way something has been built. Nobody talks about the third book in the trilogy The Oregon Experiment because the resulting buildings don't look like what people want to be the result of A Timeless Way of Building.

Anyway, in the actual practice of architecture, A Pattern Language is by far the best of the set. There are other books that make approximately the same case as Timeless Way of Building. [1] Most of it's fame is from standing in relation to A Pattern Language.

[1] e.g. How Buildings Learn, The Timeless Way of Seeing, Structure of the Ordinary, etc.

niels_olsononOct 13, 2008

The whole article is based on the failed idea that the burbs are the way to go. Many people who have read A Pattern Language understand that the neighborhood is also key, though they often can't realize it alone, so they instead build really fancy and eclectic single-family two-story homes, (how novel /sarcasm).

I would be interested in connecting with more people who understand and want to realize Christopher Alexander's ideas, and encourage anyone who reads Hacker News to get A Pattern Language. It's not really made to be a straight read. It's more like a library of architectural functions with comments on how to apply them. Good to have at hand. The problem is that to fully realize what is clearly a better solution than the burbs, you would need to collaborate with dozens of other people, who all understand the ideas.

Here's a couple of starting points for those unfamiliar with the architectural ideas:



elihuonOct 26, 2016

I like the demos. The transition from ratios to equal temperament was kind of jarring. It might help to not jump straight from the pentatonic scale to a chromatic scale and then go back to the major scale later, but to introduce the pentatonic scale, and then describe major and minor chords as 4:5:6 and 10:12:15 ratios, and then show how the major scale can be constructed simply by trying to get as many usable major and minor triads out of the least number of notes (while emphasizing that the major scale isn't the only solution, and that other "modes" exist).

Once you've established that the major scale is useful and in no way mysterious, then you can point out that if you divide the octave up in 12 logarithmically equal parts, you end up with equal tempered notes that almost line up with the ratio-based major scale. (I once threw together a diagram to illustate this that you can find here if you scroll down a bit: http://jsnow.bootlegether.net/cbg/justintonation.html) From then on, you can treat equal temperament as an approximation that implies the ratios you described at the beginning.

(Side note: One idea I try to impress on anyone who demonstrates the slightest inkling to write about music theory is that I really wish there existed something like Christopher Alexander's "A Pattern Language", but for music. Music is full of lots of little "tricks" that you can find scattered about in books, but I haven't ever seen anyone try to systematically collect as many of those as they can in one place, with a clear dependency graph.)

beatonNov 18, 2013

Anyone who has read Christopher Alexander's "A Pattern Language"[1] can easily extrapolate his ideas to cubicles. Alexander pointed out that if you drop any human in an open field with a tree, within a few minutes they'll be sitting with their back to the tree, facing the sun.

We are animals. We get physically and psychologically uncomfortable when our vision is restricted and our backs are exposed. It means we are vulnerable to predators. As such, cubicles are pretty much a nightmare.

[1] Christopher Alexander wrote about architecture, but his terminology was adopted by the design patterns movement in computer science, so it's familiar to most programmers. It's one of two building architecture books I recommend to programmers - the other is Stewart Brand's "How Buildings Learn".

KaibeezyonJan 1, 2020

A city isn’t a machine.

Ambiguity isn’t sloppy in this context, it’s needed to allow room for contradictions to resolve. People make art out of trash, but the dump isn’t a museum, a museum is.

Christopher Alexander has arguably done more than any other human to help us understand why our built environments (physical and software) take the forms they take. 10 minutes flipping through A Pattern Language will clarify the underlying basis for the linked essay.

lfowlesonNov 1, 2016

My impression was that design patterns are just shared vocabulary, not something to aspire to use (other than realizing there was an existing "word" that would succinctly describe your jumbled spaghetti sentence and using that instead).

Edit: I've been wanting to read A Pattern Language for a while, but this snippet from Amazon made me chuckle. If I didn't know better, I would have given it a 50/50 shot of being from APL or GoF!

>The elements of this language are entities called patterns. Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice.

design-of-homesonMay 3, 2020

I like much of what Christopher Alexander has written, but many of the patterns he writes about in A Pattern Language are rooted in a mixture of opinion and sometimes evidence. There is an assumption that if an architectural pattern has endured for hundreds of years then its longevity is evidence enough of its universal application.

I'm particularly interested in what Alexander has to say about residential housing, and this strongly-worded opinion from A Pattern Language in particular has always intrigued me:

“In any urban area, no matter how dense, keep the majority of buildings four storeys high or less. It is possible that certain buildings should exceed this limit, but they should never be buildings for human habitation.”

Alexander goes on to argue that high rise living can be socially isolating:

“High rise living takes people away from the ground and away from the casual, everyday society that occurs on the sidewalks and streets and on the grounds and porches. It leaves them alone in their apartments. The decision to go out for some public life becomes formal and awkward; and unless there is some specific task which brings people out in the world, the tendency is to stay home, alone.”

The arguments sound quite convincing, but I’m not sure I agree entirely with the four storey limit. I think there are also cultural and social factors that contribute to whether high-rise living is a success or a failure. For example, how well are housing blocks stitched into the fabric of the urban landscape (instead of situated, isolated, outside of urban centres)?

And in some countries (e.g. Hong Kong and Singapore) high-rise living is a necessity. Having said that, it is also a mistake to assume that high-rise building is the only answer to high-density development e.g. https://imgur.com/LmJ1tTg (from a book called At Home in the City: an introduction to urban design)

mbrockonMay 19, 2016

I'm currently stuck in Riga's airport, and from this perspective, the definition of success in architecture is an interesting question.

There is a clear political vision in Alexander's work, one whose basis is participation and non-alienation. This is at odds with modern capitalism, which prevents its success.

The free software movement, too, is in a sense unsuccessful, despite a loyal and tenacious following. Still, it's worth fighting for and preserving.

Software has been in an acknowledged crisis for decades. Ordinary folks I know aren't thrilled about contemporary architecture.

Also, Alexander emphasizes that his "prescriptive" works, such as A Pattern Language, are made as examples of how grassroots human knowledge can be conceptualized and presented in a certain composable form.

jrochkind1onMar 13, 2014

This was actually proposed by by Christopher Alexander in _A Pattern Language_ originally published in 1977. He cites an MIT study from which he may have gotten the idea.


I'm actually surprised it hasn't been done before now, we've had the technology for a while. (It's not clear from the brief write-up if this one is a private company or municipal service).

The entry from A Pattern Language has stuck with me as a good idea (and because it was rather atypical for the other patterns Alexander included, this is the only one i recall that's so overtly related to IT). Alexander's version predates cell/smartphones phones as well as the powerful computers of the 21st century;. it assumes you still need some fixed 'stops' with phones next to them for people to call for dispatch. But the basic idea of routing small busses based on demand and shared rides, using computer software to make it feasible, is there.

asoloveonJan 15, 2014

It is indeed, and the book I mentioned is the prequel to his book "A Pattern Language."

But there is an enormous difference between his real idea of "design patterns" and the much more static idea that you see in, for example, the Gang of Four book. The easiest way to see this is to consider that the methods and goals of "A Pattern Language" are centered around making buildings that add to the quality of human life (and the first few patterns deal with the goal of world peace), and would be totally useless to someone building a gulag. Whereas the patterns in the GoF book are just about preventing code duplication, and would find themselves just as useful in a program for violating people's privacy as one designed with a more benign purpose.

trotzkeonJuly 9, 2008

On my desk:
Getting Real (37Signals),
Hardball (Chris Mathews),
Prioritizing Web Usability (Jakob Nielsen)

Nearby shelf:
The Design of Everyday Things,
Founders at work,
A Brief History of Time,
A Pattern Language,
Made to stick,
Web Standards Solutions,
Designing Interactions,
The Pragmatic Programmer,
The Mythical Man-Month,
Oh, the Places You'll Go!

Other good reads:
Tipping Point,
Long Tail,

kthejoker2onNov 20, 2017

Always go back to the classics

* The Design of Everyday Things
* Design for the Real World
* A Pattern Language
* Notes on the Synthesis of Form
* Never Leave Well Enough Alone
* Don't Make Me Think
* How Things Don't Work
* Usable Usability
* The Visual Display of Quantitative Information
* A Theory of Fun for Game Design

Other left-field books I've found myself going back to for design inspiration more than I would've thought

* The Death and Life of Great American Cities
* The Philosophy of Andy Warhol
* Influence by Robert Caldini
* Shakespeare: The Invention of the Human
* The Art of Looking Sideways
* Cosmos
* Operating Manual for Spaceship Earth
* The Theory of Moral Sentiments

And just specifically for computer UX, Smashing UX Design is a pretty good crash course.

harryloveonJan 22, 2013

The limited reading I've done on this subject has come from the published works of Christopher Alexander[1]. In short, he espouses a process of letting living spaces unfold (or evolve, or develop, if you like) in a way that mimics nature. He applies this living process from the rug on the floor, to the location of the doorway in the wall, to the layout of the city. I think The Nature of Order series is especially profound.

Read these:
* The Timeless Way of Building (1979)
* A Pattern Language (1977)
* The Nature of Order (vols 1-4, 2002-2005)

1. http://en.wikipedia.org/wiki/Christopher_Alexander#Published...

brudgersonJuly 22, 2016

As a reader of books, one of the good things about growing older is that the books the younger version of myself read are books that this older version of myself hasn't and there is great pleasure in rereading the books the younger version of myself read as the older person I am.

And that makes this exercise impossible for me. The books I would tell the younger version of myself to read wouldn't resonate the same way (or not at all) with that other person I used to be. Picking books that might have appealed to the younger version of myself accurately would mean picking the books I actually read -- e.g. The Fifth Discipline -- and not books that the younger version of myself tried to read but couldn't but that I read and recommend today: e.g. TAoCP.

Part of the complexity is that the world in which I read books today is radically different from that of my younger self. Today I can get a MIX interpreter from the internet [1]...there's even help on StackOverflow. My younger self couldn't because even in the time when there was an internet bandwidth was low and Google didn't exist.

Like I said it's great to pick up a good book and realize it is better than I remember when I remember it being really good, but it's hard to see how it could have been better for my younger self.

1. Neuromancer

2. Blood Meridian

3. A Pattern Language


michaelochurchonMar 10, 2013

In A Pattern Language it's stated that "There is abundant evidence to show that high buildings make people crazy", and it goes further to propose a pattern of a four-story limit for dense urban areas.

Fucking terrible idea. I almost certainly know more about mental illness than you do. What makes people crazy in urban areas is expensive real estate. It's not signing the ridiculous rent checks that does it-- that's just annoying. However, moving involuntarily-- especially when due to adverse economic circumstances-- has a huge detrimental effect on mental health, even inducing illnesses such as schizophrenia[0] which might otherwise be thought to be purely biological.

[0] Schizophrenia, like cancer and depression, probably isn't one disease. There are at least 5 different schizophrenias.

Next to genetics and drug abuse, the strongest predictor for mental illness is whether a person had to move involuntarily for economic reasons. Traditionally, this was a cause for the high rate of mental illness in urban areas. (However, the recent housing catastrophe was a mostly suburban phenomenon; we'll see in about 10 years if that results in suburban MI levels exceeding urban ones)

If you ban high-rises, real estate costs become extreme. Just look at what it costs to live in the Village if you don't believe me. Or look at San Francisco's problem. It's not nearly as dense as New York, but almost as expensive because of the NIMBY assholes.

Bad bad bad fucking idea.

spenroseonFeb 28, 2017

Two classics on design to flesh out Antirez' thoughts:

Parnas’ ”On the Criteria To Be Used in Decomposing Systems into Modules” https://www.cs.umd.edu/class/spring2003/cmsc838p/Design/crit... [PDF]

Christopher Alexander’s Notes on the Synthesis of Form http://www.hup.harvard.edu/catalog.php?isbn=9780674627512

Both get deep into how a design emerges from the relationships among what Antirez is calling "sub-tasks". Antirez refers briefly to these relationships in the "Design sacrifice section." Parnas and Alexander put them, correctly I believe, at the heart of the craft.

Parnas was a software engineering authority. Alexander went on to write A Pattern Language, from which the software community derived "design patterns" as a foundational idea.

beatonDec 30, 2016

Well, actually...

Antipatterns are on rather firmer academic ground than the guy at the airport barstool. Antipatterns are simply a negative version of design patterns. Design patterns in software started with the book Design Patterns: Elements of Reusable Object Oriented Software (aka Gang of Four or GoF), one of the greatest classic works in software engineering. GoF was itself based on the book A Pattern Language, by Christopher Alexander, a classic of the architectural field.

Alexander came up with the idea of a "pattern language" to describe patterns in architecture, a formal structure for observable phenomena. The GoF reused pattern language in a formal way to describe software patterns. Part of the pattern language describes how to implement the pattern. Antipatterns first appeared in the book Antipatterns: Refactoring Software, Architectures, and Projects in Crisis. Again, pattern language was used, including patterns for solving the problems caused by the antipattern.

So yes, this is rigorous. Not math-rigorous, but rigorous.

areboponMay 25, 2016

Christopher Alexander talked about that in A Pattern Language, and the New Urbanist architects talk about/design for/build it quite often (the usual solution is the "carriage house" or "granny flat" but more generally the idea is to restrict zoning to address patterns of activity in public spaces, thus legalizing more variation in demographics and behaviors across time and short distances). It does not really fit into the mainstream (suburban) scheme of fastidious homogenization of uses and forms.

1123581321onDec 25, 2012

I find Christopher Alexander to be a much more opinionated architect than Alexander-pattern advocates are about software, at least in A Pattern Language.

For example, one of Alexander's patterns is to make buildings not more than four stories tall. He presents compelling evidence that living in tall buildings increases rates of mental illness and stunts physical and intellectual growth of children, and explains why the 5th floor is one too many. He is not saying, "maybe you should use the four floors pattern here," he is saying, "buildings should not be this tall!"

Another example is that homes on a street should somewhat cluster together and their doors should face each other. What is the equivalent in software of shaping a street to create a few small communities this way, not as an option but simply as the better way to make a street?

I know we don't wish to be dogmatic about things like REST, but the power of Alexander's ideas come from the superiority of his specific patterns over other ideas, not just his power to organize the practice of a profession into patterns.

tptacekonMar 27, 2010

You're playing semantic games. If we accept your terms, we're adopting the GoF patterns any time we use "method_missing". You're also arguing with a straw man.

The original idea behind the "Design Patterns movement" was to provide a common language for describing recurring concepts in software design. It's the same idea behind Alexander's "A Pattern Language", which is something else you should read.

Nobody is arguing that describing things a little more rigorously is bad. But a lot of people have problems with the way "engineers" and "architects" abuse the pattern concept.

Alexander did not write a book that claimed you could build an entire city by picking out a "44. Local Town Hall" and mixing it with a "69. Public Outdoor Room". He had an idea, that the cart was dragging the horse in architecture, and attempted to use vocabulary to reframe the discussion about why specific choices were being made.

The Gang of Four introduced a minor corruption in that approach --- they had no fundamental thesis about how software should be designed, only a notion that there was folkloric knowledge that should be captured and named --- but their followers completed the corruption wholeheartedly. Instead of a language describing software, the GoF patterns became a perscription for building it.

And so we have Ruby code that includes a "singleton" module into classes, and SOAP4R code that includes "factory" classes (note again how ruby already transparently supports the abstract factory concept), and people argung that we should start "doing a little engineering" by pulling these clumsy ideas back off the shelf.

I can't argue this any better than Norvig can. In fact, I'll invoke him again by suggesting that you don't want to end up like Norvig's "opponent" in the sudoku-solving contet.

oscilloscopeonDec 5, 2012

If you're looking for architecture-inspired design manifestos for web and software design, check out A Pattern Language:



The ideas in that book helped create the notion of "design patterns" in software and engineering. The book provides hundreds of insights into the way people use their environment: marriage beds, child caves, dancing in the streets, staircases as stages, sleeping in public, spaces for self-governance...

Pattern Language is a more humanizing design philosophy than Bauhaus. It brings the emotional and sociological aspects of design together with technological complexity.

The concepts of vocabulary, syntax and grammar are applicable to programming language and API design, as well as visual design and architecture.

KaibeezyonJune 17, 2018

At root, philosophically (as opposed to practically), are you not describing this: A Pattern Language, Christoper Alexander, 1977, https://en.m.wikipedia.org/wiki/A_Pattern_Language

Yes, it’s not as blocky and snap-together as Lego, but I always considered that an artifact of the need for adaptability/evolution, flexibility to allow things to fit into environments of random complexity, and accommodating a wide array of human preferences.

“Programming”, like architecture/planning of the physical environment, seems to have turned out to need this degree of granularity, nearly indistinguishable from an organic system.

DaniFongonAug 19, 2008

Predating this is 'A Pattern Language', by Christopher Alexander. It seems that teams of < 8 are universally more productive, with ~5 being optimal (at least in Japanese Culture). 'A Pattern Language' is intriguing and useful because it uses real data, and sociological results, to deduce a theory, and makes specific suggestions for architecture and the usage of space. For example, it's suggested that people use converted homes for workspaces, due to the large variation in room size and privacy, and the presence of places to work, think, cook, eat, play, and relax. It also points out that smaller meetings and workspaces are more productive, and supports this by showing a graph of '% of people never to say anything' or 'ideas not expressed' versus participants in a meeting).

resu_nimdaonApr 1, 2014

Yeah I found the reference. I like your offbeat and rather non-sequitur style (what did that compiler analogy have to do with anything?), but I would have appreciated at least one earnest recommendation for reading up on office layout theories from the architectural perspective.

Guessing you're referring to something by Christopher Alexander, Notes on the Synthesis of Form or A Pattern Language? Those predate your timeline by a few decades but I couldn't find anything else that fit. Whatever it is, I don't think it has quite the seminality in software architecture that you imply...

raganwaldonDec 23, 2007

What anti-design patterns meme?

I write programs with Design Patterns, I catalogue new ones from my work, I use them to teach and communicate. "A Pattern Language" is one of my favourite books.

What did I say? Well, I quoted someone else telling a story about their experience:


I thought it was a good story because it illustrated two different mind sets when it comes to writing programs and what happens when they come into contact with each other. There's no preachy conclusion, it's a human interest story.

I also talked about a particular cultural approach in this post:


There, I expressed opposition to the idea of a fixed set of standard patterns.

So, now you know what I was saying.

DaniFongonNov 5, 2008

Actually, in Simcity 4, with the patch that improved pathfinding, with elongated blocks, and one way roads that inhibited stoplights, congestion measurably decreased for I and the other urban planning nerds at simtropolis who were odd enough to measure it.

Christopher Alexander mentioned an effect similar to this in "A Pattern Language". The result is due to something different though: less stoplights, less stops! In this case the problem is related to edge network flow.

cardamomoonAug 1, 2021

Recently, I've been thinking about "City Country Fingers," a way of integrating urban and agricultural land found in Christopher Alexander's "A Pattern Language." You can read his description of the pattern here: http://iwritewordsgood.com/apl/patterns/apl003.htm

With the Monks Wood rewilding in mind, I wonder how we could transition urban areas toward a city country finger pattern. Though perhaps there should be three kinds of fingers: city, agriculture, and wilderness. Alexander's "country" is just farmland, though he envisions its recreational use too.

Built withby tracyhenry


Follow me on