>>19
State isn't evil. State is a major source of logical errors - it is up to the programmer to ensure that the system is in the correct state before continuing the work. By maintaining a discrete boundary between pure functions and impure functions, it becomes easier to find state related bugs as one can prove the correctness of pure functions more easily than of impure functions.