Ruby 会議2022レポート(1日目と2日目)

こんにちは！ruby2年目エンジニアのHiraです！
今回は、Ruby会議2022に参加してきたので紹介したいと思います！

イベントのタイムスケジュールとセッション

https://rubykaigi.org/2022/schedule/#day1

去年と同様であれば、youtube上でも今後配信されるのでこちらも是非！
https://www.youtube.com/channel/UCBSg5zH-VFJ42BGQFk4VH2A/playlists?app=desktop

せっかくなので、画像もぺたり
![9614BDF9-C7E8-41E2-BA1E-28DD256A7C78.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539384/2dbd5bb8-a4b5-3f62-b2fc-0c20f2a5ff0f.jpeg)



# セッション
すべてを見ることはできなかったので、個人的に気になったトピック

## 一日目
### Ruby meets WebAssembly
スライド

https://speakerdeck.com/kateinoigakukun/ruby-meets-webassembly

web上でrubyが動かせるようになる！！！！っていうお話でした！
実際に[こちらで](https://irb-wasm.vercel.app/)irbをweb上で動かすといったことが可能です。
Web Assemblyを使うことで、どのブラウザでも自由に動かすことができ、ブラウザ上でうごかｋスノで環境構築が不要になっています。
例として、今後、ruby3.2で以下のように扱うことができるようになりそうです。
```
<script type = "text/ruby">
  puts 'hello world'
</script>
```
ファイルシステムやOS依存に関しては、WASI（WebAssembly System Interface）で対応しているそうです。

### Types teaches success, what will we do?
スライド

https://speakerdeck.com/fugakkbn/types-teaches-success-what-will-we-do

みんなで、gemの型定義のためにcontributionしていこうぜ！！っていうお話でした。
ruby3.0でRBSの導入が行われましたが、あまり普及させれていないみたいです。
なんと、RubyGemsには17万を超えるgemが登録されている一方でgemの型定義を集めgem_rbs_collectio（TypeScriptで言うところの DefinitelyTyped)には44個しか型定義がないみたいです。。。。
こちらの[手順](https://github.com/ruby/gem_rbs_collection/blob/main/docs/CONTRIBUTING.md)をみることで、意外にも簡単にcontributeできるみたいなので、我こそはという方是非contributeしていきましょう！

### Tools for Providing rich user experience in debugger
rubyのデバッグツールであるhttps://github.com/ruby/debug のお話でした。
VS codeを使っての使い方のデモンストレーションを行ってくださいました。
ruby 2.6以上のversionが必要なので、業務に使っているrubyのversionによっては使えませんが、使い方によっては配列の値をビジュアライズしたりログのフィルタリングができたりなど機能がかなり充実しているので、是非使いたいなと感じました。。。！

### Let’s collect type info during Ruby running and automaticall
スライド

https://www.docswell.com/s/pink_bangbi/5MPPE5-2022-09-10-092906

RBSの自動生成についてのお話でした。RBSを最初から作るのはとても酷な作業ですが、こちらを扱うことで解消することができません。
また、シンボルの場合においても、どのようなシンボルが渡されるのかを定義できるみたいです。リクエストのハッシュについても定義することができるようになるので、とても使いやすそうでした。

### Towards Ruby 4 JIT
JITのお話。正直、自分はこのようなお話はよくわからなかったのですが、とりあえず速度早くなったよーという話と今後もどんどん早くなるように改善していきたいみたいな話だったと思います。。。

### TRICK 2022 Returns
rubyのコードを使った技術祭みたいな感じでした。。。
コード見ても何書いてあるのかわからない、、、って感じですごかったです。。。！

## 2日目
### Keynote
MatzによるKeynote。
うさぎと亀のスライドと、今回もRubyは死んだの話を聞くことができました。
毎回面白い話をありがとうございます！！！

### ruby/debug - The best investment for your productivity
先ほどと同様に、`ruby/debug`のお話でした。
debug中にブレイクポイントを使えたり、ブレイクポイント用に`do`や`pre`を使い分けたりすることができ、とても便利そうでした。。。！

### Make RuboCop super fast
スライド

https://speakerdeck.com/koic/make-rubocop-super-fast

Rubocopをすごい早くするためにこういうアプローチをしたよーという話でした。
`require rubocop`がすごい重かったらしく、デーモンモード(サーバーモード)を扱うことで、すでに起動中のプロセスでrubocopを起動することで早く起動できるようになったみたいです。
また、以下のアプローチで早くしたみたいです！
- cache(.cache/rubocopに保存)
- multi-cores(並列実行)
- reduce unused requires
- デーモンモード(サーバーモード)

### How fast really is Ruby 3.x?
Ruby3ではRuby2より速度を3倍速くするというスローガン(Ruby3x3)があり、どうだったのか？に関してのお話でした。
スループットを2.7と3.2で比較したところ、たしかに3倍になっているとのこと。
ただし、Ruby自体は、早くなったとしても、PythonやLua, Perlなどと比較するとまだまだ遅いみたいです。。。
(最近は、Pythonも速さに関してだいぶ早くなっているみたいでした。。。！)

### Packet analysis with mruby on Wireshark - dRuby as example
WireSharkによるPacket分析のお話でした！
Wiresharkは主にcで開発されているので、mrubyを使うことで、rubyをよめるようにしたみたいです。
途中でネットワークの不調子によりトラブルがありましたが、好きなプロトコルの話などを聞くことができたのでよかったです笑

### Create my own search engine
ポケモンカードデッキの類似したデッキを表示するサイトを作成するというお話でした。
類似度計算に関しては正規化等のお話があり、研究室時代を思い出させられました笑

急に始まるポケモンカードの授業
![E304576A-D203-4484-ACF8-E9C6EE93FB4A.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539384/72e053fc-0a81-97c3-554c-e5a8bcf36944.jpeg)




## 余談
余談ですがruby会議では、多くの企業の方が来ており、お昼のお弁当もでたりとすごい豪華でした！

![F764FC30-01B7-449C-9A16-CE943DD90A1D.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539384/014ed08a-aa46-b3ef-adb7-813d5d4267d3.jpeg)

# まとめ
今回のRuby会議もとても楽しむことができました！
また、来年もあれば是非現地に行きたいなと思います！！！