Go offline with the Player FM app!
Frozen to Death (with Kevlin Henney)
Manage episode 474610219 series 3645584
In this episode of Dead Code, Jared talks with Kevlin Henney about the importance of immutability in software development, particularly as a strategy for reducing bugs related to state and concurrency. Kevlin explains that while many programming languages default to mutable state, treating state change as a privilege—not a right—can lead to more maintainable, less error-prone code. He discusses how immutability strengthens encapsulation, simplifies reasoning about systems, and avoids issues like race conditions and deadlocks, especially in multi-threaded environments. Kevlin also emphasizes that these design choices are architectural, not just implementation details, and that teams benefit from shared philosophies around state management. The conversation ties into broader programming culture and offers practical insights for developers, especially those working in languages like Ruby, where mutability is common but evolving.
Links:
Kevlin Henney’s article – “Restrict Mutability of State”
Book – 97 Things Every Programmer Should Know
Open source repo with contributions
Overflow collection curated by Shirish Padalkar (includes the “Restrict Mutability of State” essay)
RubyConf Mini Providence Talk – Immutable Data Structures
RailsConf Talk – Immutable Objects in Practice
Dead Code Podcast Links:
Mastodon
Jared’s Links:
Mastodon
Episode Transcript
Hosted on Acast. See acast.com/privacy for more information.
39 episodes
Manage episode 474610219 series 3645584
In this episode of Dead Code, Jared talks with Kevlin Henney about the importance of immutability in software development, particularly as a strategy for reducing bugs related to state and concurrency. Kevlin explains that while many programming languages default to mutable state, treating state change as a privilege—not a right—can lead to more maintainable, less error-prone code. He discusses how immutability strengthens encapsulation, simplifies reasoning about systems, and avoids issues like race conditions and deadlocks, especially in multi-threaded environments. Kevlin also emphasizes that these design choices are architectural, not just implementation details, and that teams benefit from shared philosophies around state management. The conversation ties into broader programming culture and offers practical insights for developers, especially those working in languages like Ruby, where mutability is common but evolving.
Links:
Kevlin Henney’s article – “Restrict Mutability of State”
Book – 97 Things Every Programmer Should Know
Open source repo with contributions
Overflow collection curated by Shirish Padalkar (includes the “Restrict Mutability of State” essay)
RubyConf Mini Providence Talk – Immutable Data Structures
RailsConf Talk – Immutable Objects in Practice
Dead Code Podcast Links:
Mastodon
Jared’s Links:
Mastodon
Episode Transcript
Hosted on Acast. See acast.com/privacy for more information.
39 episodes
All episodes
×Welcome to Player FM!
Player FM is scanning the web for high-quality podcasts for you to enjoy right now. It's the best podcast app and works on Android, iPhone, and the web. Signup to sync subscriptions across devices.