ドリコムのエンジニアの栗谷です。
こちらの記事では、RubyKaigi2018の1日目に発表されたセッションの中から2つを紹介したいと思います。

Exploring Internal Ruby Through C Extensions

Hash関数をRubyのC拡張として作るという話でした。

要約としては

– RubyのC拡張をするのはわりと大変
– 既存のCライブラリのラッパーとしてやるのが良い
– 拡張を作り方はCRubyの実装の仕方と同等なので、作ってみるとRubyの内部実装に詳しくなれる

Cでの関数と作り型はRubyの文法と比較的一対一対応しており、わりととっつきやすそうな印象を受けました。
RubyのHash関数はC++で全部実装したものより高速ということで、Rubyの組み込み関数はかなりよくチューニングされているようです。

A practical type system for Ruby at Stripe.

Stripe社ですでに使用されている、型チェックシステムの話でした。

例えば以下のようなチェックを行うことが出来ます:

"1" + 2 # error
"1" + 2.to_s # ok

以下から実際に試す事ができます:
https://sorbet.run/

要約としては:

– 近くOSSで公開予定
– C++で書かれており極めて高速で動作する
– 現在は社内ツールとして提供しているが非常に好評

テストはかなりしっかりされてるらしく、プロダクションコード(かなり巨大なコードベース)全体にチェックを走らせるという形でCIを回してるとの事でした。
また質疑応答の中で出た話で、Matzは型アノテーションによるチェックは20年後くらいには不要になるかもとおっしゃってはいますが、今実際に動作して使えるものも欲しいよねとのことでした。