1. 5

As a student of both biology and computer science, I found this comparison to be fascinating. Certainly parts of the analogy could be pushed further, thus I view this paper as a starting point and not definitive, but definitely worth the read for generating ideas about designing your systems.

Two themes that stuck out to me are:

  1. the flexibility of lisp, for example the REPL and the conditional restart system of Common Lisp, seems very similar to some of the biological processes described (“exploratory behavior”, the immune system’s ability to recover, etc)
  2. “signals” or “behaviors” from FRP are also very similar to communication between biological cells.

On page 11, “The problem with correctness” is really interesting to me. I think it boils down to that “provably correct” programs only increase the robustness of a system if the system itself is purely functional, such as a compiler. So it would behove us to isolate the purely functional parts of our programs and apply a proof to them, while the other non-purely functional parts could be more dynamic. Ofc, this could be done with gradual typing, or by combining e.g. Haskell and Common Lisp into a larger system (of microservices, for example).

About 2/3 of the way through, the paper completely diverges away from the biology analogies, so I don’t really know what’s going on there..

If you’re interested primarily in this idea of “sytematic robustness”, you might want to check out Nassim Taleb’s writings on Antifragility

Stories with similar links:

  1. Building Robust Systems an essay via rubenbarroso 8 years ago | 3 points | no comments
  2. Building Robust Systems an essay via robewald 10 years ago | 2 points | no comments