RubyKaigi2016 1日目

AdwaysのNo,1 Rubyistになりたい男、私久保田は、昨日から京都で行われているRubyKaigi2016にきています!

今回はそのレポートを書きたいと思います!

RubyKaigi

RubyKaigiとは、日本で開催されているRubyコミュニティ主催のRubyに関する最大級のイベントです。 3日間に渡り、RubyのパパであるMatzを始め、Ruby界隈の有名人のセッションがまとめて聞ける貴重な3日間となっております。

会場

会場は京都国際会館ということで、東京から新幹線と電車を乗り継ぎ3時間ちょっと、前日まで台風のせいでどうなるかと思いましたが、無事到着することができました! 4時半起きと、朝も早かったので、眠いなーと思いながら会場に到着。すると大きな会場が目に飛び込んできました。

f:id:AdwaysEngineerBlog:20160909001532j:plain

雨が降りしきる中、Rubyistが会場に続々と吸い込まれていくのを見て、眠気なんて吹っ飛んでしまいますね。

会場に入り、受付を済ませると、早速目に飛び込むノビリティの数々。
各スポンサーのステッカーはもちろん、オリジナルグッズ、RubyKaigi2016特製ステッカー、なんとTシャツまでいただけました。
これは始まる前からテンションが上がります。

f:id:AdwaysEngineerBlog:20160909001553j:plain

f:id:AdwaysEngineerBlog:20160909001614j:plain

(*他にもたくさんのグッズやステッカーがありましたが、僕がいただいてきたのはこちら)

セッション

初日からハイレベルなセッションの数々、正直すごすぎて私ごときでは理解できない話ばかりですが、少しでも多くの知識を吸収したいと思います!
基本的に2つのホールで同時に2つのセッションが行われていました。
なので僕が聞いたセッションのみ、概要をお伝えしたいと思います。
(セッションの様子は動画でアップロードされるようです)

Ruby3 Typing by Yukihiro "Matz" Matsumotoさん

最初のセッションはRubyのパパであるMatzことまつもとゆきひろさん! Ruby3のTyping(型)についてのお話。

昨今の型ブーム受け、Ruby3ではどのようにしていくか、というお話でした。
言語には流行り廃りがあり、型が流行っているからといって型を入れる、というのは違う気がする、 というか入れたくない。Rubyの良さであるダイナミックさを殺してしまうことになる。 それではRubyが目指す「より良いプログラミング体験」が提供できない。
だからRubyでは「未来の型」を目指したい。
そこでSoftTypingというものを構想している、
といった内容でした。

このSoftTypingによってRubyの欠点である
「動かすまでエラーがわからない」という点を軽減したい、と仰っていました。
SoftTypingとは、メソッドや引数の振る舞いから動的に無名の型を作り型推論をする、という考え。(違っていたらごめんなさい)
実現がとても楽しみです!

終盤ではRubyへの思いや、OSS開発に対する気持ちも語っておられ、とても興奮しました。
常に前に進み続けたい。という言葉がとても心に残っています。

ところで、話を聞くのに夢中で写真を撮るのをすっかり忘れてしまいました。。。

dRuby in the last century. by Masatoshi SEKIさん

続いてはdRubyのお話。 恥ずかしながらdRubyというものの存在を初めて知りました。

なんとdRubyの作者の方は、いつもお世話になっているERBの作者の方でもあるそうです。

f:id:AdwaysEngineerBlog:20160909001556j:plain

dRubyというのは、分散オブジェクトシステムらしく、プロセス間でオブジェクトのやりとりを可能にしたものらしいです。
デモもまじえて進めていただけたので、とてもわかりやすく、 また、独特の雰囲気のセッションが印象的でした。

個人的にも最近、あるプログラムを分散で動かしたい、と思っていたので、使って勘所を掴みたいなーと思います。

ランチ

さて、二つのセッションを終えたらランチの時間でした。
なんとお弁当も出るようで、しかも豪華。

f:id:AdwaysEngineerBlog:20160909001559j:plain

これは嬉しいですねー。

Welcome to haconiwa - the (m)Ruby on Container by Uchio KONDOさん

続いては、haconiwa(https://github.com/haconiwa/haconiwa)のお話。
haconiwaとは、こちらも初めて知ったのですが、mrubyで作られたDSLでかけるコンテナーシステムだそうです。

f:id:AdwaysEngineerBlog:20160909001603j:plain

英語のセッションでしたが、なんとか聞くことができました。。。

RubyDSLでDockerのようなコンテナーシステムが使えるのはとても嬉しいですね。

東京に帰ったら触りたいなと思うシステムNo,1でした。

A proposal of new concurrency model for Ruby 3 by Koichi Sasadaさん

こちらもRuby3のお話で、導入予定の並行処理のお話。

f:id:AdwaysEngineerBlog:20160909001607j:plain

こちらは正直難しすぎてわかりませんでした。。。(英語のセッションだったことは言い訳になりません)

ただわかったことは、並行ブログラミングは難しいらしい、ということ。
これは自分でその難しさを体験したいと思います。

悔しい。。。
そして笹田さん英語うますぎる。。。

Unifying Fixnum and Bignum into Integer by Tanaka Akiraさん

こちらはRuby2.4で導入の、FixnumとBignumをIntegerとして統合する、というお話。
以前に記事で読んだので、すっと入ってきました。

統合までの背景や理由、統合されることのメリットデメリットをRubyプログラムだけでなく、Cプログラマ向けにもお話されていたので、とても面白かったです。

Fixnumの範囲に依存している実装が間違っている、というのはとても勢いを感じました。

個人的には、Fixnum, Bignumにしかないメソッドとかないのかな。。。と気になりました。

Scalable job queue system build with docker by Takashi Kokubun

初日最後に僕が聞いたのは、Cookpadの方のお話。
Cookpadでは、社内のシステムが使うシステムを内製しているようで、僕もそういう仕事がしたいな。。。と思いました。

今回は、その内製しているシステムのJob Queueシステム、「barbeque」のお話でした。

f:id:AdwaysEngineerBlog:20160909001611j:plain

Job Queueシステムの丁寧な説明から、sidekiqやrescueではなく、自ら作った背景からその内部構造や使っているサービスまで詳しくお話をされており、とても勉強になりました。
僕も普段から触れているJob Queueシステムですが、僕はsidekiqを当たり前のように使っていたので、どのように作ったか、という話は刺激的でした。

何より、セッションに勢いがあり、ユーモアたっぷりで笑いが絶えないセッションでした!

まとめ

レベルの高いセッションが多く、正直僕のレベルでは半分も理解できていませんが、それでもこなければ知らないことだらけでした。
まだ初日なのにここまでたくさんの知識を吸収できていることにとても楽しく感じています。

今日も楽しんで、勉強したいと思います!