RubyKaigi 2022にオンラインで参加しました

## はじめに
[RubyKaigi 2022](https://rubykaigi.org/2022/)にオンラインで参加しました。
まつもとさんから、ブログを書くまでがRubyKaigiだと言われたので、聴いたトークの感想をひとことずつ書いていこうと思います。

## [1日目](https://rubykaigi.org/2022/schedule/#day1)
### [Ruby meets WebAssembly](https://rubykaigi.org/2022/presentations/kateinoigakukun.html#day1)
WebAssenbly、今まであんま気にしてなかったけど、発表を聴いて俄然気になってきました。
ちょっとサイズが大きいですが、JSのようにHTMLのscriptタグで書けたりするし、DOMの操作もできたりしてました。
Ruby3.2でサポートされるということなので、楽しみです。

### [Making \*MaNy* threads on Ruby](https://rubykaigi.org/2022/presentations/ko1.html#day1)
`MaNy`というのが100k以上のことだと聞いて、超びっくりしました。今までやってきたプログラミングとは全く違う書き方をする時代が来るかもしれません。怖いようなおもしろいような…。

### [Types teaches success, what will we do?](https://rubykaigi.org/2022/presentations/fugakkbn.html#day1)
rbsファイルがないGemを必要になった人が書いて登録できる[gem_rbs_collection](https://github.com/ruby/gem_rbs_collection)という取り組みと、かんたんな書き方の紹介をしてくれていました。このrbsファイルでエディタの補完が強力になったりするようで、自社プロジェクトで導入することも考えたくなるかも…そのときにGemにないrbsをプロジェクトで書いてもそれを渡せるとのことで、なかなかよさそうに感じました。
まずは自分のジョークGemに入れたりして体験してみねば…そんなふうに感じました。

## [Tools for Providing rich user experience in debugger](https://rubykaigi.org/2022/presentations/ono-max.html#day1)
知らないうちにdebuggerが大変リッチになっていました。Chromeの開発者ツールで使えたり、VSCodeで使えたり…。でも一番びっくりしたのは…巻き戻しして実行できることでした。戻るって普通のデバッガにないと思ったのですが！

## [Towards Ruby 4 JIT](https://rubykaigi.org/2022/presentations/k0kubun.html#day1)
Rubyの高速化のためのJITの話で…Cやらアセンブラやら不案内なところでなんともいえませんが…着実に実験を重ねられて、少しずつWebアプリでの速度向上についても進展が見られているようで、大変期待しています。

## [TRICK 2022 (Returns)](https://rubykaigi.org/2022/presentations/tric.html#day1)
TRICK、いつもながらヤバかったです…。[1位](https://github.com/tric/trick2022/blob/master/01-tompng/entry.rb)はアニメーションのために自ら破壊したコードを誤り訂正で復元して実行するquine…。
- [ソースコード](https://github.com/tric/trick2022)

## [2日目](https://rubykaigi.org/2022/schedule/#day2)
### [Matz Keynote](https://rubykaigi.org/2022/presentations/yukihiro_matz.html#day2)
コミュニティが大事だという話と、会議のファシリテーターとかissueのトリアージとか、そういう開発周辺のサポートが欲しいという話もされていていました。自分は全く得意ではないのでアレですが…いろんな貢献があるので、自分のできることをやっていこうと思います。

### [Do Pure Ruby Dream of Encrypted Binary Protocol?](https://rubykaigi.org/2022/presentations/yu_suke1994.html#day2)

[ラクマさんの参加レポート](https://qiita.com/yoshiki-0428/items/8102ceb4694c978ed9f0#do-pure-ruby-dream-of-encrypted-binary-protocol)でQUICの話をしていたのだということを思い出し、QUICとはなんぞやというのを[QUICをゆっくり解説(1)：QUICが標準化されました](https://eng-blog.iij.ad.jp/archives/10039)でざっくり理解しました…。
QUICはUDPに載っていて、UDPのデータはアプリケーション層がやることが多いので、Rubyで扱うこともある…ということでしょうかも。発表されていた感じではスピードに難があるようでした。JITが利きそうな気もするけど、その話していたっけかな…？

### [Make RuboCop super fast](https://rubykaigi.org/2022/presentations/koic.html#day2)
RuboCopを爆速にするという話で、最近サーバーモードが追加されたそうです。簡単に試したのですが、たしかに一回起動しておくと次回以降めちゃくちゃ応答が速くなっていました。エディタのプラグインなどがより快適になりそうです…！

### [Method-based JIT compilation by transpiling to Julia](https://rubykaigi.org/2022/presentations/Kenta%20Murata.html#day2)
Rubyは動的言語だけど、大量のデータを繰り返し扱うときにその機構が性能のボトルネックになっちゃうので…それを抑制して速くしようということのようでした。Rubyの書き味でこういったことも書けるようになってくると、ちょっとありがたいです。
([Wantedlyさんの参加記](https://www.wantedly.com/companies/wantedly/post_articles/431275)を参考にさせてもらいました。)

### [How fast really is Ruby 3.x?](https://rubykaigi.org/2022/presentations/fujimotos.html#day2)
ログと加工をするfluentdで使ったときの速度向上について発表されていました。ここは確かにJITが効きそうですもんね。

### [Packet analysis with mruby on Wireshark - dRuby as example](https://rubykaigi.org/2022/presentations/coe401_.html#day2)

WireShark、セキュリティの話をするときによく使ってました。おもしろいですよね…。途中でネットワークトラブルで聴けなくなってしまったので、YouTubeで公開されるのを楽しみにしてます。

### [Ruby Committers vs The World](https://rubykaigi.org/2022/presentations/rubylangorg.html#day2)
[番号指定パラメータ](https://docs.ruby-lang.org/ja/latest/doc/news=2f2_7_0.html#:~:text=%E3%81%A8%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82-,%E7%95%AA%E5%8F%B7%E6%8C%87%E5%AE%9A%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF,-%E7%95%AA%E5%8F%B7%E6%8C%87%E5%AE%9A%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF)の話が出てました。自分もあんまり`_2`とか好きじゃないなぁ…。国分さんの言ってた`it`も使えるようになると自分もうれしいかも。


## [3日目](https://rubykaigi.org/2022/schedule/#day3)

### [error_highlight: user-friendly error diagnostics](https://rubykaigi.org/2022/presentations/mametter.html#day3)
error_highlightとか、普段の生活が地味に潤ってめちゃくちゃありがたい…のに、ウチ、まだ使えない…。
がんばります！

### [RBS generation framework using Rack architecture](https://rubykaigi.org/2022/presentations/_ksss_.html#day3)
型定義ファイルがありふれてくれそうな未来が見えて、よかった…。自分もちょっと使ってみよう。
https://github.com/ksss/orthoses

### [Let's collect type info during Ruby running and automaticall](https://rubykaigi.org/2022/presentations/pink_bangbi.html#day3)
実行して型情報を集める…。テストの実行で集めて…とかしたら、メンテナンスが少し楽に運用できるかも。
なんか、rbs、遠い話だと思ってたら、いろんな方法が提案されてて、すぐソコになってた感。すご！

### [Why is building the Ruby environment hard?](https://rubykaigi.org/2022/presentations/hsbt.html#day3)

「何もしてないのに壊れた」じゃなくて「何もしてないから壊れた」
周りの環境が変わってくから。なるほど…そのとおり。
ウチもちゃんとついていかんと。
それはちゃんと見回るということだけど、今は広かったり、気づいてなかったりしたところもたまに出てきたりして、結構大変…。
徐々に整理して、粛々とやれるようにしていこ…。

### [The Better RuboCop World to enjoy Ruby](https://rubykaigi.org/2022/presentations/nay3.html#day3)
「RuboCopのルールの変更提案ができる人は少ない」はたしかに…。多くの人はそのまま従ってしまってコードを読みにくくしてしまうことも…。CIで止めちゃう絶対したがって欲しい:cop:と、改善の可能性を指摘する:cop:2人にするとかそういうのもたしかにありかもしんない。いろいろ考えられそう…。

### [Fast data processing with Ruby and Apache Arrow](https://rubykaigi.org/2022/presentations/ktou.html#day3)
Pythonのデータフレームのようなもので、Rubyっぽいものもできてきてだいぶ扱いやすくなってそうで、試してみたくなってきました。
https://github.com/heronshoes/red_amber

### [Fixing Assignment Evaluation Order](https://rubykaigi.org/2022/presentations/jeremyevans0.html#day3)

古くからある厄介な問題に対して、すごく丁寧に追っていって直してくれている様子がわかりました…。もう感謝しかありません 🙏

### [Ruby programming with types in action](https://rubykaigi.org/2022/presentations/soutaro.html#day3)
自分のジョークgemにrbs足して、steepを使ってみてっていうのを一通り体験しよっと。
https://github.com/soutaro/steep

### [Stories from developing YJIT](https://rubykaigi.org/2022/presentations/alanwusx.html#day3)
全く意味がわからなかったのですが…YJITによってRailsが遅くなっていた原因を見つけつつあり、速くなってきている様子がわかりました。JITをONにする日が楽しみです。

## やること :muscle: 
RubyKaigiに出て、刺激を受け、やるぞ！という気持ちになったので、ちょっと並べてみます。

### kittenizerにrbsファイルを添付する
今回、とてもたくさんrbsの話を聴き、いろんな作成方法があり、いろんな投稿先があることがわかりました。手元に[kittenizer](https://github.com/ken1flan/kittenizer)というジョークGemがあるので、まずはこれにrbsを添付してみて、使い心地を確認したいと思います。

### 自社サービスのRubyを新しくしやすくする
RubyKaigiでいろいろ便利な新機能や検討中のものなどを見せてもらったのに…自社サービスのRubyが古いんです。最近ようやくterraformを入れたので、これを元に気軽にバージョンアップができる土台を作っていきたいです。

## さいごに
[RubyKaigi 2022](https://rubykaigi.org/2022/)の[スピーカー](https://rubykaigi.org/2022/speakers/)・[主催・スタッフ](https://rubykaigi.org/2022/about/)・[スポンサー](https://rubykaigi.org/2022/sponsors/)のみなさん、ありがとうございました。とても楽しく、刺激的な3日間でした！来年の松本も楽しみにしています！