Michael Feathers, the author of Working with Legacy Code, described in a neat way the difference between object and functional oriented programming: OO makes code understandable by encapsulating moving parts. FP makes code understandable by minimizing moving parts. Moving parts refers to those elements of an application that are stateful and change constantly. State management in any application is a […]