こんにちは、Nathan Willsonです。リンカーズのバックエンドエンジニアとしてRubyで開発しています。
リンカーズ株式会社は2022年のPlatinum SponsorとしてRubyKaigiに参加しました!私はRubyKaigiに初参加し、様々な経験をしましたのでこちらで共有したいと思います。
今年のRubyKaigiは三重県津市にて3日間にわたって開催されました。
Takeaways*2
Rubyが速くなっている: 特にJITのコンパイラへの貢献が多くて、どんどん効率的になっています。既存のJITコンパイラのみならず、YJITという新コンパイラも開発中です。パフォーマンス改善がされるのは間違いありません。
バグがゼロ: まあ、実際はまだゼロではないですが、去年に比べたらRubyにあるバグはかなり減っていますし、その傾向は続いています。Jeremy Evansと他のRubyコントリビュータのおかげで、長く残っていた数々の不具合が修正されました。ありがとうございます。🙏
投資・貢献: 今年のプレゼンテーションをみるとShopifyがRubyに多大な投資をしてきたことが明らかで、これには驚きました。Shopifyは世界最大のRailsアプリを稼働していると宣言していたので、改善と修正から最大の利益を得ているのも彼らです。彼らは多大なリソースをRubyに注ぎこみ、(Rubyコアチームと一緒に)様々な側面で改善をもたらしてきました。Shopifyが最終的にRubyを利用するコミュニティに利益をもたらす形で投資しているのは、ありがたく思います。
Ruby WebAssembly: WebAssembly (Wasm)でRubyを動かせることになったので、Webブラウザから直接利用できるようになりました。初心者向けの教育的な価値が特にありそうです。より実用的なところでは、WasmのServerless functionsをRubyで実装できるのも便利でしょう。
Highlights
- TRICK 2022のイベントは間違いなくRubyKaigiのハイライトでした。びっくりするような作品が飛び出し、自分には作り方を想像できないようなコードでした。
- Yuji YokooさんはSega Mega Driveを使って発表していました。🕹️
- Rubyは死んでない 💪
- 🥩
Top 3 Presentations
以下の発表が私のお気に入りですが、他の発表も全て面白かったので見るのをおすすめします。
Heaping on the complexity! An adventure in GC Compaction(英語): RubyのGCを噛み砕いていて、本当に良い説明でした。アニメーションと説明も特にわかりやすかったです。
Implementing Object Shapes in CRuby(英語): Objectの「shape」は何か全然分からなくても速く把握できるようになり、役に立つコード例もありました。
Real World Applications with the Ruby Fiber Scheduler(英語): この発表はSamuelさんがDNSサーバを実装したいという目的の紹介から始まり、Fiber Schedulerがどのようにそれを助けたかが語られていました。また、FalconとRailsに実用的な改善を施した話も良かったです。
Bonus: Matz Keynote(日本語)でRubyの価値を思い出して良かった!❤️
Participating as a Sponsor
リンカーズ株式会社は今年Platinum SponsorとしてRubyKaigiに参加しました。リンカーズを紹介できたことのみならず、コミュニティと他のRubyを利用する会社さんに会えて良かったです。リンカーズのスポンサーブースに来ていただいた方、ありがとうございました!
Conclusion
今回が初めてのRubyKaigiへの参加でしたが、コミュニティが優しく出迎えてくれたことに本当に感動しました。
Ruby 3.2が会社で利用できることにワクワクしています。これからのRubyに対する野心的な改善が多く発表されていました。私は、より良いパフォーマンスのRubyが来ることに開発者たちは興奮していると思います。まだ開発中のプロジェクトが多いので、Ruby 3.3以降も楽しみにしています。
発表について、初参加者としてはRubyが少なくて、Cとassemblyが多いのに驚きました。多数の最適化と改善が低レイヤで起こっているのは現在のトレンドなのでしょう。我々Rubyを使う開発者は、知らず知らずのうちにそこから利益を得るのだろうと思います。今回は、Rubyをどうやって使うかということより、Rubyの仕組みについて勉強になりました。
来年行けば、準備としてやりたいこと:
- Cをちょっと勉強する
- YJITの現状について調べておく
- RubyのCHANGELONGをまた詳しく読む
RubyKaigiのオーガナイザとスタッフのみなさん、ありがとうございました。私は素晴らしい時間を過ごせました。
注釈
[1] RubyKaigiの写真
[2] takeaways: 〔会議・講義・プレゼンなどで〕覚えておいてほしいこと、重要なこと◆【直訳】家庭に持ち帰ってほしいほど重要なこと