Vassil Dichev
13.03.2019
Object-oriented programming makes code understandable by encapsulating moving parts. Functional programming makes code understandable by minimizing moving parts.
-- Michael Feathers
\
Classes should be immutable unless there's a very good reason to make them mutable
-- Joshua Bloch, Effective Java
Immutable objects are simple. Immutable objects are also safer. Immutable objects are always threads-safe.
-- Brian Goetz, Java Concurrency in Practice
Combinators are arguably the most reusable constructs we have in programming
-- Dean Wampler