こんにちは、endoです。
今回は「RubyKaigi2016」に参加したレポートになります。
当社では、RubyKaigiの費用の「チケット代」「交通費」「宿泊費」「懇親会」は全て会社で負担
していただきました。
このような対応をしていただいた会社と、出張している間に業務を行ってくれたチームメンバーに感謝です!
では、初日のレポートを行っていきます。 なお、講演は英語が多く、内容を把握するのに苦戦しました(´・ω・`)
英語は重要だ・・・orz
Ruby3 Typing
Ruby3の目指す方向性
- 型
- パフォーマンス
- 並列処理
今回はこの中でも「型」についてのお話でした。
ダックタイピング
Rubyにはダックタイピングと呼ばれる考え方があります。 「アヒルのように歩き、アヒルのように鳴くものはアヒルに違いない」という考え方です。 ダックタイピングは柔軟性が高く、期待される振る舞いのみを考えればいいです。 期待される行動は、自分たちの頭の中にあります。
動的型言語のデメリット
実行するまでエラーかどうかがわからない。 エラーメッセージが親切ではない。 エラーが起こるかどうかわからないので、テストでカバーするようになっている。 静的型言語はメソッドに型が書かれているので、どのような値が必要かどうかがわかる。
型を導入する方法
型はほしいけど、型を記入することは避けたい。 現状の型推論ではない方法での、型推論を導入する。 100%の精度はできないが、0→80%までの精度になれば、ないよりはマシになる。 失敗した場合は、元に戻せばいい。
リリース時期
ケネディ大統領が月に行くという目標を定めてから、実現した。 目標は必要。 東京オリンピックが始まる頃にはリリースしておきたい。
dRuby in the last century.
発表者:Masatoshi SEKI
RubyとWebをつなぐ
HTTPをアプリに埋め込むことを楽しんでいた。 RubyとWebをつなぐ作業をしていて、翻訳作業をすることが嫌になってきた。
dRubyの紹介
分散オブジェクトシステム プロセス越しにメソッドが呼べる プロセス間でオブジェクトが送れる
Welcome to haconiwa - the (m)Ruby on Container
発表者:Uchio KONDO
haconiwa
mRubyで作成したコンテナ技術 もともとはCRubyで作っていたがsyscallsの限界があり、mRubyに書き換えた。
haconiwaを作った背景
docker/lxcでバグに遭遇したが、なかなか理解できなかった。 コンテナ技術を理解するためにhaconiwaを作成。
A proposal of new concurrency model for Ruby 3
発表者:Koichi Sasada
rubyの並列処理について
rubyの並列処理はGVL(Giant VM Lock)の関係でI/O待ちが発生している このため、rubyの並列処理は遅いということがよく言われる
guild
rubyの並列処理を早くするための新しい概念 GVLを解放することで、並列処理を早くするようにする
Isomorphic web programming in Ruby
発表者:Yoh Osaki
railsでreact likeに書けるようにする
jsが嫌いなので、rubyでreactを使いたいということで、作成 デモ講演を披露してくれました
Scalable job queue system built with Docker
発表者:Takashi Kokubun
Job Queueシステムを作成
カジュアルにJobが実行されていて、一元管理ができていなかった。 一元管理をするために、新しいJob Queueシステムを作成した
懇親会
この後は懇親会がありました。 個人的には海外の参加者の方と話をしてみようと思い、海外の参加者の方に話しかけていました。 ただ、日本語が普通に喋れる方だったので、日本語で会話をしていましたorz
海外の参加者の方との交流も図れるのがいいですね!
ちなみに自分がお話をした海外の参加者の方は、普段使う言語がPython・Go
でした(`・ω・´)
こういう方でも参加しているのに驚きました。
初日感想
ノベルティが配布され、自分はステッカーを漁りまくっていました。 ブースではコーヒーが飲み放題で、交流も図れるので情報交換ができました。 このような対応していただいたスタッフの皆様に感謝です!
コミッターの方々は当たり前のように英語で話をするので、レベル差を感じました。 なんで英語そんなにできるんだ・・・
あと、見ている層が違うんだなーと感じた1日でした。
現場からは以上です。