1. 5

  2. 2

    This is quite a good talk.

    There’s a lot of Rust proponents pushing the “correctness” angle of computation. I think there will always be a place for that kind of focus but, from what I gather from Sussman’s talk, a more fundamental problem is “evolvability”, not “correctness”. That is, “correctness” can only get you so far, is slow and potentially very brittle whereas thinking about systems from an “evolvability” context allows you to try and make a minimal set of assumptions to allow for more robust systems that respond to unknown situations better.

    Sussman stresses that it’s not either/or, there will be contexts when “correctness” supersedes “evolvability” (or whatever other programming model you want to use) but that evolvability is probably the better model for making large scale, scalable and robust systems.

    1. 4

      I think correctness and evolvability may be correlated. That’s part of why Haskell has become my go to language for prototypes. I can grow and mutate my code faster because I know that I’m not breaking anything in the process. When I’m working in less strict languages, I work slower to ensure that I’m not introducing regressions.