1. 9
  1.  

  2. 2

    Hopefully someone has followed this conversation, is there a tl;dr of the thread? I think I understand Joe’s idea, but there is a lot of back and forth about details.

    1. 4

      My take away is that he is lamenting that code itself is mutable, once written and used, if modified those changes in semantics break the program. What he is advocating for in a way is to make code immutable as well. That there should be a database of pure(ish) functions that are globally reachable, say via a hash. So that once written code remains to function as written. Something akin to global static linking. What if you could call any function residing inside of a huge git repo across all commits? What if you had access to all the world’s git repos?

      We have all seen codebases where a function needed to change args, provide enhanced functionality or even fix a bug, but a huge amount of code relied on the old buggy implementation. This is often expressed in foofunc, foofunc_ex, foofunc2, foofunc3. In a way, this is the same manifestation of the needs that Joe is trying to articulate.

      Dynamic binding of a simple name to computational semantics allows programs to become broken over time. If you statically linked to immutable code, programs could run forever. The hard part is figuring out how to evolve those statically robust systems.