RubyKaigi2024 Day1速報記

はじめに

こんにちは、相生です。今年もRubyKaigiに来ています。今年はなんと沖縄です。ハイサイ!

那覇空港の荷物受取所からRubyKaigiは始まっている

今年はオンライン開催がないとのことだったのでせっかくだし非参加者にも空気感を味わって欲しい……と思ったので速報を出そうかなと思います。3トラック全てのセッションを聞くのは不可能なので私自身が聞きに行ったセッションしか話せないのですが、他の人も速報を出してると思うのでそちらも参照してみるとよいかなとおもいます。

Day1からDay3まで、Parser, RBS, LSP周りの話がメインになるかと思います。

Day0

RubyKaigiは地方で開催されるので大体の人が前入りしています。そのためRubyKaigi本編より前からイベントはいくつか存在しています。

今年はクルーズ船に乗ってきました。*1

こちらが乗った船。おっきい。
既にRubyKaigiは始まっており、Lramaの話やRBSのこれから、Rubyでやりたいとぼんやり思っていることを実現するためにどういうステップを踏めばいいか相談させてもらったりしていました。*2

土砂降りだったけどみんなにこにこでよかった

Writing Weird Code

おかしなコードを書こう!ということで、TRICKとQuineの紹介がされました。speakerのぺんさんはTRICK2022で金賞を取った、変なコードを書くのがとても上手な人です。*3

普段の活動の話としてirbの型補完の話も少しあり、新機能で --type-completor というのがあるので使ってみてね〜という話がサラッとありました。型補完ありがたすぎる……

本編では短い変なコードの書き方と、どう書けばいいのかを話されました。次々と並べられるよくわからないコードと解説に翻弄されまくりでしたが、よくわからないコードも解説されるとほんのり分かった気になるので不思議ですね……

複数の意味合いを持つ記号がおかしなコードを書くのに有用なこと、文字コードや正規表現などいろんな方向から悪さができるらしいです。業務のコードでは絶対しないようにしましょう。

……というのが日常でTRICKyなコードを書こう、という話。後半は非日常のTRICKy Codeの話です。

説明をちゃんと書こうと思ったんですが圧倒的すぎたので後日の動画やスライド、Github上のコードを読むなどしてすごさを体感してください。

私のおすすめはfloralです。

The grand strategy of Ruby Parser

推しcommiterの金子さんの発表です。去年の発表から大きく開発者の増えたLrama*4のここ1年の成長っぷりが自慢されました。これからの見通しも立っており、ますます使いやすく(開発しやすく)なっていくであろうLramaに期待です。

LramaにはRBS周りでの貢献を少しずつ進めていて、私の活動もスライド中で紹介されました。

開発体験の向上や適当に書いている*5ことで分かりにくくなってしまっている現状のコードたちのドキュメントを目指している途中なので、現時点で大きく貢献出来ているわけではないと思っているんですが、こうやって発表に含まれるとかなり嬉しいですね!

このパーティでLramaのタスクを倒していくぞ!の図

Let's use LLMs from Ruby 〜 Refine RBS types using LLM 〜

黒曜さんの去年のLTから続報です。RBSは現状ほぼ手書きで書かざるを得ない*6んですが、LLMを使っていい感じに修正してもらえないか。というアプローチです。

去年の話は私がLT登壇していたのもあって*7あまり聞けていないんですが、かなり進捗が出ているように感じました。黒曜さん本人も言っていたように、実用段階までは至っていない(特にRailsには辛い)様子でしたが、もっとうまく生成できるようになればかなり夢が広がる気配がします。

登壇後に他のRBS開発者と少しお話をさせていただいて、今その場にいないRBS開発者を交えてRBSの話をする機会を設けよう。という話になりました。 実際に作っている人や積極的に貢献している方たちとリアルですぐ技術トークができるのもRubyKaigiのいいところですね。

Exploring Reline: Enhancing Command Line Usability

今泉さんのrelineについての登壇です。relineの目指している先や、現状、直近でペーストが早くなったことなど幅広く紹介されました。*8

irbとrelineが密接な関係であることは認識していましたが、どのような関係なのかはあまり詳しくなかったのでそのあたりの解説も含んでいてとても助かりました。また、他のCommand Line Editorの話も全く知らなかったので「あれだけ色々出来ているirbでサポートしていないもの、意外とあるんだ……」と驚きました。

これからどんどん互換性を高めていく予定らしいので、今後サポートされていく変数や機能を追いながらinputrcで自分だけの最強のirbを用意したいですね。

今日はおわり、また明日

常にセッションを見続けていると大変なのでいくつかのセッションを休憩してスポンサーブースを回ったり、周りにいるRubyistと交流を深めたりしています。今日もこのあとはOffiial Partyがあるので様々な話ができるのが本当に楽しみです。

おまけ

ドワンゴ社からの参加者といっしょにランチを食べてきました。ステーキやさんです。私が食べたのはハンバーグだけど……

ステーキ ヒカル 松山店 ハンバーグ200g

*1:ESMさんの提供です!ありがとう永和さん

*2:Thanks spikeolaf, p_ck_, udzura and hasumikin!

*3:当時訊いたら2ヶ月くらいで実装したと言っていて、本当によく分からなかったです

*4:私も含まれています!

*5:金子さん談

*6:もしくはorthosesなどの自動生成ライブラリを用いる

*7:前後ともに緊張や疲労でいっぱいいっぱいでした……

*8:もちろん型推論についても!