Another month, another round of updates in the Ruby static typing world! From new releases in the ecosystem to academic insights and some creative experiments, September packed in plenty of action. Let’s unpack it. 🧵
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,
We’ll start with education: Why and how static typing works in Ruby is a solid explainer video that’s worth your time if you want to deepen your understanding of Ruby’s type system and its mechanics. 🎥
Not strictly Ruby—but relevant if you want to see what Ruby-like code looks like in a fully typed language—check out this blog post: 12 things I learned writing CLI tools in Crystal. Crystal feels Ruby-esque, but with static types built in. 📖
From academia, the ICSE 2025 paper shows that combining type checking with neural bug detection software improves both performance and precision. A nice peek at how static typing complements modern bug-finding tools. 🧪
Meanwhile, Solargraph 0.57.0 landed with better performance and richer code map coverage. Highlights: expanded RBS support, faster code completion, ActiveSupport::Concern
support for class methods, and reduced false positives at strict typechecking levels. ⚡
On Reddit, @ndbroadbent shared sorbet-typescript, a tool to generate TypeScript types directly from Sorbet definitions. It’s already in use at logstruct.com, keeping docs and logs automatically in sync with evolving Sorbet types. 🔄
From the core: RBS 3.9.5 dropped, thanks to @soutaro. Changes include path list support for RBS_SKIP_TESTS
, warning suppression improvements, load path testing fixes, and backports. A steady refinement release. 🛠️
For practical Rails setups, @mgmarlow published rbs-prototype—a boilerplate combining RBS, Steep, and Rails. Even if you don’t need it directly, it’s a great reference for structuring typed Rails projects. 🏗️
Digging into experiments: raap (though older) explores using RBS definitions as RSpec test cases. It’s a unique approach that blurs the line between typing and testing. 🧪
Tooling updates kept rolling in:
- rbs-trace v0.7.0 (by Takumi Shotoku) now supports generics beyond
Array
, Range
, and Hash
. It collects runtime types and outputs them as RBS—making type generation more complete. 📜
- vscode-sorbetto v0.2.999 brought multi-root workspace support, a smoother onboarding experience, a new icon, improved LSP messages, and new settings for RBS support and ancestor requirements. 👨💻
- ruby-shale-builder v0.3.0 (by Verseth) added support for
BigDecimal
, extending its builder DSL with Sorbet + Tapioca support. 🔧
- rails-on-sorbet v0.2.0 (by Espago) updated its Rails extension for Sorbet with refinements like moving
Rails::On::Sorbet::CurrentAttributes
from a module to a class and encouraging its use over ActiveSupport::CurrentAttributes
. 🛤️
TL;DR
From RBS 3.9.5 and rbs-trace generics to Solargraph’s performance leap, sorbet-typescript bridges, stronger Rails setups, and experimental ideas like RBS as RSpec—September was full of depth and innovation. Add in IDE love from VS Code extensions, and the Ruby typing ecosystem just keeps getting sharper. ✨
—Your faithful static typing guy ✍️
Your essential Static Typing toolset
rbs
official Ruby Signature solution from the Ruby team
repo
rbs-inline
extension to rbs lets you write signatures in line with your code
repo
steep
type checker for the Ruby signatures
repo
sorbet
type signature and type checking solution designed by Stripe
repo
ruby-lsp
essential toolset and extension, which helps with Ruby development in the VS Code
repo
steep VS Code extension
steep integration with the IDE
repo
rbs syntax VS Code extension
ease the work with RBS signature files
repo
|
“Let's do TDD - type-driven development”
PROMOTION
Start writing robust Ruby software with static typing!
My RBS course equips you with essential knowledge you can apply to any Ruby-based software.
|