All programs must have side effects to be useful — can we please stop repeating this awful lie? Side effects are great, but they must not be observable from within the program. It is same with pencil-and-paper: writing out a calculation shortens the pencil lead, but the calculation isn't affected by that. If you believe programs can be proofs, you cannot think they must have side effects to be useful.
Words adapted from:
https://twitter.com/puffnfresh/status/363731296150753280
https://twitter.com/jonsterling/status/363736089334251520
https://twitter.com/kaleidic/status/363744960819888128
https://twitter.com/milessabin/status/363762121748004864