How to Get People Excited about Functional Programming • Russ Olsen & James Lewis • GOTO 2024

How to Get People Excited about Functional Programming • Russ Olsen & James Lewis • GOTO 2024

🎙 Russ Olsen, James Lewis 👥 1.1M 📅 August 21, 2025 ⏱ 40 min 👁 2K 📄 expert opinion 🧭 2026-08-03
Available in: English (current) Français

Keywords

functional programmingClojureLispteachingdesign patterns

Summary

In this interview recorded at GOTO Copenhagen 2024, Russ Olsen and James Lewis discuss functional programming, focusing on how to make it more approachable and exciting for developers. Russ shares his personal journey with functional programming, starting with the initial struggle and eventual breakthrough through building his own Lisp interpreter. He emphasizes the importance of using relatable examples and starting from the learner’s perspective rather than bombarding them with abstract concepts like monads or category theory. The conversation covers Russ’s book ‘Getting Clojure’ and his upcoming ‘The Lisp Adventure’, which teaches Lisp by implementing it in Python. They touch on the cultural aspects of Clojure, including the community’s aversion to the term ‘design patterns’. The interview includes Q&A sessions where they address misconceptions about functional programming and compare it to object-oriented programming. They also discuss the differences between mechanical and software engineering, and the role of Agile and TDD. The overall message is that functional programming can be taught effectively by focusing on practical examples and incremental benefits rather than theoretical purity.

172 words

Critical Evaluation

The interview provides valuable insights into the challenges and strategies for teaching functional programming. Russ Olsen’s experience as an author and engineer lends credibility to his advice. He correctly identifies that the primary barrier to learning functional programming is not the concepts themselves but the way they are often presented, with excessive jargon and abstract examples. His suggestion to start with familiar examples and build understanding from the ground up is pedagogically sound and aligns with constructivist learning theories. The discussion about Clojure’s cultural quirks, such as the avoidance of the term ‘design patterns’, highlights the social dimension of programming languages. However, the conversation is largely anecdotal and lacks empirical evidence or references to research on programming education. The speakers do not cite any studies or data to support their claims, which limits the scientific rigor. The title’s promise to ‘get people excited’ is addressed through practical tips, but the discussion remains at a high level without delving into specific techniques or code examples. The Q&A segments add value by addressing audience concerns, but they are brief and sometimes tangential. Overall, the content is engaging and thought-provoking, but it would benefit from more concrete examples and references to back up the assertions.

202 words

Title / Content Match

The title accurately reflects the content: the speakers discuss how to make functional programming appealing and accessible, sharing personal experiences and teaching strategies.

Quality & Reliability

7/10

The discussion is based on the speakers' extensive experience in software engineering and functional programming. They provide practical insights and anecdotal evidence, but no empirical data or formal studies are cited. The content is opinion-oriented, though grounded in recognized practices.

Chapters

Cited Sources

Concurring Sources

  • Getting Clojure — Russ Olsen's book, mentioned in the interview, which teaches Clojure and functional programming.

External References

Contribution & Novelties

The interview offers a fresh perspective on teaching functional programming by emphasizing the importance of relatable examples and incremental learning. Russ Olsen’s approach of building a Lisp interpreter to understand Lisp is a practical, hands-on method that contrasts with traditional top-down explanations. The discussion also highlights the cultural aspects of programming communities, such as Clojure’s stance on design patterns, which is rarely discussed in technical literature.

Pour aller plus loin :

120 words

Radar Profile

The radar profile shows balanced scores across information quantity, quality, technical level, and reliability, indicating a well-rounded discussion. The slightly lower technical level suggests the content is accessible to a broad audience, while the reliability score reflects the experiential nature of the insights.

Reliability 7/10