📘

RubyKaigi 2022に参加しました

2022/09/12に公開

3行まとめ

  • 2022 9/8 - 9/10に三重県にて開催されたRubyKaigi 2022に現地参加しました
  • そこで感じたことを書きます
  • プログラミング言語に手を入れて改善していくということに興味を持ち、日本でそれをやるにはRubyはだいぶ良さそうな環境だと感じました

概要

2022年9/8-9/10に、三重県津市の三重県総合文化センターで開催されたRubyKaigi 2022に参加して来ました。
https://rubykaigi.org/2022/
この会議はオフラインとオンラインのハイブリッド開催でした。私は、所属している株式会社iCAREがスポンサーをしていることもあり、現地参加、スポンサーブースのスタッフも行いました。
ここまで大規模なオフラインの会議の参加は初めてでしたし、オフラインイベントへの参加も、コロナの影響もあり随分久しぶりでした。
現地で聞いた様々な講演の感想や、その他感じたことなどを書いていきます。

興味深かった講演とその感想

自分の理解不足であまり理解できなかった講演もいくつかあったのですがそんな中でも、トークが興味深かった、テーマに惹かれたなど印象に残った講演を紹介します。

Ruby meets WebAssembly

https://rubykaigi.org/2022/presentations/kateinoigakukun.html#day1
RubyKaigi最初の講演、Keynoteでしたが、めちゃくちゃ面白くコメントも盛り上がっていました。
CRubyをWebAssemblyに載せるようにしたという話なのですが、めちゃくちゃ難しそうな実装を次々とやってのけてしまっていたのが本当にすごい。
WebAssembly(Wasm)で使えるようになったことで、ブラウザや様々なエッジコンピューティングの環境でRubyが動くようになります。
スピーカーの方は学生さんだそうなのですが、Wasmをご専門に活躍されている方のようで、このような専門性を持った方が言語の拡張に参画され、言語の可能性がどんどん広がっていくというのは面白いなと感じました。

Towards Ruby 4 JIT

https://rubykaigi.org/2022/presentations/k0kubun.html#day1
https://speakerdeck.com/k0kubun/rubykaigi-2022
当日参加前に三日間のスケジュールをざっと眺めて、一つテーマにしたいなあと考えたのがこのJITでした。
JITとは - https://ja.wikipedia.org/wiki/実行時コンパイラ

実行時コンパイラ(じっこうじコンパイラ、Just-In-Time Compiler、JITコンパイラ、その都度のコンパイラ)とは、ソフトウェアの実行時にコードのコンパイルを行い実行速度の向上を図るコンパイラのこと。

JITという単語はPostgreSQLでそういうのがサポートされているらしいという話で聞いていたのですが、プログラミング言語の高速化の最前線はどのように行われているのだろうと考え、興味を持ちました。
最新のRuby3.2ではJITの一種であるYJITが進化しており、今回のRubyKaigiでも大きなテーマの一つになっていたように感じます。
YJITについてはこちらの記事が勉強になりました。
https://inside.estie.co.jp/entry/2022/08/15/153357

こちらの発表含め、RubyでのJITとその仕組みをもっと深掘りしたいなと感じました。(なんとなく雰囲気を掴んだだけで、実際に動かしたりしておらず中身をわかっていないので)
JITを触る過程でRuby <-> C言語 <-> アセンブラのいろんな世界を行き来するので、このテーマに触れることでプログラミング言語の実行というものを、より機械に近い低レイヤーから理解できるのではないか、理解したい、という思いも持ちました。
Ruby3.2ではMJITがRubyで書かれているためそこをhackして自分のJITを書けるらしく、そこも良い起点になるかもしれない、と感じました。

TRICK 2022

https://rubykaigi.org/2022/presentations/tric.html#day1
TRICKとはRubyで書かれた超絶技巧なプログラミングをみんなで鑑賞しようというお祭りですが、久々の開催に運よく参加できたようでした。
これはあれこれ説明するよりも、というか説明しようがなく、どの作品も素晴らしく純粋に鑑賞物として楽しめました。
いつか自分もこういう面白いプログラムを作成してみたい。

Matz Keynote

言わずもがな。新たなプログラミング言語をこの世に生み出し、ここまで成長させた生みの親のRubyへの愛のようのものを感じました。Rubyという言語を今後どのように発展させていくかという未来が感じられてよかったです。

