Just Finished: Emergence: The Connected Lives of Ants, Brains, Cities, and Software
Is Timeless Way your first Christopher Alexander book? How are you liking it?
I read Notes on the Synthesis of Form before, which I loved the first half, the second half sounded like a formalization of the first and wasn’t that interesting.
Regarding “The Timeless Way” I like it, I haven’t read “A Pattern Language” yet, but I have the impression this one is better since it explains the concept of patterns and some examples without going to the formalization that “A Pattern Language” seems to go, which was the part I didn’t like about “Notes on the Synthesis of Form” :)
I enjoy the conceptual stuff too, although I’ve been reading Alexander’s later books and not the early ones. Pattern Language is interesting, but it’s mostly a collection of ~200 specific patterns for physical buildings.
I once read an book review that described The Timeless Way of Building as “underbaked,” A Pattern Language as “just right,” and The Nature of Order as “overbaked.” I’m inclined to agree, but overbaked is how I like it! Design patterns are already abstractions, but in TNOO Alexander really digs in and tries to determine what makes a good pattern. Here’s a thread from a couple years ago.
A Pattern Language gives you examples of patterns from the level of countries all the way down to rooms in your house. It’s filled with fascinating, humanistic reasons for each pattern. Some of my favorites:
etc etc. I recommend getting it and reading a bit at a time, like a work of poetry.
Alexander wrote the following in his preface to Richard P. Gabriel’s book Patterns of Software:
In my life as an architect, I find that the single thing which inhibits young professionals, new students most severely, is their acceptance of standards that are too low. If I ask a student whether her design is as good as Chartres, she often smiles tolerantly at me as if to say, “Of course not, that isn’t what I am trying to do. . . . I could never do that.”
Then, I express my disagreement, and tell her: “That standard must be our standard. If you are going to be a builder, no other standard is worthwhile. That is what I expect of myself in my own buildings, and it is what I expect of my students.” Gradually, I show the students that they have a right to ask this of themselves, and must ask this of themselves. Once that level of standard is in their minds, they will be able to figure out, for themselves, how to do better, how to make something that is as profound as that.
Two things emanate from this changed standard. First, the work becomes more fun. It is deeper, it never gets tiresome or boring, because one can never really attain this standard. One’s work becomes a lifelong work, and one keeps trying and trying. So it becomes very fulfilling, to live in the light of a goal like this. But secondly, it does change what people are trying to do. It takes away from them the everyday, lower-level aspiration that is purely technical in nature, (and which we have come to accept) and replaces it with something deep, which will make a real difference to all of us that inhabit the earth.
I would like, in the spirit of Richard Gabriel’s searching questions, to ask the same of the software people who read this book. But at once I run into a problem. For a programmer, what is a comparable goal? What is the Chartres of programming? What task is at a high enough level to inspire people writing programs, to reach for the stars? Can you write a computer program on the same level as Fermat’s last theorem? Can you write a program which has the enabling power of Dr. Johnson’s dictionary? Can you write a program which has the productive power of Watt’s steam engine? Can you write a program which overcomes the gulf between the technical culture of our civilization, and which inserts itself into our human life as deeply as Eliot’s poems of the wasteland or Virginia Woolf’s “The Waves”?
This passage is really beautiful and encouraging, thank you!
Sounds like I will skip A Pattern Language and go with The Nature of Order then :)
Solid post. I remember reading about a project that provided Redis clustering on top of RiakCore many years ago, before any native clustering implementation in Redis. A similar implementation would make for a great part-3 :)
this may interest you :)
Fantastic. Exactly what I was looking for.
First part is here: http://marianoguerra.org/posts/riak-core-tutorial-part-1-setup.html
didn’t wanted to post both to the main page.