RubyKaigi2016 最終日

RubyKaigi2016の最終日のレポートです!(日曜日に更新しようとしましたが、疲れすぎて1日遅れに。。。)

3日間続いたRubyKaigi2016もあっという間に終わってしまいました。。。
知らないことだらけの3日間、とても刺激的でした。
また自分の力不足を感じて悶々。。。
もっと手を動かして毎日やっていかないとダメだな。と感じました。

セッション

最終日はwebの話も多く、webの世界で生きている僕にも身近な話が多かったです!

Ruby Committers vs the World

最初は基調講演からでした。
Ruby Committerへの質疑応答という形でRubyの話が次々と飛び出します。 壇上のRuby Committerに会場から質問をするわけです。

f:id:AdwaysEngineerBlog:20160912112317j:plain

いくつか印象に残ったお話をご紹介します。

2系のこれから

RubyKaigiでは、Ruby3のお話が多く出ていました。
そんな中、2系は今後どうなっていくのか、という質問。

まつもとさん曰く、
「互換性がなくなることは絶対しない。 でもよりよくしていく変更Fixnum, Bignumの変更みたいなものは入れていくつもり。」

どんな人がコミッターにほしい?

どんな人がコミッターになってほしいか、という質問。

こちらは笹田さんが冗談を交えながら、
「比較的平均年齢が高くなってきたので、若い人がほしい」
とおっしゃっていました。 また、
「アイディアがあって、やり方がわからない人がいたらぜひ聞いてほしい」
「場合によっては説明にも行かせていただく」 ともおっしゃっていました。

正直レベルの差を感じていた若手としては、とても嬉しいお話でした。

非常に面白い基調講演でした!

Web Clients for Ruby and What they should be in the future by Toru Kawamuraさん

REST関連でよく見かけるKawamuraさん

Rubyで書かれたwebクライアントのお話でした。

f:id:AdwaysEngineerBlog:20160912112319j:plain

まず、現在多く存在するwebクライアントは、
- 密結合されており、変更が難しい(APIでURLに変更があったら動かなくなるなど、)
- 専用になっているものが多い(aws-sdk, twitter...)
こういった理由から、使いづらいということでした。

つまり、
- 疎結合
- 汎用性(特定のAPIに特化してない)
こんなクライアントがほしい

という流れのお話でした。

デモもまじえ、より良いwebクライアントの設計を学べました。 ただ疎結合にするのはどうしてもAPIの設計に依存してしまうのでは。。。と思いました。

Recent Advances in HTTP and Controlling them using ruby by Kazuho Okuさん

H2Oの作者、DNAの奥一穂さんからのお話。 またまたwebのお話でした。
HTTP2のお話は、東京Ruby会議で聞いた時、ほとんど理解できないまま終わったので、不安でしたが、以前よりはわかりました。

まずはHTTP2の概要と現在の状態から。
webを早くするため、HTTP1ではレイテンシーボトルネックになっていたため、HTTP2のサーバーを作った、
そしてFirefoxで確認できるサーバーの3割ほどが対応をしているらしいです。

そんなHTTP2の鍵となる機能は以下の3つだそうです。
- header 圧縮 - 多重化 & 優先順位つけ - push

後半はほぼpushのお話でした。 使いどころがまだ難しそうだな、というのが率直な感想です。

H2Oの強みとしては、mrubyを組み込みやすくなっているらしいので、ぜひ使ってみたいですね!

Optimizing Ruby by Urabe, Shyouheiさん

お次はMoneyForwardの卜部さん。 Rubyは最適化されてないから遅い、しかしRubyにおいて、1 + 2 = 3とは限らない(+が再定義されている可能性がある) ので、Deoptimizationという手法で最適化をした。というお話。

f:id:AdwaysEngineerBlog:20160912112325j:plain

Deoptimizationの大まかな流れとしては、

あまり再定義はない、と仮定して、  
最適化 -> メソッドが再定義されていたらフォールバックして、脱最適化する  

ということでした。

Rubyの内部の話が多く、終始すげーという感想でした。

Dive into CRuby by NARUSE, Yuiさん

最後の基調講演は、NARUSEさんの「どのようにCRubyの発展に貢献するか?」 というお話。

これはレベルが高すぎて、ついていけない人続出でした。。。 恥ずかしながら、僕に至っては何をしているかもわかりませんでした。

まず、CRubyに貢献するためには、new feature や、improveさせるなどの方法がある、というお話から始まりました。

まとめとしては、
- 新機能を追加してほしい時は、具体的なuse case がないとダメ。
- improveさせる時は、まずは既存のアプリケーションのボトルネックを知ろう
ということでした。

それにしても難しかった。。。
もっとRubyの内部の勉強頑張ります。

Closing

すべてのセッションが終わり、Closingがありました。
関係者の方々が壇上に上がったり、RubyKaigiは全国どこでもやるよというお話があったり、
笑いもあり、とてもいいClosingだったな、と思いました。

f:id:AdwaysEngineerBlog:20160912112328j:plain

また勉強して、来年もぜひ参加したいと思います!