Rubyの静的型付けが楽しみになってきた

RubyKaigi2019で発表されていたStripeのSorbetというライブラリが楽しみ。

https://sorbet.org/

  • すでにStripeの内部で実際に使われている
  • 今年の夏に一般公開予定
  • C++で書かれており高速に動作
  • IDEサポート(定義ジャンプとコード補完、LSP準拠?)
  • Rubyコード内にDSLを使って引数と戻り値の型を記述(この辺りは賛否分かれそう)

高速に動作することとIDEサポートをコア機能として挙げていることが好印象。静的型チェックはテストと一緒に実行するならある程度時間がかかっても許容できるけど、コード補完はできるだけレスポンスが早い方がよいので。

最近Rubyにこの機能があったらもっと便利になるのになーというものがあって、1つはバイナリgemのビルド無しでRubyで作ったものを簡単に再配布できる機能、もう1つが簡単に導入できて快適に使えるIDEサポートだと思っているのだが、Sorbutないしは他の静的型付け機能で高速なLSPサポートができるようになったら後者は解決するのではないかと期待している。

公開されたらWindowsでビルドできるのかなども含めて色々と触ってみたい。