Effective Programs - 10 Years of Clojure
summary
Clojure targets long‑running, information‑heavy systems by defaulting to persistent immutable data structures (Bagwell‑style seek to be within 2x reads / 4x writes), using keywords as first‑class names and maps for composable information, and leveraging the JVM for performance and deployment. Runtime tangibility (REPL, eval, read/print as a wire protocol) enables shipping data and code. Dynamic typing plus protocols/multimethods reduces coupling; spec offers optional verification. The approach proves practical — real projects and machine‑listening work migrate to Clojure.
AI-written summary · about
chapters (29)
- 0:00Intro
- 2:50Design is about choices
- 3:15Programming experience
- 7:09Closure
- 8:40Databases
- 10:37Situational Programs
- 14:28Other Aspects
- 17:08Effective Program
- 17:51What is Programming
- 19:45Programming is not about itself
- 20:47Information processing dominates programs
- 23:29Database programming
- 26:18General purpose
- 27:19Problems of programming
- 29:49Problems of Clojure
- 30:47What does Clojure about
- 32:23Meta problems
- 33:33The parentheses
- 35:04The big problems
- 37:47Information
- 39:44Semantics
- 43:24Closures
- 45:23Coupling
- 50:54Language complexity
- 52:43parochialism
- 55:30type system
- 56:42names
- 57:45distribution problem
- 59:22runtime tangibility








