Nothing is so painful to the human mind as a great and sudden change.
—Mary Wollstonecraft Shelley, from the novel Frankenstein
These Folks Are Crazy!
Most software developers, for most of the history of programming, have been entirely comfortable with mutation. Code that uses mutation declares a variable (perhaps with some initial value, perhaps uninitialized), then updates its value one or more times until some final result is achieved. It’s so natural of an approach (at least for those of us who came to programming via languages such as BASIC, JavaScript, and C) that we didn’t really feel the need to ...