沖縄開催の「RubyKaigi 2024」にQiitaエンジニア2名が参加!印象に残ったセッションは…?
こんにちは!Qiita運営です。
2024年5月15日から17日の3日間に渡って沖縄で開催された 「RubyKaigi 2024」に、Qiita株式会社から2名のエンジニアが参加し、その内1名がRubyKaigi運営のヘルパーとして活躍しました。
「RubyKaigi」 とは
「RubyKaigi」 は毎年日本で開催される、プログラミング言語 Ruby の国際カンファレンスです。今年は沖縄の那覇文化芸術劇場なはーとで行われました。Ruby の最新機能やRubyで実装したものなどの紹介を行うセッションを中心に、スポンサーブースやオフィシャルパーティーなどを通じて、Ruby コミュニティの方々との交流ができます。
RubyKaigi 2024公式サイト:https://rubykaigi.org
Qiita でも Ruby を使用しているため、「RubyKaigi」には積極的に参加していきたいと考えています。その一環として過去の「RubyKaigi」に何度か協賛しており、去年はブース出展もさせていただきました。
▶︎Qiita は RubyKaigi 2023 に Platinum Sponsor として協賛・ブース出展します!
「RubyKaigi」参加レポート
それでは3日間の会場の様子を簡単に紹介します。
Day 1
「RubyKaigi 2024」は、@tompng さんの Keynote 「Writing Weird Code」から始まりました。プログラムを実行するとそのプログラムが表示される Quine やその応用など、Rubyを用いた超絶技巧プログラミングが紹介されました。
今年は沖縄開催ということで、公式ノベルティは例年のようなTシャツではなく、「かりゆしウェア」という沖縄のアロハシャツとサンダルが配布されました。2日目以降はこのかりゆしウェアを着用して参加されている方もいました。
1日目のセッション終了後にはOfficial Party が開催され、海辺の会場で他の参加者とバーベキューを楽しみました。他の参加者とテーブルを囲みながら、 Ruby、RBS、趣味の開発、開発組織の運用に至るまで、様々な話題で盛り上がり、日が沈んでいることに気づかないほどでした。
Day 2
2日目は Samuel Williams (@ioquatix) さんの Keynote「Leveraging Falcon and Rails for Real-Time Interactivity」からスタート。インターネットの歴史から始まり、falcon と live という2つの Gem を活用してリアルタイムインタラクティブなWebアプリケーションを実装する例として、Flappy bird を実装する方法が紹介されました。
会場ではさんぴん茶やオレンジジュースなど、いくつかのドリンクが Hydration Sponsor の B/43 さんによって提供されていました。
またAfternoon Break の時間には、沖縄の果物やアイスや天ぷらなど、様々なおやつが提供されました。沖縄ではおやつに天ぷらを食べるらしいです!
2日目の最後にはLTセッションが行われました。1人5分の持ち時間で、Rubyに関する興味深い発表が次々とされていく、とても濃密な時間でした。1日目に発表されたKeynoteの @tompng さんがタイムキープを行い5分ごとに銅鑼を鳴らしていたのと、Lrama の開発をしている金子さんがものすごい早口で Ripper について語っていたのが印象的でした。
「RubyKaigi 2024」Lightning Talks 情報
Day 3
3日目の最初のセッション「Ruby Committers and the World」は、毎年恒例の Ruby コミッターの方々が壇上に集い、Ruby の機能について議論するセッションです。Ruby 3.4.0 preview1 で frozen_string_literal コメントがなくても freeze されるようになりましたが、それに対する賛否やRBS の記法、GVL、async/await、defer などについて、コミッターの方々のそれぞれの意見を聞くことができました。
スポンサーブースも 「RubyKaigi」 の醍醐味の一つです。各スポンサーブースで企画が催され、ノベルティの配布などもありました。3日間、とても賑わっていました!
またスタンプラリーでブースのスタンプを集めると、「RubyKaigi 2024」オリジナルピンバッジが3種類のうち1つもらえました。3つとも素敵なピンバッジで、選ぶ際にかなり迷った末、右のシーサーのバッジにしました。
3日目の最後はRuby開発者の Matz こと、まつもとゆきひろさんによる Keynote でした。今年は「Better Ruby」というタイトルで、パフォーマンスに関して、YJIT・メモリ・並列・ツールという4つの側面で語っていただきました。未来のRubyとして、 namespace の導入ができたら Ruby 4.0 がリリースされるかもしれないらしいです!
印象に残ったセッション
参加したメンバー2人の印象に残ったセッションをそれぞれ紹介します。また、ここで紹介するセッション以外の感想も、後日それぞれQiitaに投稿する予定です。
参加メンバー
Embedding it into Ruby code
Qiita の千葉です。今年はヘルパーとして参加しつつ、様々なセッションも聴講しました!個人的に印象に残っている…というか待ち望んでいたのは @soutaro さんの「Embedding it into Ruby code」もとい、rbs-inline です。
Embedding it into Ruby code – RubyKaigi 2024
このセッションでは、Ruby コードのコメントとして、 RBS の型注釈を書くための機能の紹介と、その背景、記法の紆余曲折について話されていました。この機能は rbs-inline として開発が行われていて、今後 RBS に取り込むことが計画されています。
Ruby と RBS が分かれていることで、書く際に面倒なのは言わずもがなのですが、コメント内で書けることでそれが緩和され、 TypeScript, YARD, Sorbet などに近い使い勝手になるので、非常に嬉しい機能です!(事前の勉強会で勝手に宣伝LTしたり、ジェネレーターを作ったりするくらいには待ち望んでいた存在です!!!)
現時点では rbs gem と別の gem (rbs-inline) として実装していて、コメントとしてどういう記法が良いかフィードバックを集めたいとのことです。実際にセッション後の休憩時間に会場で @soutaro さんを交えて、記法に関するアンケートや質問タイムなども行われていました。 (RubyKaigi はこうした廊下 Kaigi が出来るのも楽しいなあと感じます。)
他の型に関する発表 (gem_rbs_collection, typeprof) もそうなのですが、 Ruby の型周りはさらに成長させていくために、フィードバックや Contribution が求められているなと感じます。自分も Ruby で柔軟さと型による堅牢さを両立できればなと思っているので、直接の Contribution や、実例を作って紹介していくなど、どんどん貢献していこう💪という気持ちになりました。
From LALR to IELR: A Lrama’s Next Step
Qiita の山田です。僕が聴講したセッションの中で特に印象に残っているセッションは @junk0612 さんによる「From LALR to IELR: A Lrama’s Next Step」です。
From LALR to IELR: A Lrama’s Next Step – RubyKaigi 2024
このセッションは、Ruby のパーサージェネレーター Lrama の改善に関する話です。少し詳細を説明すると、Lrama は現在 LALR という解析方法を行うパーサーを生成するのですが、p 1.. || 2 のような一部の Ruby の構文がエラーになってしまうという課題があり、これを解決する方法として PSLR が存在し、それを実現するための1歩として IELR を実装されたとのことです。
PSLR や IELR は論文として公開されている手法なのですが、Ruby の改善のためにそれらの論文を読んで理解し実装まで行う、という姿に感銘を受けました。After Party にて @junk0612 さんと少しお話する機会があったのですが、論文を読み始めてから IELR を実装するまでにかなり苦労されていたようです。たとえ困難な道でも Ruby を扱うエンジニアとして貢献していく @junk0612 さんを見習い、僕も貢献していきたいと思いました。
さいごに
普段使用しているプログラミング言語の最先端の情報に触れることができた、とても刺激的な3日間でした。登壇していただいた方々や、協賛していただいたスポンサーの皆さま、そして運営の皆さま、ありがとうございました!
来年の「RubyKaigi 2025」は松山で開催されます。再び会えるのが楽しみです!