Welcome to another issue of the Newsletter!
As AI coding agents write and inspect a growing share of our code, our relationship with programming languages is changing. Ruby has always been celebrated for developer happiness, flexible metaprogramming, and expressive syntax. After fifteen years of building software with it, I reflected on how developer happiness alone cannot carry the future when agents do the heavy lifting. In an automated world, clear semantic contracts matter far more than syntactic elegance. Static typing is no longer an optional luxury for cautious teams - it is becoming an indispensable safety net alongside test suites and linters.
The way we define those contracts is evolving toward direct, inline ergonomics. One year ago, Maedi Pritchard introduced LowType to bring runtime type expressions directly into standard Ruby method definitions without separate signature files. In a recent retrospective on Reddit, Maedi shared how LowType progressed over the past twelve months. The library now relies on the Prism parser for fast syntax inspection, provides zero overhead in production, introduces clean uninstallation with lowtype strip!, and adds a dedicated CLI command to export inline types directly to standard RBS files. For AI models, inline type expressions in standard Ruby DSLs are far easier to inspect in place than navigating separate out of band files, making inline typing an increasingly attractive middle ground.
PROMOTION
Level up your Ruby skills with Static Typing!
Master RBS and write more robust, maintainable, and error-free Ruby code. This course gives you practical, real-world techniques you can apply immediately to any Ruby project.
π Start building smarter Ruby software today!
|
At the same time, maintaining signatures manually is being replaced by automated inference and generator pipelines. felixefelip released rbs_infer, a static analysis tool that also uses Prism to infer RBS signatures directly from Ruby source code, analyzing method returns, variable assignments, and call sites to minimize manual typing overhead. For parser authors, ydah introduced racc-rbs-inline, embedding inline RBS annotations and semantic value types directly into Racc generated parsers without modifying Racc itself. When data comes from external contracts, cinzatech published schematrix, generating typed Ruby models, RBS files, and Sorbet RBI files straight from JSON Schema definitions.
Typed structures are also unlocking deeper runtime optimizations for Rails applications. Thomas Klemm launched lowrail, an experiment inspired by Roundhouse that analyzes existing Rails applications, identifies expressions that can be proven exact, and lowers them into specialized Ruby instruction sequences (ISeqs). Crucially, lowrail validates every generated specialization against the application test suite, demonstrating how strict type guarantees and test suites together can yield direct runtime speedups without rewriting existing application code.
Developer tooling is keeping pace with these workflows. tk0miya released ruby-lsp-rbs-inline and companion extensions, bringing instant diagnostics, hover information, and type navigation for inline RBS comments directly into Shopify Ruby LSP. For new projects, veralvx published veragem, a Bundler plugin that bootstraps modern Ruby 4.0 gems with Steep static typing, RuboCop, and 100% test coverage preconfigured. Meanwhile, regular Sorbet releases continue their steady bi-weekly delivery of compiler speedups and inference fixes, and typescope published Jo v0.14.0, expanding its typed collection library with mutable lists and pattern matching.
When type contracts can be written inline, inferred by static analysis, and lowered directly into bytecode, static typing stops being an obstacle and becomes the primary bridge between human intent, AI agents, and fast runtimes.
tl;dr
Thanks for reading, and see you next month. βοΈ
Your faithful static typing guy βοΈ
βLet's do TDD - type-driven developmentβ
You can find all the previous issues of the newsletter in my archive.
Iβd really appreciate any feedback that could help improve the newsletter. Feel free to share your thoughts using this form.
Cheers,