giftee の加藤です。今日は Ruby Kaigi 2019 の Day1 に参加してきました。
各セッションのトピックはどれも興味深く、また数十分程度のセッション内では「完全に理解した」とは言えないものばかりでしたが Ruby Kaigi に参加してみた感想を、少し振り返ってみたいと思います。
Ruby の改善の過程を知れる
Day1 の "The Year of Concurrency" は、Matz さんの考えや Ruby に対する思い、Ruby 3 で実装予定の機能についてのセッションでした。
普段 Ruby を使う機会はあっても Matz さんや Ruby コミッターの方がどんな問題をかかえ、それに対してどう言語を改善していくのか、に触れる機会は少ないのですが、このセッションでは、そういった点をリアルに感じられるものでした。
今回のメイントピックは "Performance" 、"Concurrency"、"Static Typing" の 3 つでしたが、その中でも
- Guild という命名をしようとしてゲーム業界からクラス名を既に使用済みと批判が上がって、ネーミングに困っている...
- numbered parameter を、
[1, 2, 3].each { puts @1 }
のように表現したが@1
はインスタンス変数だから分かりにくい... - Type Annotations は人間がプログラムに仕事をさせられている側面があり現在は追加予定はない...
- Ruby は多くの人に使われているため、スピーディーに変更していくのが難しい...
- どんな機能も誰かが使っていて Ruby の変更を難しくさせることがある...
Matz さんはテストが嫌い...今の Keyword Argument の仕様はバグ
などなど Matz さんやコミッターの方の思いや、言語開発でぶつかる壁について知る機会になりました。また、そんな壁にぶつかりつつも we will keep moving forward を大切にする姿勢は、とても共感できたし、言語だけでなくサービスも同じだなと思いました。
この他にも、新しい Pattern Matching の記法や、Stripe 社の開発した Sorbet や、Soutaro Matsumoto さんの開発した、ruby-signature など、興味深いトピックが沢山あったので、Day2 以降に関連のセッションに参加したいと思います。
Ruby はコミュニティに支えられている
当たり前のことですが、Ruby はコミュニティメンバーに支えられていることを改めて実感しました。 giftee では、ほとんどのサービスが Ruby で実装されています。今回は Ruby Kaigi にスポンサーというかたちで参加させていただきましたが、今後は技術面でも、微力でも貢献もできるように頑張っていきたいと思います。(なかなか壁は高そうですが...)
お時間があったら giftee のブースにも遊びに来て下さい!