RubyKaigi 2017 レポート

こんにちは。エンジニアの Steven です。 広島で9月18日から20日まで行われた RubyKaigi 2017 に山本さんとエンジニア二人で行ってきましたので、どうだったのかについてレポートさせていただきます。

RubyKaigi は毎年 Ruby 言語を中心に行われる会議です。 最近は日本を巡って毎回違う都市で行われてて、今回は広島で行われました。 日本語のセッションもあれば、英語のセッションもあって、外国人の参加者が少なくはないイベントです。 Ruby のカンファレンスの中でレベルが一番高いと言われています( Ruby の作者曰く)。

会議は月曜日から水曜日まで行われてて、事前の週末に広島まで行けば、東京に住んでいる私達にとっては、広島で少し観光をする機会でもあって、そうできるように準備していましたが、残念なことにこの週末はちょうど台風がその近くまで通ってきて、観光するどころか、新幹線ではそもそも行けるのかと、逆に心配することになりました。 ですが、会議の3日間自体は天気は極めてよくて、日焼け止めが必要になるのではないかという逆転にもなりました。

1日目

朝起きて、元安川(今調べました)を渡って、会議が開催されてる広島国際会議場まで行ってから、入場券を受けて、会議スタート!

(目をつぶっていてすみません。後から気づきました。)

初日で見てきたトーク

  • 基調講演、Nobuyoshi Nakada
  • Fiber in the 10th year、Koichi Sasada
  • How Close is Ruby 3x3 For Production Web Apps?、Noah Gibbs
  • Gemification for Ruby 2.5/3.0、Shibata Hiroshi
  • How to optimize Ruby internal、Shizuo Fujita
  • I quit my job to write my own language: Goby、Stan Lo
  • Ruby Committers vs the World

今見返してみると、毎日の仕事ですぐに活かせそうなトークは初日はそんなになかったかと思いますが、Ruby のコミュニティーはどう構成されているのか、どんな課題を抱えているのか、何をやっているのかはより具体的に理解できて、他の Rubyist の毎日に触れて勉強になりました。

この日の最後のセッションとして、Ruby のコミッターが壇上に上がって、全員で議論をしながら、聴衆の質問に答えてたというイベントがありましたが、この日の中で一番記憶に残ってるところです。 質問に答えるためにコミッターの皆さんが議論にのめり込んで、質問一つだけで1時間が立ってしまいそうな状況に数回なってしまいましたが、その議論を聞くのは単に面白くて、話題はなんであろうと、専門的な技術力を持ってる人が周りにいれば、それだけで面白くなると感しました。

初日のセッションが終わってから、晩御飯が目的で街に出ててたのですが、なぜか赤色のシャツを着ている人が多くて、最初はよくわかりませんでしたが、なるほど、広島のカープが日本一になった直後でした。 広島市は全体的に盛り上がっていて、東京に戻ってきたのではないかと、ところどころ人混みができてました。

その夜は広島風お好み焼きを食べる機会になったのですが、やはり美味しくて、2日目も3日目ももう一度食べようという衝動に耐える必要が出ました。

2日目

翌日は朝にスターバックスによってから、会議場に戻って、2日目スタート! 2日目で見てきたトーク

  • 基調講演、Yukihiro Matsumoto
  • The Ruby Module Builder Pattern、Chris Salzberg
  • Improve extension API: C++ as better language for extension、Kouhei Sutou
  • Automated Type Contracts Generation for Ruby、Valentin Fondaratov
  • Type Checking Ruby Programs with Annotations、Soutaro Matsumoto
  • Ruby Language Server、Fumiaki Matsushima
  • Write once, run on every boards: portable mruby、Yurie Yamane
  • Lightning Talks

基調講演は今回は Ruby の作者によって行われてて、やはりまつもとさんは本当に実在する人で、自分が普通の人間でも実際に会える方だとわかりました。 基調講演でも少し紹介されましたが、この日の注目は Ruby での型の導入のトークだったかと思います。

最近新しくできた言語の中では静的型付けの言語が多くあって、どんどん人気になってますが、動的型付けである Ruby でも型のいいところを適切な形で活かせるのかという考えがあって、今回はそれについてのトークは2つもありました。 Ruby には型が実際に入ってしまうのかどうかはまだわからないのですが、型のチェックをしてくれるツールを Ruby に入れることでどうなれそうなのか、Ruby の未来を少し見れました。

個人的には Lightning Talks はその日の一番面白いセッションでした。 1時間で5分だけのトークが12あって、何かをゆっくり学ぶという目的より、いろんな情報を短時間で伝えて、面白話を交えながら、聴衆を楽しませるのがそのライトニングトークの一つの印象でした。 ビデオは公開されましたので、技術の話で少し笑いたければ、そのトークをおすすめします。

その日は昼休みに原爆ドームを見に行く時間は少しあって、日本の世界遺産の一つを写真にとどめることができました。 一言でまとめさせていただきますと、感動しました。

その夜の晩御飯は海鮮料理で、少し高めな食事でしたが、広島のもうひとつの名物を食べれてよかったです。

3日目

いよいよの最終日! ホテルからチェックアウトして、会議場に戻って、最終日スタート! この日見てきたトーク

  • Compacting GC in MRI、Aaron Patterson
  • Ruby for Distributed Storage System、Satoshi Tagomori
  • Pattern Matching in RubyYuki Torii
  • Memory Fragmentation and Bloat in Ruby、Nate Berkopec
  • Busting Performance Bottlenecks: Improving Boot Time by 60%、Julian Nadeau
  • How to write synchronization mechanisms for Fiber、Masatoshi Seki
  • Towards Ruby 3x3 performance、Vladimir Makarov

この日は基調講演は特にありませんでしたが、注目はパフォーマンスに関するトークでした。

RubyGC をどう改善できるか、メモリー関連の問題をどう調査・解決できるか、Ruby をどう3倍早くに改善できるか、違う種類のパフォーマンスの問題についていろんなトークがあって、基礎知識としても実践力としても役に立ちました。

この前、Ruby の作者が設定した Ruby 3x3 という目的は、設定されただけで実際にそれを簡単に実現できるのかどうかは個人的には少し疑問に思ってたのですが、最後のトークでそれを実現できそうなプロジェクトを紹介してくださった方が現れて、そんなに遠い未来じゃないと思うようになりました。

面白い演説で聴衆の笑いを集めた閉会の辞の後、お土産を買って、無事に東京に帰りました。 今回会社で広島までこれたのは私達二人だけでしたが、得てきた知識を東京に残った他のエンジニアに共有する予定です。

終わりに

イベントが多い出張でしたが、RubyKaigi に参加できてよかったです。 新しい基礎知識と Ruby コミュニティーに関する知識を積めて、勉強になったカンファレンスでした。

Ruby 言語のカンファレンスに参加するのはこれで初めてでしたが、Ruby に限らずこれからも他に多くあるプログラミング言語を中心にしたカンファレンスに参加したいと思います。 今まで実際に参加してきたのは、大学で開催されたカンファレンスだけであって、それ以外のトークはすべてビデオで見てきましたが、前の私と同じく、まだカンファレンスに出席したことがない方に出席をおすすめします。一度やってみたら、中々やめられなくなってしまうかもしれません。