Ruby Kaigi 2019に行ったよん

どうも、最近カタカタが読めなくなってきたnasaです。 令和最初の記事です。 (年号なくなれ!西暦で統一しろとか言ってるくせに、、、)

割と時間がたってしまいましたがRubyKaigiに行ったときのことをカキカキしていこうと思います。

スライドが見たい!って人はココにあるで。 RubyKaigi2019 スライドまとめ - Qiita

この記事では前半で興味のあった発表のまとめ、後半で行っての感想的なことを書いていこうと思います。 と言っても発表内容を事細かに書くわけじゃないので詳しく知りたい人は別ページを見るといいも思うよ。説明が圧倒的に上手い人の記事がゴロゴロあると思うから。

The Year of Concurrency

初日のMatzのキーノートです。主にRuby3のお話をしていました。

Ruby3のトピック

  • Performance
  • Concurrency
  • 静的解析

これれがRuby3のトピックになります。 Rubyの良くないところ代表の Performance, Multi-Coresに挑むとのこと。

でもMatzは最初にRubyは遅くないよ、だってGitHubCookpadトラフィックをさばけているよ。 必要十分な速度はあるからいいじゃん!と言っていたのでPerformanceについての話がないのかな?と思っていましたがそうではないみたい。

「早すぎる言語はない」とも言っていました。

Multi Cores

新しい並列モデルとしてGuildというmodelを導入しようと思ってる (名前はまだない) また、BuildはコレまでのRubyのConcurrencyモデルとは違うので最初は使いづらいかもしれないらしい

  • オブジェクトスペースの分離
    • Deeply Frozen ObjectしかGuild間でやり取りできない
    • これは再帰的に見てFrozenなオブジェクトのこと
  • Guild間の通信はchannelを使用する。

このGuildという名前にしよう!とMatz言ったときゲーム業界からは反発の嵐だったらしい、、、

静的解析

個人的には一番楽しみにしていたトピックです。

Matz 「I Hate Tests, I Hate Type annotation」

いろんな言語で型を導入して静的解析できるようにしている世の中だけど、Matzは正直やりたくないらしい、、、

でもやるよ!

最初にMatzのセリフを雑に載せましたが、型宣言はコンピュータのために仕事をしてるみたいだから嫌とのこと、じゃあどうするのかと言うと新しく4つのコンポーネントを導入しようとしてる。

  • .rbiファイルという型定義ファイルを用意するようにする
  • .rbiファイル用の型定義シンタックスの追加
  • Type Profiler
    • 型情報を集めて、クラスやメソッドのrbiファイルをジェネレートするものを導入する
    • ただ、完璧に推論できるわけじゃないのでrbiファイルを確認する必要はある
  • YARDからrbiを作れるようにしたい

なるほど。これらが実現すると今までどおりRubyを書ける + 型チェックがある!という状況になりそうですね。

あとRubyのLanguage Serverも使いやすくなりそう。

ココまで書いたのを読み返して分かりづらいな〜と思ったので方針転換。 感想をつらつら書いていきます

感想

うむ。良かったです (小並感 )

初カンファレンスだったので、思ってたのといい意味で違うなと思いました。もっと、カッチリした感じを想像していましたが、本当にお祭りのような感じでどこもかしこも盛り上がっていました。

外国人が意外と少なかったのと発表が日本語だったのは少し驚きました。 直前まで発表はすべて英語だと思って身構えていたので、、、

風邪を引いてしまいAfterPartyが全く楽しめなかったのは悔やまれますが、かなり楽しかったので、お金に余裕のある社会人、会社の金で行ける人、長野に住んでいる人は一度行ってみると良いと思います。(次は長野だったはず)

あー。会社の金で行きたいな〜(チラッ)

こんな雑な記事でいいのか?という思いがありますが、個人ブログなので、qiitaじゃ無いのでいいか