{"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/6a635c6fa7fbf9da14200ae8?\" frameBorder=\"0\" width=\"700\" height=\"250\"></iframe>","title":"No More Magic (with Nithin Bekal)","description":"<p>On this episode of Dead Code, Jared talks with Nithin Bekal, a longtime Ruby developer at Shopify, about Sapphire, his hobby programming language: a gradually typed, object-oriented language inspired by Ruby but stripped of metaprogramming magic, implemented in Rust, with features admitted only if he'd use them in production code. Nithin built much of it with LLM coding agents, even prompting from his phone after his laptop died, and now has 10,000 to 15,000 lines of Rust he doesn't fully understand, so he plans to scale back to asking agents questions rather than letting them drive, a struggle Jared relates to after throwing away his own fully vibe-coded OCaml compiler before hand-building his ML-style language, Shroom. Nithin prioritized tooling early because developer experience is what he most wants to learn, cites the LLM-fueled wave of hobby languages like Matz's Spinel and Steve Klabnik's Rue as motivation, advises aspiring language builders to just dive in since parsing is more approachable than it looks, and plans a docs generator as Sapphire's first real codebase.</p><p><br></p><p><strong>Links:</strong></p><p><br></p><p><a href=\"https://sapphire-lang.dev\" rel=\"noopener noreferrer\" target=\"_blank\">Sapphire</a></p><p><a href=\"https://github.com/matz/spinel\" rel=\"noopener noreferrer\" target=\"_blank\">Spinel</a></p><p><a href=\"https://github.com/rue-language/rue\" rel=\"noopener noreferrer\" target=\"_blank\">Rue</a></p><p><a href=\"https://nithinbekal.com\" rel=\"noopener noreferrer\" target=\"_blank\">Nithin Bekal</a></p><p><a href=\"https://craftinginterpreters.com\" rel=\"noopener noreferrer\" target=\"_blank\">Crafting Interpreters</a></p><p><a href=\"https://sorbet.org\" rel=\"noopener noreferrer\" target=\"_blank\">Sorbet</a></p><p><a href=\"https://www.ruby-lang.org\" rel=\"noopener noreferrer\" target=\"_blank\">Ruby</a></p><p><a href=\"https://www.rust-lang.org\" rel=\"noopener noreferrer\" target=\"_blank\">Rust</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/1wHQusRpKZJs8JQhf5dPvNHbhOWoV0tXJg9TTzd82GPg/edit?tab=t.0\" rel=\"noopener noreferrer\" target=\"_blank\">Episode Transcript</a></p>","author_name":"Jared Norman"}