

Building Robust Systems - Gerald Sussman (2007) [pdf] - owlpic
http://groups.csail.mit.edu/mac/users/gjs/6.945/readings/robust-systems.pdf

======
obtu
This is a biological metaphor that has been stretched too far. Natural
selection has produced impressive systems and ecosystems that provide some
redundancy, but humans are much better at deliberate effort and fast conscious
feedback loops, and as long as humans are writing software the way we do it
should play to human strengths.

~~~
stiff
We of course can do better then random mutations when it comes to designing
systems, but I think the point here is that we can not rewrite our systems
from scratch all the time to get the design correct each time a new constraint
or requirement appears because it is economically not feasible (not only in
terms of money, but also in terms of time and effort). As a result, we have to
incrementally build up our systems (so evolve them in some sense), and
currently, as a result, we often end up with huge spaghetti balls, just think
about what it takes to write a modern web application vs. what would it
normally take if we now designed some technology completely from scratch
having learned the lessons we learned about what the web is used for.

So, even when we do roughly know how a optimal design would look like, we
often have to do incremental development and I think finding ways to make it
easier is a valid problem at least, even if the biological metaphors aren't
directly applicable.

------
oddthink
I remember finding this a very interesting read when it first came out. It's
clearly colored Sussman's research for the years since, for example his work
with Alexey Radul on "propagators".

However, I've never found a way to make it actually work in a real system. The
cost of redundancy is high, and you absolutely need a way to pass around the
chain of configuration choices with the values. Otherwise, if something goes
wrong, or even to understand the values you're getting, you're stuck grubbing
through log files (if you're lucky) to find out what happened.

I suppose his propagator research is a way to make this easier to do, but it's
so specialized that it becomes an all-or-nothing approach, not something you
can incrementally develop towards.

