Ruby型チェッカーSorbetの話

Sorbetとは決済サービスで有名なStripeがRubyC++製の型チェッカーである
そもそもなぜRubyに型チェッカーが必要かというとRubyは動的型付け言語であるので実行前に型のチェックが出来ると便利である
動的静的型付けについて詳しく説明するとプログラムを実行前に型検査を行うのが静的な型付け、静的型付けであり、プログラムを実行しながら型検査を行うのが動的な型付け、動的型付けである、なので動的型付け言語に型チェッカーを使うと静的型付け言語のように実行前に型検査することが出来る
例えばRuby

puts "hello"+1

とすると文字列型と整数型で合体できないと怒られる
なので

puts "hello"+1.to_s
puts "hello"+"1"

とすると型的にOK
しかしRubyより弱い動的型付けのjavascriptでは

 <script>
    window.alert("hello" + 1);
  </script>

だとOKになってしまう、弱いと緩くて強いと厳しい
弱いと表面上はエラーが出ないが安全性に問題がでる、これを型安全という

ここからSorbetの話
rubyの2.5.2以上じゃないとダメっぽい

gem "sorbet", :group => :development  
gem "sorbet-runtime"
$budle install

もしくは

$gem install sorbet sorbet-runtime

これでSorbetが使えるようになる

$srb tc hoge.rb


で指定ファイルの型チェックが出来る
プロジェクト全体にソルベするには

$srb 

でできる