LIVESENSE ENGINEER BLOG

リブセンスエンジニアの活動や注目していることを発信しています

RubyKaigi 2023 に参加しました

転職ドラフトでエンジニアをしている verdy_266 です。

リブセンスではほとんどのプロダクトが Ruby を使って実装されており、5/11-13 に開催された RubyKaigi 2023 に弊社のエンジニアメンバーで参加してきました。

この記事では、昨年に引き続き、RubyKaigi に参加したエンジニアでセッションの振り返りを行った模様をお伝えします。

昨年の記事はこちらです。

made.livesense.co.jp

転職ドラフトでブースを運営した話についてはこちらをご覧ください。

made.livesense.co.jp

今回参加したエンジニアは、以下の8名です。

マッハバイト:ayumu838, kimihiro031
転職会議  :ikea-dress
転職ドラフト:iwtn, yamitani, yk, arakawa, verdy_266

最も印象に残ったセッションは?

verdy_266:
今回は、どのセッションが印象に残ったか、事前にアンケートを取らせていただきました。その結果を見ながら話していきたいのですが……

最も印象に残ったセッション 第1位: Matz Keynote(3票)

うーんまあそうなんですけどねw Matz Keynote が印象に残るのはそれはそうって感じじゃないですか?w

kimihiro031:
Ruby の歴史の話が大半でしたよね。歴史には結構興味があったので、面白かったです。

iwtn:
言語名の候補が Ruby 以外にも挙げられていましたが、Tish にならなくて良かったですよねw
スクリプト言語なので使い捨てっぽい名前にしたかったんだと思いますが、言語名が Ruby になったことで会場もおしゃれな感じになったと。

kimihiro031:
仮に Tish という名前だったら、ノベルティがティッシュだらけだったかもしれないんですかねw でも別に RubyKaigi でもノベルティがルビーなわけじゃないかw

ikea-dress:
Flat earth believer の話も秀逸でしたよね。静的型付けの方が良いのは科学的に証明されているので、動的型付けに未来を感じている人は地球が平らだと信じているようなものだ、と揶揄されたとかw

yamitani:
Ruby 4.0 の話は聞きたかったなあ。

verdy_266:
Matz Keynote 直後に開催されていた、ANDPAD TECH TALK の公開収録にお邪魔したんです。その収録後に Ruby 4 の予定について聞いてみたんですが、Ruby 4 では従来のようにひとりがリーダーを務めるのではなく、複数に分岐していくことも考えているようでしたね。

open.spotify.com

yk:
100年後とかを見据えると良い選択だと思いますね。続けるっていうけど具体的なプランが見えないというのは長いこと言われてきたことですし。
人の寿命より長く続けていきたいなら、一度 Matz が第一線から離れるというのは方向性として妥当な気がしますね。
ただ言語デザインを誰がやるのかという意思決定は難しそうだなという気もします。

型の話

verdy_266:
最も印象に残ったセッション第2位は同率で複数のセッションが該当していました。

最も印象に残ったセッション 第2位:
Develop chrome extension with ruby.wasm
Learn Ractor
Implementing "++" operator, stepping into parse.y
Revisiting TypeProf - IDE support as a primary feature
(各1票)

一方、複数回答可の「印象に残ったセッション」はこのような結果でした。

印象に残ったセッション 第1位: Matz Keynote(4票)
印象に残ったセッション 第2位:
UTF-8 is coming to mruby/c
Revisiting TypeProf - IDE support as a primary feature
Let's write RBS!
(各3票)

型関連の話のランクインが目立ちますね。

ayumu838:
型関係が一つのメイントピックでしたよね。RBS 関連の話は面白かったです。型がつくと補完とか効きやすくなって便利そう。

yk:
REPL とか TypeProf とかは開発体験がかなり良くなりそうなので嬉しいですよね。その点 RBS は道半ばだなと思いました。
型注釈はつけてもいい派です。型を書きたくないし、別ファイルに置くのも反対です。

ikea-dress:
Closing Keynote も RBS の話でしたね。Parse Error になっていても解析できるようにするというのは普段の開発では絶対考えない内容だなと思いましたし、最終編集した箇所から復元するアイデアも面白かったです。

yamitani:
型の話とは異なりますが、アイデアが面白いといえば Multiverse Ruby ですね。名前空間のバッティングは Ruby でよくあるので、面白い試みだと思いました。

ikea-dress:
匿名モジュールの上に定数を生やすとローカルに管理できるというアイデアは面白かったですね。

普段の業務に直結する内容は聞きやすいですよね

