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

こんにちは、hachi8833です。RubyKaigi 2019@博多にBPS株式会社から私を含む4名が参加し、BPS株式会社もSilver Sponsorとして参加いたしました。お会いした多くの皆さまお疲れさまでした。そして運営・スタッフ・スポンサー各社の皆さま、関係者の皆さま、ありがとうございました!🙇 お疲れさまでした!! #rubykaigi pic.twitter.com/KaDQQi3b4S — OreKanegon (@hachi8833) April 20, 2019 パーティなどでの伝聞レベルですが、今回は延べ約1300人が参加したそうです。福岡国際会議場の3F大ホールは1000人を収容でき、初日朝のキーノートスピーチでは立ち見が出たほどなので、少なくとも1000人超えは間違いないと思います。 RubyKaigiについてまともに書こうとするときりがありませんし、スライドや動画はいずれ公式サイトに順次アップされます。そこで何回かに分けて、キーワードを中心にRubyKaigi 2019をざっくり横断的に振り返り、続報も盛り込んでみたいと思います。そのため、同じセッションを複数回取り上げる可能性があります。 誤りや追加情報などがありましたら@hachi8833までお知らせください。 「Subversion」と「Cgit」 「静的解析」と「.rbi」 「numbered parameters」 ⚓「Subversion」と「Cgit」 Day3セッション: Ruby Committers vs the World - RubyKaigi 2019 3日目の同セッション(大喜利)で、「CRubyソースコードのリポジトリをSubversionからCgitに移行します」と発表されました。 サイト: cgit - ArchWiki そしてRubyKaigi終了後、正式な移行が行われたという記事がk0kubunさんのブログ↓に掲載されました。その他にもC90からC99への移行など、重要なことがたくさん書かれていてRubyist必読だと思います。 元記事: 令和時代のRubyコア開発 - k0kubun’s blog 参考: C90って何ですか? 参考: C99 - Wikipedia CRubyのソースコードは今後以下でアクセスできます。 GitHubリポジトリ: ruby/ruby: The Ruby Programming Language [mirror] 公式: ruby.git - The Ruby Programming Language — git.ruby-lang.org 記念に、早速自分のGitHubリポジトリにforkしてgit cloneしてみました。 Gitへの移行後、コアコミッターの多くがGitでのコミットに手こずっているようです。 ruby が git 化した関係でコミッタたちがアホみたいに時間を消費しているのですが、本当にこの労力をペイするだけのメリットはあるんですかね……。 — Yusuke Endoh (@mametter) April 22, 2019 git.ruby-lang.orgでタグが消えるというハプニングもあったようです(現在は回復)。 Bug #15785: GitHub - all tags are gone? - Ruby trunk - Ruby Issue Tracking System ⚓「静的解析」と「.rbi」 Day1セッション: The Year of Concurrency - RubyKaigi 2019(Matzキーノート) Day1セッション: Ruby 3 Progress Report - RubyKaigi 2019(@mametterほか) Day3セッション: The challenges behind Ruby type checking - RubyKaigi 2019(@soutaro)(見に行けず😇) Day2セッション: State of Sorbet: A Type Checker for Ruby - RubyKaigi 2019(@jez、@ptarjan) Day1セッション: A Type-level Ruby Interpreter for Testing and Understanding - RubyKaigi 2019(@mametter)(見に行けず😇) 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のセッションでそれぞれ解説されています。 リポジトリ: soutaro/steep: Gradual Typing for Ruby サイト: Sorbet · A static type checker for Ruby リポジトリ: … Continue reading キーワードで振り返るRubyKaigi 2019@博多(#1)