Declarative Thinking, Declarative Practice
summary
Argues that declaring intent often beats scripting mechanics, showing Make as declarative language, list comprehensions and lazy infinite ranges to avoid loops, four concrete FizzBuzz implementations (imperative, tail-return, set/range-based and a pipeline using max) with property tests that catch subtle semantic differences, a table-driven then collection-pipeline Roman-numeral builder (Bash and JVM examples), limits of pre/post contracts under concurrency, and an actor-style concurrent stack model that replaces locks.
AI-written summary · about
chapters (12)
- 0:00Start
- 1:59Real start (end of meta talk)
- 3:55'Make' as a declarative language
- 6:22Reference to Fred Brooks' The Mythical Man-Month
- 11:36Illiteracy and software developers.
- 18:17FizzBuzz
- 39:26Table-driven (instead of very redundant purely procedural code)
- 44:05The collection pipeline solution
- 51:42By search/replaces (Bash / Perl)
- 53:10Stacks
- 54:11Indirect reference to Bertrand Meyer's Eiffel book. Pre- /post conditions (asserts).
- 1:05:48Concurrency vs. pre- /post conditions
related talks
01h 01mEasy to Use, Hard to Misuse: Declarative Style in C++
28mWhat You See Is What It Does: A Structural Pattern for Legible Software
52mThink Abstractly, Work Concretely
26mInfinite Possibilities
34mHow I learned to stop worrying and love Functional Design
01h 01mThe power of composition
01h 24mProcedural Programming: It’s Back? It Never Went Away
01h 02mProcedural Programming: It Never Went Away
