Gerald Sussman: Programming is (should be) fun (2022) [video]
Impact of SICP and Lisp
- Many commenters describe SICP and related lectures as deeply formative, changing how they think about abstraction, modularity, and computation.
- Lisp/Scheme is praised for exposing the “creative” and aesthetic side of programming, contributing to SICP’s perceived timelessness.
- Some stories highlight Lisp as both “high-level” and a low-level virtual machine language, and point to the historic “Lambda the Ultimate …” papers as influential.
Programming, Fun, and Industry Reality
- Strong tension between “programming as fun, exploration, and art” and “software engineering as bean‑counting, deadlines, and risk aversion.”
- Some argue fun and craftsmanship boost productivity and quality; others note that customers primarily care about reliability and not “fun.”
- Several blame modern process-heavy “Taylorist” management and misapplied “Agile” for squeezing out joy, though others say such management existed well before.
- Freelancing/consulting and high-pressure environments are seen as especially likely to turn coding into “just getting it done.”
Teaching Languages and CS Education
- Debate around replacing Scheme/Lisp with Python in introductory courses.
- One side laments a shift from learning about computation to learning a commercial “duct-tape” language.
- Others note Lisp is niche in practice and see value in Python’s popularity, while critics say commercial relevance shouldn’t dominate pedagogy.
- Clarifications: SICP was retired at MIT; a new Python-based intro course appeared; a separate, advanced Lisp-based course continues.
Programming as Knowledge and Expression
- Several describe code as a medium to store and clarify understanding of math, physics, or domain concepts—“executable notes” that remove ambiguity.
- Programming is framed as cumulative knowledge and decision management over long-lived systems, where readability for future humans matters as much as executability.
Tools, Frameworks, and Lost Simplicity
- Many distinguish “coding” (generally fun) from surrounding complexity (CI/CD, cloud platforms, frameworks, orchestration), which is often frustrating.
- Nostalgia for simpler workflows (“make and run”) contrasts with today’s multi-tool pipelines and “yak shaving.”
Rigor, Reliability, and Liability
- Some argue industrial software should be “boring,” like safe infrastructure, and suggest stronger liability for programmers, akin to electricians or bridge builders.
- Claims about “bug‑free” methods from historical aerospace work are raised and then challenged as overstated or poorly documented.
Vocational vs Academic Views
- One line of argument treats most programming as vocational (like welding), where pragmatic skills matter more than deep theory.
- Others counter that in any craft, curiosity and broader understanding distinguish excellent work, and that education should cultivate those capacities, not just job skills.