A discussion of how Sorbet's type syntax came to be, the problems it solves, and how it could improve.| blog.jez.io
Sorbet does not (yet?) have| blog.jez.io
What more would be possible if text input on phones was as fast and precise as text input on keyboards?| blog.jez.io
The other day I learned that Instruments.app can record file system activity on macOS!| blog.jez.io
A while back I picked up a tiny, folding, wireless keyboard to turn my phone into a passable laptop replacement when traveling. It's already incredible, and only one or two features are missing from iOS which would make it really amazing.| Jake Zimmerman
I love bug squash interviews.| blog.jez.io
Sorbet does not allow generic methods to have non-generic default arguments. The best alternative is to split the method into two methods, with one implemented by calling the other with the default value.| blog.jez.io
There's a neat trick for using generic methods to get around some of the limitations that invariant type members in generic classes carry.| blog.jez.io
A quick note on why I prefer Ruby's old case/when syntax over the new pattern matching syntax with case/in.| blog.jez.io
Abstract singleton class methods do not belong in a well-behaved type system. Sorbet allows them anyways, which causes problems. Here's why they're bad and what to do instead.| blog.jez.io
A solid grasp of the tools Ruby provides for inheritance, like include and extend, helps write better code. But the concepts are often learned hastily—this post revisits them in depth.| blog.jez.io
There's a bit of a clever trick with T.all and T.attached_class that allows Sorbet to infer better types for constructors of generic classes.| blog.jez.io
A series of pictures which show how Rails's ActiveSupport::Concern works to redefine what inheritance means in Ruby.| blog.jez.io
The straightforward attempt at writing a Sorbet signature for a method that calls `klass.new` doesn't work. The strategy that does work uses abstract methods, and so I'd like to walk through an extended example showing how to get such code to typecheck.| blog.jez.io
Here's how I draw the little diagrams that sometimes appear on my posts.| blog.jez.io