はじめに
こんにちは!エンジニアの azuma です。
05/15~05/17 に沖縄で RubyKaigi 2024 が開催されました。
DeNA からはエンジニア 10 人が参加しました。
その時の様子をセッションと企業ブースを中心にまとめました。ぜひご覧ください!
RubyKaigi とは
RubyKaigi は年に一度開催されている Ruby のカンファレンスです。
セッションは英語と日本語がそれぞれ半分ずつ程度で、全世界から参加者が集まる国際的なカンファレンスとなっています。
弊社 DeNA は今回プラチナスポンサーとして協賛しました。
大ホールの様子
セッション
RubyKaigi 2024 では、3 日間で 50 を超えるセッションがありました。そのうち僕が特に興味深いと感じた Ractor や mruby などの技術や、新しい視点をもらえたと感じたセッションをいくつか紹介します。
Unlocking Potential of Property Based Testing with Ractor
Masato Ohba さんによる Ractor を使った Property Based Testing の講演です。
Property Based Testing とは、入力値と出力値をプログラマーが考えて入力する通常のテストではなく、入力値をランダムで与えてテストを行う手法です。
Ractor を使用して並列で実行し、パフォーマンスを計測されていました。
CPU-bound なテストに関しては有用なものの、通信などの IO-bound なテストに関しては Ractor を使用することで遅くなってしまうこともあるとのことでした。
個人的には、 CPU による計算が多い機能のテストなどにはかなり使えそうだなと感じました。
テストに関して入力値をランダムにして繰り返す発想はなかったので、新しい視点を得ることができました。
https://rubykaigi.org/2024/presentations/ohbarye.html#day1
Good first issues of TypeProf
Yusuke Endoh(mame) さんによる TypeProf の講演です。
TypeProf は Ruby 3.0 以降で使用できる静的解析ツールで、型の推論を行うことができます。
https://github.com/ruby/typeprof
ほぼ一人で開発されているとのことで、簡単に導入するにはどうすればよいか、またどのようにコントリビュートしていくべきかが紹介されていました。
Ruby を支えるツールを作っているのも人なんだなと思うと同時に、自分でもできることがあればやってみたいと思いました。しかし、そのためにはもう少し Ruby について詳しくなる必要がありそうだと感じました。
https://rubykaigi.org/2024/presentations/mametter.html#day2
Porting mruby/c for the SNES (Super Famicom)
Ryota Egusa さんによる、スーパーファミコンで mruby/c を使用してゲームを動かす講演です。
スーパーファミコンには 128kB しかメモリがないとのことで、 mruby よりメモリ消費量が少ない mruby/c という処理系を使って flappy bird を作っていました。
エミュレータでは再現しないバグがある、処理が間に合わなかった際にちらつきが発生する、長時間起動しっぱなしだと正しく動かなくなるなど、実機で動かすということを目指した場合に壁となる要素が多く大変だなと感じました。
また、他の講演では
Wii やドリームキャストで Ruby を動かす
があり、Ruby の可能性を強く感じることができました。
https://rubykaigi.org/2024/presentations/gedorinku.html#day3
Make Your Own Regex Engine!
Hiroya FUJINAMI さんによる正規表現エンジンの講演です。
Onigmo という正規表現エンジンや Prism というパーサにコミットされている方です。
この講演では、与えられた正規表現から AST を作成し、 Backtracking VM で動くプログラムを組み立て、入力した文字列に対してマッチするかを確認する部分までを全て Ruby で簡単(?)に作れることが紹介されていました。
講演としてのレベルはかなり高かったのですがシンプルな仕組みで正規表現を実現していて興味深く感じました。
スタックやプログラムカウンタなどの概念について勉強し直したいと思いました。
https://rubykaigi.org/2024/presentations/makenowjust.html#day3
ブース
38 の企業ブースがあり、空き時間にいつでも回ることができました。
また、二日目からはスタンプラリーも開催され、より気軽に各ブースを見に行くことができました。
JetBrains
JetBrains さんのブースでは普段業務で使用している RubyMine の開発者の方とお話しすることができ、感謝を伝えることができました。
SmartHR
SmartHR さんのブースでは人事・労務に関するワードを用いたタイピングゲームの体験がありました。
タイピングの得意なメンバーが挑戦しましたが、残念ながらランキング更新ならず…
https://jinrouda.smarthr.co.jp/
Web上で遊べるので、皆さんも挑戦してみてください!
SimpleForm
法人の情報を調査して提供する SimpleForm さんのブースでは、企業の登記簿謄本を見て怪しい可能性が高い企業を見抜くチャレンジを行なっていました。
怪しい企業を見抜くことができ、Tシャツをいただきました。
おまけ
RubyKaigi 公式の Official Party や Drinkup にも参加し、参加されている企業のエンジニアさんたちとも交流することができました。
オフィシャルパーティの様子
また、沖縄での観光も楽しむことができました。
まとめ
僕自身は今回初めての RubyKaigi 参加だったのですが、普段業務で使用している技術だけでなく、並列処理を扱う Ractor、 Ruby を ブラウザ上で動かす ruby.wasm などさまざまな技術に関する講演を聞くことができました。
Ruby 愛が深まり、
一日目の基調講演
で話にあがっていたクワイン(自身のソースコードと完全に同じ文字を出力するプログラム)などについても挑戦してみたいと感じました。
英語の講演については理解できず諦めてしまうこともあったので、技術力と共に英語力を高めることでより RubyKaigi を楽しむことができそうです。
Matz さんとも写真を撮らせていただきました。
RubyKaigi 2025 は松山(愛媛)で開催されるとのことで、来年もぜひ参加したいです!
最後まで読んでいただき、ありがとうございます!
この記事をシェアしていただける方はこちらからお願いします。