This is an interesting presentation:
Peter does a good job a simplifying the programming task down to two categories:
- stuff that can be implemented in pure functions
- stuff that has uncertainties (interaction points) that must be implemented using imperative methods
I’m not a language expert, but it feels like Elm does a good job at minimizing the “interaction points.”