hey Product Blog

こだわりを持ったお商売を支えるプラットフォーム「STORES」の開発チームによる技術ブログです。

RubyKaigi 2022 に参加して、ふりかえり RubyKaigi 2022 イベントを開催しました。

こんにちは、ヘイ株式会社(2022年10月1日から STORES 株式会社と社名変更します*1)エンジニアの id:hogelog です。

Rubyist のみなさん、9月8日(木)〜9月10日(土)に開催された RubyKaigi 2022 は楽しみましたか? 私はおおいに楽しみました。今回多数の会社メンバーとともに RubyKaigi に参加し、熱も冷めやらぬ 9月12日(月)にふりかえり RubyKaigi 2022 というイベントを開催しました。

rubykaigi.org

ふりかえりRubyKaigi 2022 - connpass

STORES は RubyKaigi 2022 のプラチナスポンサーです。

ヘイ株式会社(2022年10月1日から STORES 株式会社と社名変更します)は RubyKaigi 2022 のプラチナスポンサーです。 https://rubykaigi.org/2022/sponsors/

今回ヘイからは10名のエンジニアが現地参加し、オンラインで6名のエンジニアが参加しました。

スポンサーブースは応募多数で抽選になり、惜しくも出展できませんでしたがスポンサーボード、幕間 CM などは見ていただけたでしょうか。

スポンサーブースを設置できなかったせめてものアピールにと現地参加社員は CTO 藤村がホストをする論より動くもの.fm のTシャツを来ていきました。

open.spotify.com

会社アピールはささやかなデザインなので「あのシャツ来てる人達はなんなんだ?」と思った方もいたかもしれませんが、はい、私達でした。

Kaigi 中の社員の様子

RubyKaigi において最新の技術動向をキャッチアップする、技術的チャレンジをしている人達から刺激を受ける、Rubyist 達と交流する、会社を Rubyist にアピールする、さまざまな目的があって社員が参加し、会社でスポンサーしています。ですがそれと RubyKaigi を楽しむことはなにも矛盾しません。

久しぶりの物理開催 RubyKaigi ということもあり、参加する社員エンジニアもとても楽しんでいました。ほんの一部、各社員のツイートで紹介します。

地方を味わうというのもいかにも RubyKaigi

CTO というポジションの人がコンピューターとプログラミングの面白さを強く実感するのも会社にとって非常に大事ですね

RubyKaigi はノベルティやおやつなどかわいいものが多くて素敵ですね

育休中(育児お疲れさまです!)のエンジニアもとてもうらやましがっていました

RubyKaigi 名物、川を堪能

発表のふりかえり

さてもちろん飲み食いと川だけが RubyKaigi ではありません。メインコンテンツは発表ですね。ここでは社内でも反響の大きかったり評判が良かった発表の ごく一部を 紹介させていただきます。

Ruby meets WebAssembly

Ruby meets WebAssembly - RubyKaigi 2022

Ruby meets WebAssembly - Speaker Deck

@kateinoigakukun さんによる Ruby を WebAssembly に移植したという発表だったのですが、すごかったです。 https://irb-wasm.vercel.app/ で実際に IRB を試せるのですが、まったく違和感がない IRB がブラウザの上で動いています。 一方でその移植のために欠けていたものはいくつもあったがこのような方法で解決しました、といくつもの偉業を淡々と語る kateinoigakukun さんの凄みを強く感じました。

Making *MaNy* threads on Ruby

Making *MaNy* threads on Ruby - RubyKaigi 2022

https://www.atdot.net/~ko1/activities/2022_rubykaigi2022.pdf

@ko1 さんによる、Ruby> 100k スレッドに耐えうるスレッド設計を目指すという話でした。 CRuby は 1.8 までは Ruby レイヤーで N 個のスレッドが OS レイヤーでは 1個のスレッドで動く 1:N モデルのスレッドでした。Ruby 1.9 からは Ruby レイヤーで 1 個のスレッドが OS レイヤーでも 1個のスレッドとなる 1:1 モデルに移行しました。そして *MaNy* Project とはここからさらに進み、Ruby レイヤーでは M 個に見えるスレッドが OS レイヤーでは N 個のスレッドの上でうまく動き、Ruby レベルではスレッドをいくらでも気軽に作成できるようにするという話でした。

Towards Ruby 4 JIT

Towards Ruby 4 JIT - RubyKaigi 2022

Towards Ruby 4 JIT / RubyKaigi 2022 - Speaker Deck

@k0kubun さんによる現在の CRuby に含まれている YJIT と MJIT の解説、そして MJIT の今後についてのトークでした。 MJIT の実装言語が Ruby になり、誰でも(誰でも?)自分の JIT を開発できるようになる BYOJ (Bring Your Own JIT) が始まっていくという話はとてもワクワクさせられました。今後の高速化の展望についても「Ruby にはまだこんなに最適化の余地があり、まだまだ速くできる」という非常にポジティブな意思を感じました。

TRICK 2022 (Returns)

TRICK 2022 (Returns) - RubyKaigi 2022

正直理解が及ばず解説は難しいのですが、とにかく楽しいコンテンツでした。 発表のアーカイブが公開されたらぜひ皆さんで見て楽しんでほしいです。

Matz Keynote

Matz Keynote - RubyKaigi 2022

