RubyKaigi 2022 に行ってきました!

はじめまして!
MI-6株式会社のプロダクトチームで、miHubの開発にWEBエンジニアとして参加しております、千葉と申します。
2022/9/8〜10の3日間、三重県津市で開催されたRubyKaigi2022に参加してきました!
とても素晴らしいカンファレンスだったので、どんな内容だったか、どんなことを感じたかを記事にしてみたいと思います!

RubyKaigiとは?

Rubyコミュニティが主催する、日本最大級のRubyカンファレンスです!
Rubyにまつわる様々な観点での技術的な発表が行われるほか、Rubyの生みの親であるMatzを含むコアコミッターの方々が壇上に上がり、Rubyに対する質問に答える「Ruby Committers vs The World」という名物企画があります。
毎年全国各地で開催されてきましたが、前回・前々回はコロナ禍の影響でオンラインのみの開催でした。
なので、今回は実に3年ぶりのローカル開催です!🎉🎉🎉
私は初めてのローカル参加だったので、とても楽しみにしていました😊

内容・感じたこと

ここからは、3日間を振り返って印象的だったことや、思ったことなどを書いていきたいと思います。

JITや型関連の話が印象的

全体を通して、JITコンパイラやRubyの型システムにまつわる発表が多い印象でした。

JITコンパイラについては、Ruby3.1でYJITという新しいJITコンパイラが導入され、現実のアプリケーションに近い条件でも効果が確認されているようです。
3日間の発表の中には、YJITについて掘り下げるような発表のほか、独自にJITコンパイラをカスタマイズしたり、新しい中間表現を研究して性能向上を図るというものもありました。
自分の知識不足(&英語力不足)によりあまり理解できない内容も多かったのですが、Ruby3.2以降はJITがもっと能動的に使われていくのかなと感じました!
面白そうなので勉強していきたい・・・!

Rubyの型については、RBSファイルというプロダクトコードとは別のファイルに定義することができるので、既存のコードを変更することなく、思った以上にカジュアルに導入できそうだと感じました!
プロダクトコードからRBSファイルを自動生成することもできるので、早速開発の中で役立てていきたいと思います。
現状の課題としては、まだまだgemの型情報が足りていないという状況がある様です。
コントリビュートチャンスがごろごろ転がっていそうなので、見つけ次第どんどん貢献していきたいです!

現実のRubyアプリケーションでのRuby3.xの評価

2日目の「How fast really is Ruby 3.x?」という発表では、Rubyで書かれたアプリケーションであるFluentdを対象としてRuby3.x系を評価し、以前のバージョンと比較してどの程度速度が向上したかが説明されていました。
発表によると、Ruby1.9.3に比べてRuby3.2.0(YJIT使用)は2.5 〜3.1倍も速いという結果が得られたとのことでした!
これまでRuby3.xの速度向上に関してはRailsアプリで評価されることが多く、Railsの場合はRubyの外の処理時間(例えばDBとか外部との通信とか)の方が大きいために、大きな速度向上が実現された例はあまり多くなかったようです。
一方、Rubyで重い処理を実行しているFluentdの様なアプリケーションでは確かな効果が確認できたという、Rubyistとしてはとても嬉しい発表でした!
同時に、当たり前のことではありますが、アプリケーションの性能向上を考える際には、まず何がボトルネックになっているのかを分析する必要があるということを再認識できた発表でした。

Rubyの現在と未来

初日keynoteの「Ruby meets WebAssembly」や、3日目の「Fast data processing with Ruby and Apache Arrow」など、今までよりもRubyを色々な場所で使えるようにしたり、あまり使われてこなかった領域で使えるようにしていくという取り組みについての発表も印象的でした。
また、「Matz Keynote」の中では、名だたるスタートアップがRubyを使用していて、Rubyがお金という価値を生んでいること、そして今後もRubyはコミュニティによって前に進んでいくという力強いメッセージが語られていました。
また、「Ruby Committers vs The World」では、「もっとRubyを速くしたい」「他言語ユーザーに性能面の理由からRubyを選んでもらえるようにしたい」「Rubyをバグフリーにしたい」など、各コミッターからさまざまな未来の展望が語られました。
Rubyは今も主要なプログラミング言語としての地位を確立していて、今後も変わらず発展していくのだなぁと感じました!

フィヨルドブートキャンプ卒業生が2名登壇!!

私はフィヨルドブートキャンプというプログラミングスクールで勉強してWEBエンジニアになったのですが、なんと今回はそのフィヨルドブートキャンプ卒業生が2名も登壇されました!

1日目には@fugakkbnさんによる「Types teaches success, what will we do?」という発表がありました。
上でも少し触れた型のお話で、Rubyの型システムの使い方や、gemの型定義をまとめているgem_rbs_collectionへのコントリビュート方法がとてもわかりやすくまとめられていました!
発表を聞いて、Rubyの型を使いたくなったし、gemの型定義の充実に協力していきたいと感じました。

また、2日目には@ima1zumiさんによる「String Meets Encoding」という発表がありました。
CSV.read(の中で呼ばれているString#split)というコマンドについて、処理時間を分析して時間がかかっている部分を見つけ出し、CRubyの実装を修正するまでの流れがわかりやすくまとめられていました!
修正はまだドラフトとのことでしたが、CSV.readはmiHubの中でも使っているので、速くなるのはとてもありがたいです!

3日間を振り返って

冒頭に書いた通り、私は今回初めてのローカル参加だったのですが、過去にオンライン参加した時とは比べ物にならないほど多くの学びと刺激を得られ、オンライン参加とローカル参加は全く違う体験だと感じました。
参加者の方々も皆んな楽しそうで、RubyやRubyコミュニティが多くの人に愛されているということを実感しました。
同時に、自分ももっとRubyに貢献したり、Rubyコミュニティの中で積極的に活動していきたいと感じました。

また、会期中はRuby関連の友人知人との交流も図ることができました。
ここ2、3年会いたくても会うことのできなかった方々、中にはビデオ通話では随分前から面識はあるものの直に会ったことはなかった方もいて、そういう方々と直接会ってお話しできたことが本当に嬉しく、励みになりました。

総じて得るものが多く、充実した3日間を過ごすことができました。
RubyKaigi2022に関わったすべての皆様、そして快く参加を承認してくれた会社やWEBエンジニアチームの皆様、本当にありがとうございました!
来年もまた行きたいです!

最後に

MI-6株式会社では現在WEBエンジニアを募集しています!
材料開発やMIに興味のあるRubyistの皆様、是非下記リンクよりご応募ください🙌

カジュアル面談も受付中です!

また、WEBエンジニア以外のポジションも募集しております!
下記よりご確認ください。


この記事が気に入ったらサポートをしてみませんか?