Ruby で複数人で大きめのプログラムを作ってると、型が欲しいと思うことが時々あるんですが、最近型つきRuby風言語の Crystal というのがあるのを知ってちょっと触ったりしてました。
YAPC::Asia 2015 で、まつもとさんの「絶対に型を書きたくないでござる」を聞いて、「型がある Ruby ってどんな感じなんだろう?」とあらためて Crystal についてもう少し知りたいと思って、YAPC の開催期間中に発表聞かずに調べたりしてました(発表はちゃんと聞きましょう)。
Matz「絶対に型を書きたくないでござる」 #yapcasiaA
— とみたまさひろ (@tmtms) 2015, 8月 21
自分は Ruby にも型宣言欲しい #yapcasiaA
— とみたまさひろ (@tmtms) 2015, 8月 21
@_ko1 最近触ってみてる
— とみたまさひろ (@tmtms) August 21, 2015
どっかで発表するかもしれないと思ってスライド形式で書いたんですけど、直近で発表するあてがないので、発表しないまま公開します。
Crystal from Masahiro Tomita
個人的には、型の扱いとオーバーロードがかなり良さそうに感じました。名前付き引数の記法は Ruby よりも自然に思えます。
整数演算はイマイチですね。多倍長整数がないのは別にいいんですけど、0x7FFFFFFF+1 がオーバーフローしちゃったり…。
サブコマンドで、Bundler, YARD, RSpec 風のことが標準でできるのはいい感じです。
Crystal は Ruby に似てますが、あくまでも Ruby風というだけで、Ruby とは互換がない異なる言語ということは認識しておきましょう。