Ancestry of Polymorphism in Clojure
summary
Tracks polymorphism from biology through CPL and Simula to Clojure, showing concrete mechanics: a send-message example uses a derived keyword hierarchy plus multimethods that dispatch on a vector of values, with caching to mitigate the expensive recursive is-a checks; contrasts Java-style double dispatch and visitor pattern with Clojure’s approach; shows that protocols and records compile to JVM interfaces for faster single dispatch; recommends multimethods for evolving business logic and protocols for hot paths, and gives the 1966→1968→1988→2007→2010 timeline.
AI-written summary · about
chapters (17)
- 0:00Introduction
- 1:07Exploring polymorphism in Clojure
- 3:56What is Clojure
- 8:31Polymorphism in nature
- 11:46Polymorphism in early CS
- 18:47Ad hoc vs parametric
- 22:45Simula and runtime
- 27:30Simula’s legacy
- 28:59Lisp’s OO features
- 31:48Common Lisp Object System
- 33:13Common Lisp multi-methods
- 35:25Java double dispatch
- 38:34Polymorphism in Clojure
- 41:03Clojure multi-methods
- 44:16Clojure protocols
- 46:25Polymorphism evolution
- 47:29Revisiting CS history








