QCon San Francisco 2007 – Richard Gabriel – Architectures of extraordinary large, self-sustaining systems
Once again, this is not in any way a summary of Richard Gabriel’s talk but mainly some thoughts it triggered (both positive and negative although I traditionally have an easier time with negative).
The talk was basically about how will we design the future ultra large software systems. Specifically, how do we design things that are essentially too large and complex for humans to understand.
It started with a few definitions of the word design. All of which somehow failed to stress that design process is a purely human (although maybe not uniquely human) activity whose product (the design) is destined to other humans for them to understand the intent (see White Space in my Software).
Also, the speaker made very interesting analogies with biology or utility networks, although unfortunately he failed to point that neither were designed (utility networks have been designed in successive parts). Also I would have loved to see him draw a parallel with how western economies were built over the past three centuries. Utility networks and western economies had parts locally designed (although locally in our understanding probably was globally for the designer).
I was also puzzled by the expression evolutionary design. Which seems like a complete contradiction in terms, for which I will have to seek clarification from Richard Gabriel (because I was too shy to do so at the conference). I am saying this because he correctly pointed out that humans have a specific way to explore a solution space (canalized which is exactly what design is). To me evolution is another way of exploring the solution space. Random is another one.
Which should yield the conclusion that we don’t design such systems. We build them with intent but without design.