Gerald Sussman: Programming is (should be) fun (2022) [video]
Programming as an inherently fun, creative activity is contrasted with the often joyless reality of modern software work shaped by deadlines, agile rituals, and “Taylorist” management. Commenters reflect on Gerald Sussman’s influence through SICP, the value of languages like Lisp for teaching deep ideas about computation, and how academic approaches can rekindle a sense of craft and intellectual play. Many argue that environments which preserve autonomy, learning, and aesthetic considerations in code not only make programming more satisfying, but also lead to better, more reliable software.
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.