Correct Erlang usage mandates you do not write any kind of defensive code.
Coming from C and Go, this has taken some getting used to, but I do rather like it.
What do we need to replicate this design in other languages? Supervisor trees?
isolated state or immutable shared state among concurrency primitives makes it much easier as well
Doable in Haskell due to immutability by default, channels, and cheap (cheaper than Erlang) green threads. Cloud Haskell has us started down that path, but it’s not perfect.
i was just wondering as i read that if racket’s custodian trees [http://docs.racket-lang.org/reference/eval-model.html#%28part._custodian-model%29] could enable a similar model of programming