{"version":"1.0","type":"rich","provider_name":"Acast","provider_url":"https://acast.com","height":250,"width":700,"html":"<iframe src=\"https://embed.acast.com/$/65de32896569fa0017d17653/67ead0227828ca699c4e0bae?\" frameBorder=\"0\" width=\"700\" height=\"250\"></iframe>","title":"Frozen to Death (with Kevlin Henney)","description":"<p>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.</p><p><br></p><p><strong>Links:</strong></p><p><br></p><p><a href=\"https://kevlinhenney.medium.com/restrict-mutability-of-state-64c7f30f550c\" rel=\"noopener noreferrer\" target=\"_blank\">Kevlin Henney’s article – “Restrict Mutability of State”</a></p><p><a href=\"https://www.oreilly.com/library/view/97-things-every/9780596809515/\" rel=\"noopener noreferrer\" target=\"_blank\">Book – 97 Things Every Programmer Should Know</a></p><p><a href=\"https://github.com/97-things/97-things-every-programmer-should-know\" rel=\"noopener noreferrer\" target=\"_blank\">Open source repo with contributions</a></p><p><a href=\"https://github.com/sandipchitale/97-things-every-programmer-should-know-extended-edition\" rel=\"noopener noreferrer\" target=\"_blank\">Overflow collection curated by Shirish Padalkar (includes the “Restrict Mutability of State” essay)</a></p><p><a href=\"https://www.youtube.com/watch?v=H9FzAV1O7XY\" rel=\"noopener noreferrer\" target=\"_blank\">RubyConf Mini Providence Talk – Immutable Data Structures</a></p><p><a href=\"https://www.youtube.com/watch?v=vidyoLinkGoesHere\" rel=\"noopener noreferrer\" target=\"_blank\">RailsConf Talk – Immutable Objects in Practice</a></p><p><a href=\"https://bsky.app/profile/kevlin.bsky.social\" rel=\"noopener noreferrer\" target=\"_blank\">@Kevlin on Bluesky</a></p><p><a href=\"https://mastodon.social/@Kevlin\" rel=\"noopener noreferrer\" target=\"_blank\">@Kevlin@mastodon.social</a></p><p><a href=\"https://www.linkedin.com/in/kevlinhenney\" rel=\"noopener noreferrer\" target=\"_blank\">Kevlin Henney on LinkedIn</a></p><p><br></p><p><strong>Dead Code Podcast Links:</strong></p><p><br></p><p><a href=\"https://hachyderm.io/@deadcode\" rel=\"noopener noreferrer\" target=\"_blank\">Mastodon</a></p><p><a href=\"https://twitter.com/DeadCodePod\" rel=\"noopener noreferrer\" target=\"_blank\">X</a></p><p><br></p><p><strong>Jared’s Links:</strong></p><p><br></p><p><a href=\"https://supergood.social/@jared\" rel=\"noopener noreferrer\" target=\"_blank\">Mastodon</a></p><p><a href=\"https://twitter.com/jardonamron\" rel=\"noopener noreferrer\" target=\"_blank\">X</a></p><p><a href=\"https://www.twitch.tv/jardonamron\" rel=\"noopener noreferrer\" target=\"_blank\">twitch.tv/jardonamron</a></p><p><a href=\"https://jardo.dev\" rel=\"noopener noreferrer\" target=\"_blank\">Jared’s Newsletter &amp; Website</a></p><p><br></p><p><a href=\"https://docs.google.com/document/d/1hFz9l9s_qs5EJHoFF5J154_QhUZiMcr4uu-I7tEVrSQ/edit?tab=t.0\" rel=\"noopener noreferrer\" target=\"_blank\">Episode Transcript</a></p>","author_name":"Jared Norman"}