Midnote: For the Sake of Complexity
summary
Argues that most complexity is accidental and avoidable, cites concrete failures: a CORBA-style iterator that forces a network roundtrip per element, the Vacheron Constantin watch with 57 complications as a metaphor for speculative features, C/C++ basic_string’s locale/traits/allocator baggage and the allocator model’s poor practical return, calendar oddities including Feb 30 in Sweden and is_dst three-valued in struct tm, Conway’s law and code half‑life, and C++20 coroutines landing incomplete — recommends “simplicity before generality,” empirical repo analysis, and minimal complete solutions.
AI-written summary · about
chapters (22)
- 0:00Start
- 4:43Essential and Accidental
- 5:4212 Principles
- 11:13Connections between Modules
- 12:27Hard-Coded Dependencies
- 22:03Basic String
- 22:45Charge Rates
- 24:11Memory Management
- 25:45Observation
- 28:49Simplicity through Experience Rather than Generality through Guesswork
- 31:16Laws of Software Evolution
- 31:40Technical Debt
- 39:23Dependency of Context
- 44:03Gregorian Calendar
- 45:39C Standard
- 48:31Should Array Indices Start at Zero or One
- 50:11The Swedish Calendar
- 58:16Considerations of the Complexity
- 58:48Fortran
- 1:00:55Lambdas
- 1:02:29Task Library
- 1:03:02The Fibonacci Sequence








