Ruby Kaigi Takeoutに参加したので遅まきながらレポートを完結に書きました。
私の経歴としては学生時代は趣味でコードを書いていて新卒で入った会社でRuby on Railsでの開発を1年半ほど経験(継続中)で今に至るといった感じです。
今回は初日から最終日まで参加して特に印象深かった発表を3つほどご紹介したいと思います。
TypeProf for IDE: Enrich Dev-Experience
Ruby3から追加されたRBSを利用して型推論でautocomplete、型エラーの報告、RBSの自動生成などができるVSCodeプラグインの話でした。
個人的に便利だと感じたのはRBSの自動生成で、Ruby3のRBSの発表を見たときに別ファイルに型定義を書いておくのは若干めんどくさいのではないかと感じていたのでぜひ使ってみたい機能です。
TypeProf for IDE自体は開発途中でまだまだ課題もあるそうです。
例えばTypeProfには「require先もパースしにいくので遅い」という欠点があり、それに対する解決策は現状、
- RBSを書く(定義があると静的解析コストが減る)
- アプリケーションをコンポーネントごとに分ける
の2つでした。
これでは開発者側で対応しなければいけなくなるので、TypeProf for IDEは1秒以上かかる解析は打ち切るという設計にしたそうです。
静的解析ツールなどは普段つくることがないのであまり自分にはない視点や課題についてのお話だったので興味深い発表でした。
またRubyMineがRBSを割とちゃんと対応し始めていたのを横目に見ながら羨ましがっていたVSCodeユーザーなので、個人的にはこの発表の内容は嬉しかったです!最後のKeyNoteでもMatzさんから今後Ruby3.1等で開発体験に注力していくとの発表があったので今後が楽しみです。
セットアップ手順(開発途中): https://gist.github.com/mame/86234de6a58352b9f994e0f8a6d6fbc2
PRK Firmware: Keyboard is Essentially Ruby
「キーボードは実質Rubyである」というユニークな題名に惹かれて聞きに行きました。
こちらはRubyに関する機能のお話ではなく、Rubyで作られたキーボードファームウェアのお話です。
私はキーボードを自作したりするので特に印象深かったです。
キーボードを自作する際にはProMicro等のマイコンにファームウェアをインストールしてキーコンフィグを行います。主流なファームウェアとしてはQMK Firmwareなどですが、こちらはC++でキーコンフィグを書くことになります。
私個人としては普段使っているRubyでキーコンフィグができるというのは大変便利に感じました。
またキーボード内のマイコンでRubyを処理するRubyモードの紹介などもありWindowのメモ帳でもRubyのコードを書いて実行する様子をデモしており、「キーボードは実質Rubyである」とタイトル回収をしていました。
PRK Firmwareは通常の自作キーボードに付属するProMicroでは動作しないようなので、動作対象のSparkfun Pro Micro RP2040を手に入れるのに一手間掛かりそうですが、入手でき実際に試してみようと思います。
Ruby, Ractor Quic
RactorというRuby3で導入された並列・並行処理のための新機能の中でQuic(HTTP3)を使用できるか試してみたという発表でした。
大変親切な発表で、
- TCP/UDPの違いと使い分けについて
- Quicについて
- Quicのパケットの中身について
などを詳しく説明されており、大変わかりやすい内容になっていました。
説明の後検証用のアプリでパケット通信をRubyで行ってみたという内容で発表されていたのですが、残念ながらRactor内でOpenSSLが使用できず断念されていました。(RDocを見る限り頑張ればできそう)
Ractor自体がまだ発展途上であり、またRactorサポートなGemがまだ少ないのでまだまだサービスで使ったりできる状況ではないようです。
また余談ですがRactorは今後はGoのgoroutineのようなM:Nモデル(複数(N)のカーネルスレッドに 複数(M)のユーザスレッドを対応させたもの)にしていく予定だったりと仕様が変わっていくようです。
まとめ
全体的にRuby3で追加されたRBSやRactorなどの機能やJITコンパイラはもちろん、開発体験を向上を主眼における発表が多かったです。主にVSCode関連の話が多かったので、VSCodeユーザーとしてはとても嬉しかったです。
当初はRactorやRBSの話をメインに聞きに行こうと思っていたのですが、個人的に特に印象に残った話はキーボードを自作するので「PRK Firmware: Keyboard is Essentially Ruby」でした。
前からRubyでキーコンフィグが書ければ良いなと思っていたので、是非試したいです。
Ruby Kaigiに参加するのは今年が初めて、かつオンライン開催となってしまったので、そう遠くないうちにオフラインでの参加できればと思います。
末筆ではございますが、閲覧して頂きありがとうございました!