Mon Apr 22 09:27:13 EDT 2019

FP vs. OO

OO-design works for things that are fairly arbitrary, i.e. a
consequence of working with institutional and technical constraints
(good-enough APIs, hardware limitations).  However it is very hard to
escape this kind of unstructured world once you are inside of it.

FP-design works for anything that has decomposability.  Functional
design is about high-leverage composable abstractions.  These are
expensive to create and expensive to understand, but if your problem
fits the mold, the leverage they create is substantial and the
resulting design has a level of simplicity that can seem magical.

The basic idea is that OO isn't very "logical".  OO is about how
people think about "things".  FP is about how people thing about
relations between things.