arakawa:
僕は普段の業務に関係する内容が面白かったですね。Ruby 3.2 で対策が施された ReDoS の話を聞いて、そういえばうちのプロダクトはどう実装されてたんだっけと考えたり、Parallel Test Runner の話を聞いて、テストもっと高速化できないかなあとか考えたりしていました。Ruby のバージョンを上げて YJIT を適用するだけで速度改善が図れるというのもテンション上がりますよね。

Make Regexp#match much faster
Eliminating ReDoS with Ruby 3.2
The Resurrection of the Fast Parallel Test Runner
Optimizing YJIT’s Performance, from Inception to Production

yk:
ADBC もとても便利になりそうで良かったですよね。機械学習とかに使うような大きなデータを高速で呼び出す話ですね。

Ruby + ADBC - A single API between Ruby and DBs

arakawa:
3年前の RubyKaigi でも ADBC についてのセッションがあったのですが、そこから進捗があってテンションが上がりました。ActiveRecord と繋げずに、データ構造を工夫することでデータの呼び出しの面倒を見てくれるのは便利そうですね。
まだ実験的な感じでしたが、大きなデータを Ruby で扱えるようになる未来が来るといいですよね。

ayumu838:
大きなデータという観点では Ractor の話もありましたね。普段大きなデータを回すことが多かったので、興味深く聞いていました。

"Ractor" reconsidered
Learn Ractor

ikea-dress:
Ractor はまだ実験的でしたね。使ってもらえなくてフィードバックが得られないのは大変そうだなと思って聞いていました。
まだたくさん制限があるらしく、これからどう改善していくか気になります。

kimihiro031:
僕は KeebKaigi に参加していたので、組み込み系の話に特に興味を持ちました。UTF-8 の話は取り組みの内容自体が面白かったです。

UTF-8 is coming to mruby/c
DIY Your Touchpad Experience: Building Your Own Gestures

iwtn:
マイコンに興味を持っているので UTF-8 の話は私も興味深く聞いていました。文字コードの解説をしてくれたり、mruby と mruby/c は違うんだよという話もしてくれたりして、良かったですよね。

勇気をもらえるセッションも多かった

verdy_266:
僕は最も印象に残ったセッションとして Implementing "++" operator, stepping into parse.y を挙げたのですが、話の流れがめちゃくちゃ上手いのと同時に、処理系に全然詳しくない我々でもなんかできそうな気がしてくるのが良かったですね。

ikea-dress:
Ruby だとどうしても ++ は追加できないという結論ありきの話なわけですが、どうやって新しい構文を追加するのか、ケーススタディとして面白かったですよね。

kimihiro031:
Chrome extension の話も良かったですよね。昨年の RubyKaigi で wasm が出てきたわけですが、そこから1年経って Chrome extension の開発に使えるようになったというのは面白かったです。

Develop chrome extension with ruby.wasm

iwtn:
300MB もメモリを食ってしまうとのことで実用化はもう少し先なのかなとも思いましたが、大学3年生というのが恐ろしいですよね。しかも初めて CFP 提出して一発で通ってしまったと。

英語はみんなの課題

kimihiro031:
英語だったのであんまり咀嚼できてないのですが、The Second Oldest Bug は歴史の話だったので面白かったです。セッションだけじゃなくて、いろんな場面で英語を使う機会があり、英語頑張らなきゃと思いました。

ayumu838:
英語セッションはリスニングできなかったので、ずっと画面とかTwitterとか見てましたw

verdy_266:
個人的には、日本人の英語は比較的わかりやすいなあと思いました。図で説明してくれると理解が楽ですが、ネットミームとか使われると置いていかれがちでしんどいですよね。

arakawa:
スライドを一生懸命眺めるしかないですよねw 国際カンファレンスなので仕方ないことは理解しつつ、同時通訳で日本語バージョンも流してほしいと思ってしまいます……

来年は沖縄!

yamitani:
前回は wasm という大きなトピックがありましたが、今回はトピックの大きさでは前回には敵わなかった印象でした。前回から半年くらいしか経ってないわけですし、仕方ない面もあると思いますが。

iwtn:
わかります。中くらいのテーマがたくさんあった感じでしたね。今から来年を楽しみにしています。

arakawa:
来年は沖縄ですね。僕はプライベートで何度も沖縄に行っているレベルで沖縄が大好きなのですが、セッション聞かずに遊びにいかないように気をつけたいですw

verdy_266:
今年は各社のグルメ情報がとても充実していましたが、沖縄の観光情報お待ちしていますw


今回は前日から翌日までイベントが盛りだくさんで、前回初めて RubyKaigi に参加した身としては違いにとても驚きました。
前回以上にさまざまな方とお話しすることができ、 Kaigi effect で英語やコンピュータサイエンスの勉強を頑張ろうと思う気持ちが強まった気がします。

また来年の RubyKaigi でお会いしましょう!