とても Matz らしい、そんなもの開発しても意味がないと言われながらもただ作りたくて Ruby を開発してきたこと、一方で現在 Ruby が生み出している価値などについて話すキーノートでした。

Packet analysis with mruby on Wireshark - dRuby as example

Packet analysis with mruby on Wireshark - dRuby as example - RubyKaigi 2022

Packet analysis with mruby on Wireshark - dRuby as example - Speaker Deck

@shioimm さんによる、ネットワークに興味がありWireshark を使い込みたくなったので mruby を組み込んで dRuby の通信を解析してみるという話でした。なぜそれをしたのか? に対し「してみたかったから」という、Matz のキーノートでもあった「ただそれをしたかったから」というモチベーションを感じる、RubyKaigi らしい発表でした。

Ruby Committers vs The World

Ruby Committers vs The World - RubyKaigi 2022

毎度恒例の壇上の Ruby コミッターが Ruby についてあれこれ話し合う時間です。今年は感染症対策の都合上マイクまわしができないことからワイガヤ控えめの進行でしたが、it 導入への議論、@jeremyevans によるバグをゼロにする発言など、見どころ目白押しでした。

Fixing Assignment Evaluation Order

Fixing Assignment Evaluation Order - RubyKaigi 2022

Fixing Assignment Evaluation Order

@jeremyevans さんによる、定数の多重代入時の CRuby の挙動のバグ修正をひたすら丁寧に解説するという発表です。自分は別セッションを聞いていたので評判を聞いて資料を眺めた程度なのですが、とにかく1つのバグとその修正について丁寧に解説している様子を感じ、vs The World でされた「CRuby のバグをゼロにする」発言は伊達じゃないのを強く感じました。 *2

String Meets Encoding

String Meets Encoding - RubyKaigi 2022

String meets Encoding - Speaker Deck

@ima1zumi さんによる CSV.read を高速化したという話だったのですが、その高速化のために実施したプロファイリングの話などが非常に丁寧で、Ruby プログラムと CRuby 高速化のとても良い理解に繋がる内容だと感じました。仮に文字列やエンコーディングに興味がなかったとしても高速化に興味があるなら聞いて損はしない内容です。

まとめ

久しぶりの物理開催の RubyKaigi ということで参加したヘイ株式会社(2022年10月1日から STORES 株式会社と社名変更します)のエンジニアもおおいに楽しんでいましたし、みなさんの発表の内容も非常に RubyKaigi らしく楽しいものでした。 また、会場で多くの人と出会い色々な立ち話をして交流を深めたり、技術について議論するなどは久しくしていなかったコミュニケーションであり、オンラインカンファレンスでは得難い刺激と楽しさが大きなカンファレンスでした。

来年は松本でお会いしましょう!

ふりかえり RubyKaigi 2022

hey.connpass.com

と、RubyKaigi をおおいに楽しんだ直後の 9月12日(月)にふりかえり RubyKaigi 2022 というイベントを実施させていただきました。このイベントは実のところしっかり企画した上で開催したものではありませんでした。

RubyKaigi Day 1 の熱気で盛り上がって Slack にて勢いよく開催が決まる様子

こんな勢いで企画開催したふりかえりイベントでしたが、スピーカーやコミッター含む多くの方に参加していただき、とても楽しく RubyKaigi 2022 を振り返るイベントになりました。突然の無茶振りにも関わらず Zoom でパネリストとして話していただいた @shioimm @ima1zumi @sorah には特に深く感謝いたします。

次回予告: 深掘りRubyKaigi 2022 with ko1 & kateinoigakukun

正直 RubyKaigi の各発表はまだあまり理解できていないところも多く、より深く理解するためにはもう少し詳しくお話を聞いてみたいと感じるものもとても多かったです。

kateinoigakukun さんの WebAssembly の話は単に「ブラウザで Ruby が動くようになったね」では留まらない可能性も感じますし、kateinoigakukun さんは実際に WebAssemly をクロスプラットフォーム言語として移植に利用している GoodNotes でも働いていたり、聞いてみたいことはたくさんあります。

ko1 さんの *MaNy* Project の話はシンプルにいかにも Computer Science 王道の話で CRuby をどう変えていくかという話でワクワクしますし、実のところあまりちゃんと理解できていないので深く話を聞いてみたいです。

なんと、そんなあなたにうってつけのイベントがあります。

hey.connpass.com

RubyKaigi でも登壇した Ruby コミッター kateinoigakukun さんと ko1 さんをゲストとしてお招きし、CTOの藤村や Ruby コミッターの卜部、hogelog がさらに深堀りすることで RubyKaigi 2022 セッションを180% 味わい尽くすイベントが 2022年10月5日 (水) 19:00 〜 21:00 に開催されます。

深堀りするためにしっかり理解しなければ、と今から緊張感高まっていますが、それと同時にとても楽しみなイベントです。kateinoigakukun さん、ko1 さんのトーク内容をさらに深く理解したい方、CRuby 内部の話が三度の飯より好きな方などにオススメできるイベントになっているのではないでしょうか。ぜひ皆さまのご応募お待ちしております。

*1:https://www.st.inc/news/2022-08-31-hey-to-stores

*2:jeremyevans さんは自分がオーナーとなっているライブラリなどでは本当に Open Issue を放置しない、徹底した運用をされており、いつ見ても尊敬します https://github.com/jeremyevans