Packet analysis with mruby on Wireshark - dRuby as example

https://rubykaigi.org/2022/presentations/coe401_.html#day2

パケット分析かー、自分にはよく分からなさそうだなー、と思いながらなんとなく参加したのですが、分かりやすいプレゼン、ネットワークプロトコルへの熱意を感じてとても感動したプレゼンでした。
翌日スピーカーとも挨拶させていただく機会があり、直接感想を伝えられるというオフラインの良さも前面に感じたプレゼンでした。

Create my own search engine.

https://rubykaigi.org/2022/presentations/m_seki.html#day2

ポケモンのデッキの検索を、デッキを自然言語の限定された形と捉えることで自然言語処理の手法を当てはめて構築したという発表でした。個人的には全発表中で一番好きだったかも。
検索エンジンという話題が個人的に馴染みのある、アルゴリズミックな話題だったからかもしれません。あとポケカもやったことありますし・・・。
自分も、やってみたい検索があるので、Rubyでその辺り構築してみようかな?とインスピレーションが得られる発表でした。

String Meets Encoding

https://rubykaigi.org/2022/presentations/ima1zumi.html#day3

これも先述のパケット分析と同様な感想で、ニッチな分野?ながらもそこをひたすら深掘りしていく姿勢と、その成果を分かりやすく伝えるプレゼン力にとても感動しました。
自分の興味と、そこをひたすら深掘りしていく推進力、その結果Rubyへのdraft PRを出すというところまでの行動力、見習いたいなと思いました。Rubyのパフォーマンスの向上に貢献しているというのも、私自身の持った興味と近く、このようにしてコントリビューションしていくのだなと道標をもらったように思いました。

その他感想

オフライン会議と体力

最後のKeynoteもYJITに関する話で聞きたかったのですが、体力が尽きてしまって早めに帰ることにしました。
オフライン開催はとても盛り上がってよかったのですが、慣れない環境ともはやレアイベントになってしまった旅行で、睡眠時間も短かったりして色々と難しさを感じました。
体力は大事ですね・・・

他の参加者との交流

社のメンバーで参加し、他の会社のメンバーと交流が深められたのは良かったです。
それはそれでとても貴重な機会でしたが、欲を言うともう少し他の参加者とも会話できればよかったかなーなど。
日頃からもう少しRubyのイベントなどに参加して、あらかじめ交流の種を育んでおくと自分のようなあんまりグイグイ行けないタイプでも交流できるのかもしれないなと思ったので、来年に向けて少しずつ他のイベントにも顔を出していきたいなと感じています。
あとは体力の問題もあって夜の外出とかも最低限にしていたので、こちらも体力マターではあるかもしれません。

スポンサーとして

スポンサーブースの一員として参加したのですが、他社さんのスポンサーブースのいろいろな工夫を見ていると、自分達も今後より興味を持っていただけるように工夫をしていきたいなと感じました。

低レイヤーへの興味

以前から感じていたのですが、プログラミングをするものとして、なぜプログラミング言語が動くのか、どのように動いているのか、そこでどんな工夫がされているのかについてもっと知りたいなということを強く感じました。
プログラミング言語を使うことももちろんですが、その成り立ち、それをいじって発展させていくことはとても興味を惹かれるなと感じたのでした。
JITの話のところでも書きましたが、プログラミング言語そのものに手を入れようとすることで、より機械に近いレイヤーからプログラミング言語というものを捉えられたらなと感じています。
そして、プログラミング言語そのものを学ぶために、Rubyはとても良い環境そうだなと今回のRubyKaigiを通じて感じました。
これだけハイレベルな言語に関する発表が日本で行われていて、コミュニティのオープンさや暖かさを持っているのはとても良い環境だと感じました。
日頃業務でもRubyを書いているので、まずはたくさん使うことを意識しながら、少しずつ自分の興味の核心に近づけたらなと感じています。

まとめ

他の皆さんも多く言われていますが、とてもいい会議でした。
スピーカーやオーガナイザー、スタッフの皆さんに改めて感謝を申し上げます。
自分のプログラマとしての興味を意識できた良い機会となりました。
あわよくば、来年?もしくは再来年?発表できることを目指して、精進したいと思います。まずはたくさんコードを書いたり、自分の興味を深掘りしてみたり、gemなどに小さなコントリビューションしてみたり、いろんなイベントでLTや交流をすることからかなと思っています。

Discussion