1. yykamei's Podcast
  2. #28 RubyKaigi 2024
2024-05-20 16:44

#28 RubyKaigi 2024

RubyKaigi 2024に行ってきました。その話をしています。話している最中に Parser の話をしましたが、特に Prism の作者が書いた Parser にまつわる歴史と Prism の意義が非常によくできた記事なのでとてもおすすめです。なんと、 RubyKaigi 2024 中に翻訳記事が公開されました。

00:01
はい、kameiです。 yykamei's Podcastをやっていきます。
今回のトピックは、RubyKaigi 2024です。
先週、RubyKaigiに行ってきました。場所は沖縄です。
RubyKaigi自体は、5月15日から17日の3日間で、沖縄という場所もありまして、
前日から入り、RubyKaigiが終わった翌日に帰るという日程で、
4泊5日のなかなか長めの旅行をしてきました。
RubyKaigiは、名前から分かる通り、Rubyが好きな人たちが集まるイベントで、
これもよく知られていることなんですけど、
基本的には、Rubyのランタイム実装そのものについて話すことが多いんですよね。
他のところだと、あんまりそこまでコアな話をすることは少ないらしいというのを聞いたことがあるんですけど、
RubyKaigiはほとんど、発表者の半分ぐらいがコミッターで、
コミッターじゃない人の発表も、なぜかすごくRubyのコアの部分に触れているという、
非常にユニークなカンフォレンスですね。
RubyKaigiは、いろんな会社さんがスポンサーしていて、スポンサーの数がめちゃくちゃ多いんですよね。
まずRubyKaigi自体へのスポンサーの数が多いと。
そして、さらにスポンサーの企業の中でも、
ドリンクアップを企画してくれる会社さんもいくつかあって、
前日からもそういった企画が用意されているんですよね。
前日に入った時に、RubyKaigiの前夜祭みたいなのに参加させていただきました。
これはAndPadさんのやつですね。
浅草Rubyの人たちが集まるような前夜祭でして、
浅草Rubyって多分有名だと思うんですけど、かなり強い人が集まるコミュニティーなんですよね。
強いっていうのは、つまりRuby大好きな人たちってことですね。
Ruby大好きで、Rubyの実装についてしゃべりだしたら朝まで続くみたいな、そんな感じですかね。
で、ちょっとあんまり知り合いが、知り合いいたんですけど、
私の今所属する会社からは私しかいなくて、
なんか孤立無縁になりそうな予感がしていて、非常にビクビクしていたんですけど、
守備よく声をかけられる2人がいらっしゃったので、
その声をかけて一緒にご一緒していいですか、みたいな感じで。
で、席に座って、みたいな感じでしたね。
で、4人席なんですけど、その後に1人なんか入ってきて、
どうもどうもってやって、そしたらその人、笹田さんでしたね。
Rubyコミュニティの。笹田さんめちゃくちゃフレンドリーですね。
思ってたのと違うというか、どう思ったんだよって感じかもしれないですけど、
Rubyコミュニティってめちゃくちゃ強い人で、
言ってしまえば怖いかなって思ってたんですけど、
そんなこともなくて非常にフレンドリーで良かったですね。
そんな感じで結局そこで色々と喋ったりしながら、
03:02
なんとか過ごして、前夜祭は終えると。
で、Day1になって色々やっていくわけですよね。
キーノートがPENさん。結構IRBとかに色々とコミットしている方で、
Trickという変なコードを書いて、変なコードの美しさを競い合うみたいなイベント?
不定期なものがあるんですけど、そこで2022年に優勝?
ゴールドメダリストって書いてありますね。
という方のキーノートなんですけど、本当に感動的で、
まずキーノートの中身はすごく良いですと。
どんな風にしてこうやってきたんだよって。
変なコードを書くとね、みたいな話をしてくれるんですよね。
変なコードを書くと結局バグが見つけられると。
なるほどなっていう感じで。
変なコードは美しくも書けるということで、
Trickは不定期解散なんですけど、今回のキーノートの中で勝手にTrickを始めて、
そのTrickの内容全部がめちゃくちゃかっこいい内容なんですよね。
ソースコードも上がっていて、どこだったっけな。
沖縄の石垣だったっけな。とにかく沖縄出身だから、
沖縄になぞられた作品も見せてくれて、感動しましたね本当に。
これはもう本当にキーノートとしてはすごいみたいな内容でしたね。
その気持ちをたくばらした気持ちのまま、午後やっていくわけですよという感じで。
そうですね、全部語っていったら時間がないので喋りませんが、
その開催前から分かってたことなんですけど、やっぱりパーザーの話が多くて、
パーザーの話の中でも特にレマに関わる話が多いんですよね。
Rubyは今大パーザー時代というか、戦国時代と言っても過言ではない。
とにかく2つの勢力がバチバチに健全な競争をしている状態なんですよね。
1つがレアマ、もう1つがプリズムですね。
レアマはもともとParsYというBNFの定義を元にして、
Parser.cというファイルを生成して、Rubyのパーザーとして動くと。
もともとグニューバイソンで生成していたんですけど、
それをすると結局環境依存でなかなかシンタックスの変更とかも難しくて、
かなり難しかったと。
そんなところに、Rubyで書けばいいじゃん、
バイソンみたいなのをRubyで書けばいいじゃんということで登場したのがレアマ。
去年ぐらいにカネコさん、レアマの開発者が登壇して、
おお、なんかすごいの来たなと。
Ruby3.3でその後開発が順調にいって、
バイソンがレアマに置き換えられて、もうレアマは完全にRubyに入っていると。
一方でプリズムっていう、またもともと何だったかな。
06:03
名前ちょっと忘れちゃったんですけど、
最初別のネタバレがあったんですけど、
最初別の名前で途中でリネームされてプリズムになって、
何かっていうと、
レアマがBNFで記述された定義を基にしてパーザーを生成するのに対して、
プリズムはそのパーザーの機能自体を手で書くっていう、
手書きパーザーって言われてるんですね。
一方レアマはパーザージェネレーターって言われてると。
やってることは違うんですよね。
パーザージェネレーターは、
パーザーを生成するツールで、
プリズムは完全にパーザーですと。
手書きパーザー。
プリズムはRubyのシンタックスをちゃんと手で書いて、
こういう時だったらこうだよねみたいなのを書くという感じで書くんですけど、
やっぱり手書きであるがゆえに、
まだちょっとBNF、パーザーワイと互換性が100%ではないらしい。
ほぼほぼ互換性はあるらしいんですけど、
まだ100%通ってない部分があるということを伺っています。
ただ、プリズムはケビンニュートさんって人が書いてるんですけど、
やり方が面白いというか、
問題提起がやっぱりすごいんですよね。
しっかりこういう問題があるから、
プリズムが必要であるみたいな。
で、なんで手書きパーザーなのかみたいなのを書いてるんですけど、
そのルビー会議の中に、
Tekrachoで翻訳記事が公開されているので、
それを見ると非常にいいかなと思いますね。
プリズム側はもう結構根回しというか、
コミュニティにプリズムを使って置き換えられるよと。
例えば、RuboCopとか、
Rubyの他のランキングの方とか、
Rubyのほかのランキングの方とか、
そっちの方で、
プリズムで置き換えられるよみたいなことで、
置き換えを始めているだか、もう始まっただか、
終わっただかわからない状態なんですけど、
結構そのコミュニティとのつながりを強調して、
プリズムを展開している状態のようですね。
で、プリズムを使って、
プリズムを使って、
プリズムを使って、
プリズムを使って、
プリズムを使って、
のようですね。
で、プリズムもLiamaも結局目指しているところは、
Universal Parserと言って、
一つのパーサ、
環境とかによらずにパースできると。
JRubyとかもそうですし、
TruffleRubyもそうだし、
そもそもWindowsだとかLinuxだとか、
そういったオペレーションシステムの違いも超えると。
元々さっき言ったLiamaっていうのは、
じゃないや、
もともとのRubyはBisonで実装されているので 結構Windowsに入れるのが大変だったりするとかそういうのを聞いたことがあります
そんな感じでUniversal Parserって求められてるよねということで
両者Universal Parserを目指しているんですけどアプローチが違うが故に 健全な競争が起きている状態ということですね
09:03
話を戻すとRuby会議のスピーカーは結構Parserにまつわる話が多いんですけど
今回はRyamaを使って何かとかRyamaに何したとか そういった系の話が多くてParserの中でも
Prism勢がかなり少ない
だから今回のRuby会議だけ見るとRyamaに偏っている感じになっちゃってるんですよね
なっちゃってるんですけどEVAの伊藤さんがRubocopでLSPとPrismみたいな話をしてくれて
バランスは取れてはいないんですけどPrismの話もしてあるよという状態でした
噂によるとバランスを取るために伊藤さんに急遽Prismの話も入れてくれないかというのがあったというような話を聞きました
いずれにしろ今回はちょっとRyamaが多いんですけどただPrismも全然MATSとしてはまだまだ決めてないと
Prismにするかで行くかRyamaで行くか決めてない
ただインターフェースはもうPrismで行こうかなみたいな話が決まってるようですね
つまり決まってるのかなどうなんだろうな
今のところPrismのインターフェースとつまりPrism.Parsってやってその時に得られたリザルトはそのまま変わらないと
もしかしたら裏側が実はRyamaなんだけどリザルトは変わらないというか
Prism経由で使えるということのようです
ちょっとそこら辺の詳しいことは分からないんですけどParserの話が多いって話ですね
2日目3日目そうですねこれいろいろ話すとマジで本当に時間が足んないですよね
そうですねあと気になったことというか
本当に登壇内容は基本難しいんですよ
全部難しいので分からなくて当然という感じで
もう本当に何でしょうねこんな人たちがいるんだぐらいの思っておけばいいかなと
Ruby Committers and the Worldとかは非常にいいですね
これ何かっていうとRuby Committersが全員というかその会議に来ている全員が
壇上に上がって一つ一つ出されたお題に対して意見を交わすというような話でしたね
今年は日本語英語両方やるよって言ったけどやっぱり日本語がちょっと偏ったのかな
去年は英語メインでやるっていうことでやってて
なんか日本語勢がなかなか意見出しづらいというか
Ruby Committersも全員が全員英語できるわけじゃないのでなかなか意見が出なかったんですけど
今年は日本語でも英語でもどっちでもいいよっていうことだったので
かなり活発な議論が行われましたね
12:00
例えばフローズンストリングリテラルについてどうするとか
3.4でデフォルトフローズンストリングリテラルになるよみたいなところでは
遠藤さんがすごく残念がっているのとか非常に面白かったですね
Ruby会議自体の登壇以外で言うと
Day1でオフィシャルパーティーっていうのがあって
Day2は特にないんですけど
スポンサーの企業が有志で開いているドリンクアップがあると
3日目はアフターパーティーっていうのがあって
これはもうやっぱりスポンサーの会社さん
MOBさんだっけなが開いているもので
何でしょうね500人ぐらいは集める
どういうものかっていうと
沖縄に野蓮街っていうものがあって
一つの建物の中にたくさんの屋台
屋台じゃないな飲食店が入っていて
廊下挟むともう別の店みたいな
そういう感じの佇まいなんですよね
それ自体その建物自体全部貸し切ってやるっていうのが
アフターパーティーでした
あれもなかなかいいんですけど
やっぱり基本的には知ってる人同士で固まっちゃいますよね
そりゃそうだよねって感じですけど
その中でもちょっと知り合い探そうかなって言って
頑張った多少頑張ったところがありましたね
おかげさまでちょっとだけ今まで喋ったことないというか
知ってるけどこっちが知ってるけど
喋ったことない人と喋れて非常に良かったなって思ってます
ちなみに私はday1はオフィシャルのところに出て
オフィシャルがまたすごいんですよね
海沿いのバーベキューみたいなところで
もう完全にこれは沖縄だなみたいな
もう本当は風も強くて当然海沿いなんで
途中寒いみたいなそういうのあったんですよね
2日目はライザップさんのドリンクアップに参加してきまして
ライザップさんすごいですね
話によるとここ1年で15件ぐらいのカンファレンスに出て行って
どこでも必ずこのRuby会議みたいなドリンクアップみたいな
やってきたんですよみたいなこと言ってて
結構頑張ってるみたいですね
3日目はアフターパーティーか
そのドリンクアップとかでの私のムーブ
動き方なんですけど
基本的には話を聞くっていうのが多かったですね
話振ってみるとめちゃくちゃずっと喋る人が多いんですよね
人間って多分そうなんですよね
基本的には喋りたがりな生き物なはずなんですよね
プログラマーってコミュニケーション苦手みたいな
よく言われると思うんですけど
あれコミュニケーション苦手なわけではないんじゃないかな
っていう気がするんですよね
話を適切に振ることができれば喋ると
特にこっちが興味を持ってあげると
15:00
非常に喋ってくれますよね
何ならこっちで聞いてないことも
もうどんどん喋ってくれるので
プログラマーとかが多いカンファレンス行っても
基本的には話を聞く
話を振るっていうことができれば
結構それなりに楽しくなると思うので
例えばカンファレンスの終わりとかに
ネットワーキングパーティーとかあったりすると思うんですけど
ああいうのは積極的に出て
一人とか二人とか
ちょっと喋る輪に入れなそうな人を捕まえて
話を聞いてみると
意外にずっと喋るっていうのがあるので
おすすめですね
こんなことができるようになったのは
本当に最近なんですけど
とにかくネットワーキングパーティーとか
そういったパーティー
意外に初対面の人は話が聞けるんで
何ならXとかでも繋がって
今後も大阪になるかもしれないんで
ぜひともっていう感じですね
グルビ会議そうじてすごく良かった
当たり前ですけど良かったというか
来年は松山でやるらしいですね
愛媛県の松山ですかね
松山で松山だそうです
ちなみに私が泊まった沖縄那覇のホテルは
那覇市松山っていうところにありました
那覇市の中にも松山っていう
地域なのか地名
番地かみたいなのがあって
那覇市にも松山あったよぐらいの話ですね
これでさらに沖縄の話をしだすと
すげー時間がかかっちゃうんで
そろそろ終わりにしますか
それではまた
16:44

コメント

スクロール