This is really great <@UEDDR6L5Q>. Extremely high ...
# thinking-together
k
This is really great @Andrew Reece. Extremely high idea density. Anybody have pointers to other descriptions of Christopher Alexander's notion of unfolding? Is there more to it than not trying to "encapsulate" low-level details away? (This question is why I didn't want to hide this response away in a sub-thread.)
w
Yes, there is. The main idea of unfolding is a process of differentiating wholes into parts. (Rather than, say, assembling parts into wholes).
💡 2
a
In a programming context, I think that Casey Muratori's thoughts on API design are relevant here: 1) Semantic Compression - https://caseymuratori.com/blog_0015 2) Complexity and Granularity https://caseymuratori.com/blog_0016 3) (the rest of the posts in that series are worth reading but not directly related to the topic) 4) His "Designing and Evaluating Reusable Components" talk that I posted here a while ago - https://caseymuratori.com/blog_0024 - there's a graph that comes to mind at 7:54 (I'm currently reading Christopher Alexander's "Notes on the Synthesis of Form", so there may be more in that...)
👍 1
re Chris Alexander's 'wholeness' vs modular components: (from http://slideplayer.com/slide/4082679, talking about modular vs integral design)
❤️ 1
Something the foetus description in the permaculture article reminded me of: "Exploration-based design" - https://hero.handmade.network/episode/code/day027/#220
w
Yeah exactly, I guess in programming terms you could call unfolding a kind of "gradual refactoring"
d
There are a handful of thoughts I can contribute in this topic, but right now I'm just trying to catch up (is there a way to set a reminder for me to come back to this). One thing I'll say right now is source control (e.g. GIT). Commits, history, merging, etc. It's all about incremental "unfolding". Even refactoring done through carefully sequenced commits. Also there's going from concrete to abstract (as BV advocates in "Learnable Programming")
Honestly, I could probably start a channel or blog on links between Christopher Alexander (and architecture / design) and software / programming. It's an area I've been fascinated in and exploring for a few years now
❤️ 1
When you refactor, you introduce new differentiation that does not break the semantics / preserves the wholeness of the thing you are operating on. Side note: The ability for these SPT to exist (e.g. in your code history -- you're not just throwing out one code model for another, but leaving a clear transition) is why you should start concrete and only abstract / make code "extensible" if/when it's called for. There reverse is often done when is not understood that you can make structure preserving transformations later on in a clear way. This is also somewhat related to what Jim Coplien explains as "symmetry breaking" in code. That is, you don't to find the perfect structure or architecture in your code base to accommodate everyone possible scenario that "might" come up, but instead let it be differentiated only for what it specifically is / needs. See video link:

https://youtu.be/FAZ4GjPKmVI

s
@Dan Cook
Honestly, I could probably start a channel or blog on links between Christopher Alexander (and architecture / design) and software / programming. It's an area I've been fascinated in and exploring for a few years now
Please do! Or at least keep throwing links at us. I’ve been devouring the material in this thread over the last few days and now I’m contemplating reading Alexander’s The Nature of Order.
d
The only thing keeping from doing the same is that it's 4 very large books at over $100 each (and I barely make enough to support my family) ... Maybe I will start something, and contribute what I have found to it over time
s
(Granted, I’m lucky to live in London with access to quite a big catalog.)
d
Interesting how that should be obvious, but I wouldn't have thought of it. Maybe it's the internet culture. Next time I'm near a large public library, I'll see if they have his stuff :)
s
@Dan Cook I found this and just went through it: http://www.livingneighborhoods.org/library/empirical-findings.pdf It is a good high-level summary of the main points in The Nature of Order. However, it will leave you with two pretty big questions: 1. What are the 15 fundamental properties of living structure, and 2. How exactly does the process of unfolding work? But these are good questions that bring up plenty of results in a web search and I‘ve already selected a few more documents to go through next.
👍 1