Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails関連

キーワードで振り返るRubyKaigi 2019@博多(#1)

こんにちは、hachi8833です。RubyKaigi 2019@博多にBPS株式会社から私を含む4名が参加し、BPS株式会社もSilver Sponsorとして参加いたしました。お会いした多くの皆さまお疲れさまでした。そして運営・スタッフ・スポンサー各社の皆さま、関係者の皆さま、ありがとうございました!🙇

パーティなどでの伝聞レベルですが、今回は延べ約1300人が参加したそうです。福岡国際会議場の3F大ホールは1000人を収容でき、初日朝のキーノートスピーチでは立ち見が出たほどなので、少なくとも1000人超えは間違いないと思います。

RubyKaigiについてまともに書こうとするときりがありませんし、スライドや動画はいずれ公式サイトに順次アップされます。そこで何回かに分けて、キーワードを中心にRubyKaigi 2019をざっくり横断的に振り返り、続報も盛り込んでみたいと思います。そのため、同じセッションを複数回取り上げる可能性があります。

誤りや追加情報などがありましたら@hachi8833までお知らせください。

  1. 「Subversion」と「Cgit」
  2. 「静的解析」と「.rbi」
  3. 「numbered parameters」

「Subversion」と「Cgit」

3日目の同セッション(大喜利)で、「CRubyソースコードのリポジトリをSubversionからCgitに移行します」と発表されました。

そしてRubyKaigi終了後、正式な移行が行われたという記事がk0kubunさんのブログ↓に掲載されました。その他にもC90からC99への移行など、重要なことがたくさん書かれていてRubyist必読だと思います。

参考: C90って何ですか?
参考: C99 - Wikipedia

CRubyのソースコードは今後以下でアクセスできます。

記念に、早速自分のGitHubリポジトリにforkしてgit cloneしてみました。

Gitへの移行後、コアコミッターの多くがGitでのコミットに手こずっているようです。

git.ruby-lang.orgでタグが消えるというハプニングもあったようです(現在は回復)。

「静的解析」と「.rbi」


Ruby 3 Progress Report - RubyKaigi 2019より

初日のMatzキーノートとRuby 3 Progress Reportで、以前から一部で熱望されていた静的解析実行前の静的型チェック実行せずに型を含むプログラムの正当性チェックを行う)をRuby 3で導入する試みが進められていることが発表されました。

ポイントは、Rubyコードのファイルそのものではなく、比較的伝統的な.rbiという拡張子を持つ型定義ファイルを別途用意して、そこに型に関する情報を記載するというものです。Rubyの構文を変えずに静的型チェックを行いたいということだと理解しました。

型チェックは「Level-1」「Level-2」に分けられており、Level-2チェックでは@soutaroさんのSteep gemや、今回話題になったSorbetや、RDLが使えるようになるそうです。Steepはstructual type、SorbetはnominalかつDSLを用いるなど、それぞれアプローチは異なっているようです。

また、YARDの型情報をrbiに変換する構想にも触れていました。

Level-1型チェックについては上記@mametterさんのDay1セッションで、Level-2型チェックについては上記のSteepやSorbetのセッションでそれぞれ解説されています。

SorbetはC++で書かれていて高速を謳っており、私がセッションで見たデモでもエディタのコードジャンプリストがすごい勢いで更新されていました。この夏オープンソース化されるそうです。

ついでに、Sorbet(ソルベ)という名前はフランス語っぽいなと思っていたら、やはりフランス語で「シャーベット」という意味だと会場で教えてもらいました🍨。

Sorbet is a frozen dessert made with fruit juice, sugar, and water.

他にも以下で.rbiに多少言及されていました。

「numbered parameters」

これまで週刊Railsウォッチでも何度か取り上げたnumbered parametersの話題が「Ruby 3 Progress Report」と大喜利で取り上げられていました。

[1, 2, 3].map { @1 + 3 }  # @1がnumbered parameter
=> [4, 5, 6]

numbered parametersを導入することについてはほぼ決まりそうな塩梅に見えましたが、やはりその表記法についてさまざまな対案や意見が出されました。現時点では@1のような記法で、内部的に|i,|という記法と同等になるというお話でした。今後の動向に注目したいと思います。

その後Twitterでもいくつかやり取りを見かけました。itだとRSpecと当たりそう...。

おまけ: 会場でのメモ

これまではセッションのメモをMarkdownファイルに書いて社内Slackに貼り付けて社内で共有していましたが、今年はセッションをGoogleドキュメント(G-Suite)にメモして当日BPSメンバーで共有しました。1日1ファイルずつ、計3ファイルです。情報がSlackに流れて行かずに済みますし、G-Suiteのドライブで検索もでき、後から写メも貼り付けられてとても便利です😋。

それから、記憶の新しいうちに写真をGoogleフォトで分類整理して、キャプションをどんどん付けていきました。これも後で検索できるのがうれしい点です。なお、この「焼きラーメン」はGoogleマップ情報を信じれば「KENZO Cafe」というお店のようです🍜。

GoogleフォトのアルバムもDay1〜Day3のスライド、コーディング懇親会、スナップショットなどに分類し、少なくとも自分にとって有用な情報になるようにしてみました。何ということのない当たり前の写真整理です😅。こちらもBPSで使っているG-SuiteのGoogleフォトです。

おたより発掘


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。