OO Considered Harmful
summary
Argues C++ is multi‑paradigm not primarily OO and demonstrates concrete alternatives: historical Simula examples, Smalltalk/Objective‑C message passing, and modern C++ techniques like type erasure (dyno, Eduardo Madrid), std::variant/visit, and proposals for pattern matching. Shows a Date example and an immutable string paired with a string builder to scope mutation, and compares virtual dispatch cost versus message passing (Objective‑C optimized near vtable cost). Recommends preferring immutable value types, builders and persistent data structures; the patterns are practical and performance‑viable.
AI-written summary · about
chapters (21)
- 0:00Introduction and speaker
- 1:11Considered harmful meme
- 3:00Dijkstra’s go-to essay
- 7:58What is object orientation
- 10:06Simula’s origins
- 12:52Simula’s encapsulation limits
- 15:38Smalltalk and Eiffel
- 17:43OO features comparison
- 20:48Message passing vs virtual dispatch
- 27:37Type erasure benefits
- 31:50Pattern matching proposals
- 33:19Polymorphism beyond OO
- 36:05Encapsulation in OO
- 38:15Date class example
- 41:53Immutability and value types
- 44:53Minimizing mutability
- 48:45Value-oriented design
- 50:11C++ multi-paradigm strengths
- 51:13Designing with value types
- 54:44Active objects and coroutines
- 55:49Q&A and closing








