{"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/68077ce36e9e23b371dc746f?\" frameBorder=\"0\" width=\"700\" height=\"250\"></iframe>","title":"GOTO Precedence Hell (with Noratrieb)","description":"<p>In this episode of Dead Code, Jared chats with Nora, a Rust contributor, about operator precedence and the trade-offs between code clarity and conciseness across programming languages. Nora, inspired by her blog post “<em>Don’t Play the Precedence Game,”</em> explains how languages like C and Rust handle operator order differently, particularly around equality and bitwise operations, which can lead to subtle, hard-to-spot bugs. She advocates for using parentheses generously to make intent explicit, even if some consider it “noisy,” and highlights how tools like linters and formatters approach optional syntax differently. They also touch on Ruby’s permissive style, Lisp’s avoidance of precedence via prefix notation, and broader lessons for language design—ultimately agreeing that clarity should win when it matters, and that different languages cater to different developer mindsets.</p><p><br></p><p><strong>Links:</strong></p><p><br></p><p><a href=\"https://noratrieb.dev/posts/dont-play-the-precedence-game/\" rel=\"noopener noreferrer\" target=\"_blank\">“Don’t Play the Precedence Game”</a> </p><p><a href=\"https://www.rust-lang.org/\" rel=\"noopener noreferrer\" target=\"_blank\">Rust</a></p><p><a href=\"https://en.wikipedia.org/wiki/C_(programming_language)\" rel=\"noopener noreferrer\" target=\"_blank\">C Programming Language</a></p><p><a href=\"https://www.ruby-lang.org/\" rel=\"noopener noreferrer\" target=\"_blank\">Ruby</a></p><p><a href=\"https://en.wikipedia.org/wiki/Lisp_(programming_language)\" rel=\"noopener noreferrer\" target=\"_blank\">Lisp</a></p><p><a href=\"https://go.dev/\" rel=\"noopener noreferrer\" target=\"_blank\">Go</a></p><p><a href=\"https://rescript-lang.org/\" rel=\"noopener noreferrer\" target=\"_blank\">Rescript</a></p><p><a href=\"https://github.com/rust-lang/rustfmt\" rel=\"noopener noreferrer\" target=\"_blank\">rustfmt</a></p><p><a href=\"https://github.com/rust-lang/rust-clippy\" rel=\"noopener noreferrer\" target=\"_blank\">Clippy</a></p><p><a href=\"https://prettier.io/\" rel=\"noopener noreferrer\" target=\"_blank\">Prettier</a></p><p><a href=\"https://noratrieb.dev/\" rel=\"noopener noreferrer\" target=\"_blank\">Nora’s Website&nbsp; </a></p><p><a href=\"https://mastodon.social/@noratrieb\" rel=\"noopener noreferrer\" target=\"_blank\">Nora’s Mastodon</a></p><p><a href=\"https://github.com/noratrieb\" rel=\"noopener noreferrer\" target=\"_blank\">Nora’s GitHub&nbsp;</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/1HEFmU7pXI3BWrcRGuyNu1rOE5ZwKu9m2uiXDlOPYtpI/edit?tab=t.0\" rel=\"noopener noreferrer\" target=\"_blank\">Episode Transcript</a></p><p><br></p>","author_name":"Jared Norman"}