こんにちは!YOUTRUSTのCTOのzooです。2022年9月8日-10日で行われたRubyKaigi 2022にWebエンジニア'sで参加してきましたので、そのご報告です!
Rubyスポンサーでした!
今回、YOUTRUSTとしては初めて、RubyKaigiにスポンサーとして協賛しました! YOUTRUSTが「RubyKaigi 2022」にRubyスポンサーとして初めて協賛します! - YOUTRUST Tech Blogでも紹介しましたが、最上位のスポンサーであるRubyスポンサーです。と少しだけアピールさせてください。
弊社では、サーバーサイドの開発に主にRubyを用いており、これまでずっと、使うだけではなく何かしらでRubyに寄与していきたいと思っていましたが、今回のスポンサーシップでまさにその一歩を踏み出せたと思っています。
そして、今回はスポンサーシップという形での貢献の仕方でしたが、Rubyコミッターの方たちをはじめとしたいろいろな方の発表を聞く中で、やはり技術的にも貢献をしていきたいと思いました。
YOUTRUSTのノベルティはかわいい靴下。
今回はブースの出展はしていなかったのですが、せっかくなら、とノベルティの作成をして、会場にいる方に手渡しさせていただきました。
作成したノベルティは、靴下です。『三重までごソック(足)労ありがとうソックス』いう駄洒落になっています。
デザイナーがとても素敵に仕上げてくれました!
何人かの方が、Twitterに上げて下さっていて、嬉しい限りです。
YOUTRUSTさんから靴下もらいました! #rubykaigi pic.twitter.com/W4ULqBRaBG
— Hiroshi SHIBATA (@hsbt) September 8, 2022
また、靴下をお渡しする際に、少しお話もさせていただきましたが、YOUTRUSTを使って転職しました!という方に出会えたり、YOUTRUST使ってます!という方もたくさんいらっしゃって、嬉しい限りでした。
感想!!
RubyKaigiに参加したそれぞれのメンバーに印象に残った発表とその感想を聞きました。
Types teaches success, what will we do?
RBS generation framework using Rack architecture
Let's collect type info during Ruby running and automaticall
大竹です。 僕が印象に残った発表はRubyでの型付けに関する発表です。
これまでRubyで型付けするというのは頭になかったのですが、発表を聞いてみて、TypeScriptが便利だと認識されて当たり前に使われているように今後Rubyで型付けするのが便利で当たり前になる日がくるのかも?と興味をそそられました。
静的解析による型付けや動的解析による型付けに関しての話もあり、Rubyでの型付けの敷居がどんどん下がっていることを感じました。
ユートラでも型付けの導入について一度議論してみても面白そうだなと思いました。
一点気になったこととしては、「Types teaches success, what will we do?」セッションであったようにまだまだ周辺Gemの型付けが進んでいないという事実があるようなのですが、OSSにコミットする敷居がそれほど高くないことも同セッションを通して感じたので、困ったらOSSにコミットしていくようになると会社としてもOSSに貢献できて良さそうだなと感じました。
naroです。私が印象に残った発表はerror_highlightの設計に関する発表です。
RubyKaigiの発表はどれも素晴らしいものでしたが、その中でも初学者から熟練者まで1番身近な機能と言えるerror_highlightを題材に「現状と理想」「どのような設計で実装をしたか」「実装後にどのような課題が残ったか」「課題をどう解決したか」「解決した結果、どのような場面で嬉しいか」をわかりやすく順に解説していただきました。
普段なんとなく目にしているRubyの機能の裏側を覗けたこと、そして理解できたことで他のRubyの機能の理解への興味が湧き、心理的な障壁が低くなりました。
また、どのように課題を見つけ、実装を進め、改善しているのかを理解できたことも良かったです。
Rubyistだけでなく、エンジニア全員にオススメできる内容だと感じました。
Ruby meets WebAssembly
Tools for Providing rich user experience in debugger
ruby/debug - The best investment for your productivity
たいがです。
RubyKaigi自体は未来のRubyに取り込まれる機能であったり、リファクタリング、パフォーマンスの改善などが主な発表内容であるため、普段プロダクト開発をしている中で恩恵を受けている部分ではあります。
プレゼンテーション自体はどれも素晴らしいものでしたが、私は2つ特に印象に残ったプレゼンがあります。1つ目は、初日の基調講演でもあったkateiさんのRuby meets WebAssemblyです。demoでRubyがブラウザ上で実行できる環境には衝撃を受けましたし、WebAssemblyに対応できるということは様々なプラットフォーム上で今まで以上にRubyを簡単に実行することができるということで、Rubyの新しい可能性を切り開くものなのではないかと思いました。個人的にはブラウザでirbが動くデモがとても印象的でした
2つ目は、Rubyのライブラリのdebugに関しての話になります。RubyKaigi全体としては2人の登壇者の方が発表していた内容になります。https://github.com/ruby/debug
お一人は、RubyのdebugをGoogle Chromeのextensionで動かす方法と、VSCodeで動かす方法について
もうひとりは、Rubyのdebugのstep,next,frame-navigation,などの仕組みや利用方法について共有いただきました。
普段Rubyコードを触る際にdebuggerをよく使用するのですが、普段の業務効率や体験を向上させることができる可能性のある発表は自分的にも具体的な利用イメージがついてとても理解しやすくまた興味を持てる内容でした!
最後に、いつも支えてもらうだけでなく、contributorとしてコミュニティに貢献できることがあればしていきたいと今回のイベントを通じて思いました。
Building a Lightweight IR and Backend for YJIT(というかYJIT関係の発表)
Ruby meets WebAssembly
Make RuboCop super fast
めろたんです!
どれも面白く素晴らしい発表だったのですが、強く残っているものを3つ挙げたいと思います!
YJITは全く追っていなかった(なんなら会場で知ったレベル)のですが、「なるほどすごい。」の一言でしたね!
Rustで作ってるみたいなところもおもろいな~と思ったり、IRを作ってx86-64以外の環境でもJITが動くように!というのはアツいな~と思いました!
ラズパイやRISC-Vを使っている環境でも動くようになったら、より快適にRubyが面白い環境で動かせるようになりそうだ!と思いました!
フロントエンドを主にやることが多くWASMとかはなんとなく知っていて、なにかの記事で「Vimがweb上で動くぞ!」みたいなのを見てすげ~!とか思っていたのですが、Rubyも動くようになるのか~と感慨深いというか感動しました!
ブラウザだけでなくWASIがサポートされている環境なら動くというのもポータビリティがより高くなって面白いなと思いました!
あとAsyncifyはやばすぎる(小並感)と思いましたw
日々使っているツールであるRubocopがより早くなるというのは、喜ばしいことだな~と同時に、require が重いというのはハッとさせられたというかそりゃそうなるか。と思いました!
また本筋とは少し違うかもなのですが、発表中に角谷さんの名言で『コードにしたものとコードにしなかったものがプログラミング』というのが出てきて「そうだな~」と強く思ったと同時に日々自分はこれができているのかというのを振り返るいいきっかけになりました!
久しぶりに現地開催という運びになって、良い発表を聞けたのはとてもよかったなというのはもちろんのこと、参加者みなさんの熱量をリアルに感じ取れてやっぱりRubyコミュニティいいな~と再認識することができました!
やまでぃです。
Rubyコミッターの方々が壇上でライトアップされて並んでおられた姿がとても印象的でかっこよかったです。各コミッターの方々の「今後Rubyをこうしていきたい!」という熱い想いも伝わり、なんというか「あぁ、この方々は本当にRubyが好きなんだなぁ」と思い利用者の1人として僕までなんかうれしくなりました。今回YOUTRUST社としてスポンサードさせていただきましたが、お金だけではなく技術でも何かしら貢献していきたいなと今回のイベントを通じて強く思いました。
zooです。僕が印象に残っている発表は、『Create my own search engine.』です。検索対象はポケモンカードゲーム(通称ポケカ)のデッキで、僕自身もポケカで遊ぶこともあるため、その点でも興味をそそられました。
実現していたのは、デッキの類似度を計算し、それを表示するというアプリケーションでした。実装としては、文章同士の類似度を計算する自然言語処理のアルゴリズムを応用したもので、デッキ自体を文章、デッキの中のカードを単語と捉え、デッキをベクトル化して、tf-idfを考慮しながら内積を求めて類似度を算出するというものです。
類似度検索という言葉を聞くと、やはり難解なイメージが先行してしまっていたのですが、実際にRubyで書かれたソースコードを見て、実装自体が難しいわけではない、ということに改めて気付かされました。類似度計算を含むファイルの行数は300行未満で、当該の計算だけにフォーカスするともっと少ないです。知識を持つことは武器になるし、その武器を使っていくことがエンジニアとして世の中を前に進めていくことにつながる、と改めて実感することができました。
当日の登壇資料を発表者の@m_sekiさんがこちらに上げていらっしゃいますので、ぜひご覧ください。
おわりに
YOUTRUSTとして初めて参加したRubyKaigiでした。 それぞれの発表が面白かった、ということに加え、エンジニア同士のコミュニケーションをたくさんとることもでき、非常に濃密な3日間だったと思います。 YOUTRUSTだとどうだろうか、という発表に関連した議論をしたり、YOUTRUSTでもこんなことをやっていきたい、という未来の話をしたり、リモートによりなかなかできていなかったコミュニケーションができたように感じます。
今回の参加に当たって、ノベルティや60秒の映像制作、その他の事前準備が多々ありました。それらの準備を進めてくれたみなさま、そしてRubyKaigiに参加すること自体を快く後押ししてくれたみなさまにこの場を借りてお礼申し上げます。ありがとうございました。
YOUTRUSTでは、来年もRubyKaigiに参加したいと考えています。そのために、日々の開発を頑張り、YOUTRUSTを使ってくださる皆様に価値を届けていきたいと思います。
最後になりますが、YOUTRUSTではRubyで開発したいエンジニアを募集しております!少しでも興味がある方はぜひご応募ください。