みなさんこんにちは、イノベーション推進事業本部・開発チームの伊藤です。
2024年5月15日(水)〜17日(金) に沖縄でRubyKaigi2024が開催されました。 リンカーズ株式会社はGold Sponsorとして、私を含めて6名のエンジニアがRubyKaigiに参加しました!
私はRubyKaigiに初めて参加し、とても楽しい時間を過ごすことができました。 あまりにも刺激的すぎたのか帰宅後風邪を引きました。
この記事では、印象に残ったセッションや楽しかった思い出を共有します。
自己紹介
リンカーズ株式会社で Linkers Sourcing(LS)・Linkers Marketing(LM)の開発をしています。 Ruby歴(=エンジニア歴)は3年弱です。 RubyKaigiは初参加です。
印象に残ったセッション
Writing Weird Code
TRICK2022で金賞&銀賞を取られたぺん(@tompng)さんによるKeynoteです。
このセッションでは、Wired Code(奇妙なコード)を書くための方法の紹介や、Self TRICK 2024と称して新しい作品を見せてくれました。
普段仕事でRubyを触っている範囲だと全く知り得ないコードの書き方ばかりで面白かったです。
たとえば、%
記法で文字列リテラルを書けますが、文字列を囲む文字は任意であるという特性を活かし、以下のような文字列の書き方ができます。
%%Linkers% #=> "Linkers"
また、パーサーのバグを見つけるにもエッジケースのコードを書く意味はあるというお話もなるほど、と思いました。
Self TRICK 2024は圧巻でした。 こちらはぺんさんがソースコードを公開されていますので、ぜひご覧になってください。 ちなみに私の一番のオススメは「dangerous」です。 ユーザーのクリックに対応していて、こんなことができるのかと感動しました。
会期中に発表された通り、来年のRubyKaigiではTRICK 2025が開催されるとのことです! 今からどんなWeird Codeが見られるか、楽しみで仕方ないですね。
Long journey of Ruby standard library
Hiroshi SHIBATA(@hsbt)さんによる、Rubyの標準添付ライブラリについてのセッションです。 RubyKaigi直前のリンカーズのブログでも、個人的に気になる記事として挙げていました。
このセッションでは、Rubyの標準添付ライブラリのあり方と取り組みについて興味深い話がされていました。
まず、gemの体系的な整理は発表スライドにまとめられており、これだけでも勉強になりました。
標準添付ライブラリについての説明はHiroshi SHIBATAさんの記事でも解説されているので参考になります。 https://gihyo.jp/article/2024/01/ruby3.3-bundled-gems
大きな流れとしては、Standard Libraryを減らし、Default GemsやBundled Gemを増やす方向で取り組まれているそうです。 理由としては、2つあります。
- 依存関係を小さくすることでセキュリティ対応(ライブラリ単体のアップグレード)のしやすさを向上させる
- ライブラリ単体として独立させることでRubyへの貢献しやすくし、サステナビリティを向上させる
また、セッションでは、Rubyのユーザー体験向上のための警告機能の紹介もされました。
Rubyのリリースに長く関わられている方による、「Ruby is a programmer's best friend」でいるための努力や工夫を聞くことができて、一層Rubyが好きになりました。
Exploring Reline: Enhancing Command Line Usability
Ima1zumi(@ima1zumi)さんによる、Relineについてのセッションです。
Relineは表示や入力中の行の取扱いを担当しているものです。 Ima1zumiさんの発表資料でIRBとの関係性が示されています。発表ではRelineはフロントエンド、IRBがバックエンドと表現されていました。
IRBで文字入力をする際、typoしても当たり前のように左矢印キーで戻って直したりしていますが、これもRelineがやってくれていました。
セッションでは、Relineの仕組みや、最近実装されたUndo機能の解説がされました。 Undo機能については、実際のPRを見ながらスライドを見直すと、より理解が深まりそうです。
Rubyを触り始めた日から使っているIRBについて実は何も知らなかったなとセッションを聞きながら思ったのですが、このセッションを通じて少しだけ知ることができました。
Matz Keynote
最終日の最終セッションが、リンカーズの技術顧問も務めていただいているまつもとさんのKeynoteでした。 最終セッションということもあり、会場が少し独特な、充実感に溢れているような、とても良い雰囲気で始まりました。
このセッションでは、如何にRubyがRubyコミュニティに支えられながらパフォーマンス改善を成し遂げてきたか、まだ残る課題はどんなものかについてなどが話されました。
個人的には、Ruby2(Ruby2.0とは別物)の話(アップデートというよりも、Rubyを新しく作り直すようなもの)がとても面白かったです。 自分がまだRubyの存在すら知らない時期に、そういった分岐点がありながら今のRuby、素敵なコミュニティに繋がっていると思うと感慨深い気持ちです。
また、Namespaceが実現された暁にはそれを以てRuby4.0をリリースしても良いと思っているという考えも示されました。 (というのも、Ruby2を構想していた際のアイデアの最後のパーツがNamespaceということのようです。) 会場から「おおっ!」と声が上がり、皆がワクワクした瞬間だったと思います。
こういった会場のリアルタイムの熱気やワクワクを他のRubyistと一緒に感じられることが参加する大きな意味でもあるなと感じました。
RubyKaigi全体の感想
理解できない内容も多いが、それでも面白い
正直にいえば、内容がほとんど理解できないセッションも多くありました。 しかし、普段自分がインターネット上でのみ知っている人の話を生で聞き、Ruby自体を作っている方の熱意や愛情に触れられることはとても刺激的な時間でした。
そして、もっと力をつけることでRubyKaigiはどんどん楽しめると感じたので、一層エンジニアとして精進していきたいです。
Rubyistの友達ができた
私は1日目のOfficial Partyと2日目のDrinkUpに参加しました。 私自身、あまり初対面の方と話すのが得意ではないので、申し込んだはいいものの内心ドキドキしていました。 しかしながら、いざ会場に行ってみると私と同じような方も多く、「はじめまして」から始まり技術以外の話もしながら本当に楽しい時間を過ごすことができました。 SNSでアカウント交換をした方も多くおり、またどこかで会えることが楽しみです!
来年もっとRubyKaigiを楽しむために
RubyKaigiを経験して、来年のRubyKaigiをより楽しむためにもっとやっておくといいなと思ったこともありました。
- スピーカーの方のブログを見ておく
- スピーカーの方は、普段のブログでセッションに関連する記事を出されている方が多いので、それを読んでおくとセッションがより理解できて楽しくなりそうです
- 地域のRubyコミュニティに顔を出して知り合いを増やしておく
- RubyKaigiの醍醐味はセッションのみならず多くのRubyistに会えることだと思います。地域のRubyコミュニティに普段から顔を出して知り合いを増やしておくと、RubyKaigiのセッション外の時間も最大限楽しめそうです。
さいごに
初めてのRubyKaigi、本当に楽しかったです! スピーカー、オーガナイザー、スタッフのみなさん、本当にありがとうございました。
全国のRubyistの皆様、来年、松山でお会いしましょう!