Oo Considered Harmful
summary
Claims that object orientation mixes useful high‑level ideas with low‑level harms and argues for a split: use immutable value types and builders for low‑level code and actor/active‑object style components at the high level. Compares implementations: message passing (Objective‑C), vtables, type erasure (dyno), and sum types like std::variant/pattern matching. Cites Simula history and Dijkstra’s “considered harmful”, notes Kevlin Henney’s related talk has ~160,000 views, and describes a ref‑counted immutable string plus string builder that proves the approach works.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 1:22Oo Considered Harmful
- 6:39Kevin Hennessy
- 9:12What is Oo
- 10:59History of Oo
- 17:00Example Code
- 17:54Other Languages
- 20:43Oo Features
- 23:34Virtual Dispatch
- 29:26Type Eraser
- 33:27SAM Types
- 38:35Implementation Inheritance
- 39:46Encapsulation
- 47:02Mutability
- 50:26Closing Thoughts
- 54:17Questions
related talks
01h 01mEmbracing (and also Destroying) Variant Types Safely
44mPragmatic Type Erasure: Solving OOP Problems w/ Elegant Design Pattern
36mThe language that isn't
44mThis is why we can('t) have nice things
07mThe Tragedy of the value based architecture
01h 05mThe real problem of C++
01h 03mWriting sustainable software. The how and the what!
01h 28mData-Oriented Design and C++
