OOP v̶s̶ and FP
summary
Argues that OOP and FP are complementary not opposing, claiming polymorphism and encapsulation solve dependency and extension while immutability and referential transparency ease concurrency and caching. Shows concrete tradeoffs in Java 8: reworking GoF patterns functionally, using Optional instead of exceptions for parse errors, a stream zip workaround to include the previous log line, and why immutable-heavy code can pressure the GC yet enables safe parallelism. Recommends picking the tool per problem: parsers and composition favor FP, GUIs favor OOP.
AI-written summary · about
chapters (18)
- 0:00Intro
- 3:36A world of false dichotomies
- 5:55False dichotimies in software engineering
- 11:40OOP == Message Passing
- 12:49Functional Programming Myths
- 20:26Definitions
- 21:53What's the difference?
- 25:04Biggest OOP advantage: Polymorphism
- 26:24OOP vs FP Decomposition
- 28:16OOP Decomposition
- 31:29Composition(?)
- 33:22Biggest FP advantage: Immutability
- 37:33Referential transparency means no side-effects
- 38:23OOP vs FP Error Management
- 40:47OOP: FP = Imperative: Declarative
- 44:14FP version 1
- 46:29FP version 2
- 50:0285% functional language purity








