RubyKaigi 2019 へ参加してきた

0 日目

永和システムマネジメントのクルーズに参加した。
ウィスキーをロックで頼んだらコップになみなみとウィスキーを注がれたのが面白かった

1 日目

The Year of Concurrency

matz
このあとのトーク群の予習をするのに良いセッションだった
Ruby 3 が去年より具現化しているということを感じた

Ruby 3 Progress Report

Matz & the Ruby Core Team
前から思ってたけど、記号とか予約語を「地上げする」っていう表現が好き過ぎる

Terminal Editors For Ruby Core Toolchain

@aycabta

irb に multiline editor を入れる話。
この人は、超巨大な yak shaving をコツコツやっている人で、本当に尊敬に値する。
この取り組みはもっと知られるべきだと思う。というか、Ruby 2.7 が出たらみんなが知ることになって、その時のみんなの驚く顔が楽しみというのがある。

Pragmatic Monadic Programing in Ruby

joker1007
Pure な Ruby だけを用いて、Ruby にモナドの機能を顕現させる降霊術を披露していて、控えめに言って黒ミサだった。
Asakusa.rb の隣の席で Joker さんが準備をしているとき、ずっとうんうん唸りながら黒魔術を練っていたのを見ていたけど、どうやら思い描いていたような発表が出来たようで、良かった。

Compiling Ruby to idiomatic code in static languages

聴いてたけどよく分からなかったす

Pattern matching – New feature in Ruby 2.7

パターンマッチ、もっともっと先の話になるかと思っていたら、すぐ目の前まできていて、マジか〜ってなった
case hoge in [_, String => a] end みたいな AS パターンとか、Ruby でこういう風になるとは思ってなかったので意外だった(まだ確定はしてないけど)

Official Party

中洲川端商店街をジャックして酒を飲みまくるという異常な催しだった
食べ物の列が凄くてありつけなかった分、たくさんの酒を飲んだ

2日目

All bugfixes are incompatibilities

様々なパッチをバックポートをし続けるにあたっての判断基準がしっかりあって、安心感がすごかった
途中、わしが報告したバグのチケットのスクショが出てきて、うおっ!ってなった

Better CSV processing with Ruby 2.6

秒速さん、めっちゃ楽しそうだった
CSV には伸びしろが沢山あった(ある)んだな

Ovto: Frontend web framework for Rubyists

流石にちょっと使ってみたくなるくらい凄かった
ちょっとした早押しクイズアプリくらいなら、これで書いても何も問題無いのでは

RubyData Workshop

Red Data Tools の人達がみんな楽しそうで良かった

The fastest way to bootstrap Ruby on Rails

コンテナという概念に縛られず、プロセスを自在に操って管理していくという部分がしっかりしていてすごいなと思った

What is Domain Specific Language?

どのようなメタプロを用いれば、どのような内部 DSL が実現できるか、ということを聞いていた

Lightning Talks

全部面白かったんだけど、The TracePoint Bomb! を見た瞬間に全部吹き飛んでしまって、頭痛くなるまで笑った

コード懇親会

@hanachin_ さん達と一緒に Redmine のソースコードを動かしたり読んだりしていたら、なんかみんなテストが通らないという現象に遭遇して調べていた

3日目

Ruby Committers vs the World

みなさん、今の Ruby より、未来の Ruby に目を向けているなと感じた
識者同士の議論を見ていると、わしには思いも寄らない観点が沢山出てきて勉強になる

Running Ruby On The Apple II

まさか assembly で Ruby(nruby) の実装をやってくるとは思ってなくて、とにかく凄すぎるという感想しか無い
現代までのコンピューターの発展が早すぎて、レガシーなコンピューターは、すぐギャグになってしまう

Play with local vars

滅茶苦茶面白かった
ローカル変数へのバインド方法クイズ、正規表現の名前付きキャプチャを知ってたのに出てこなくて悔しかった
Vim で発表されてたんだけど、めちゃくちゃな速度でライブコーディングしてて、わしもちゃんと開発環境にこだわらないと、いつまで経っても効率が出ないなと思った

The send-pop optimisation

明らかに不要な処理を省いて手数を減らしていく、しかも自動で、という取り組みを、再帰的に発生する yak shaving をこなしながら進めていく偉大な話だった

途中で分からなくなって呟いてたら教えて貰った

def hoge(x)
  x.times do |i|
    return 0
  end
end

p hoge(42) #=> 0

def hoge(x)
  x.times &-> (i) do
    return 0
  end
end

p hoge(42) #=> 42

def hoge(x)
  f = -> (i) do
    return 0
  end

  x.times(&f)
end

p hoge(42) #=> 42

def hoge(x)
  f = Proc.new do |i|
    return 0
  end

  x.times(&f)
end

p hoge(42) #=> 0

lambda と Proc の違い、引数の扱いの違いしか覚えてなかったけど、メソッドを抜けるかどうかというのもあるのか……

Optimization Techniques Used by the Benchmark Winners

とにかく最適化への執着がすごくて、freeze が出来るならしないと気が済まないみたいなのから始まり、しまいには謎の(謎では無いが)数字を使ったコードが出てきて、これで速くなるのは分かるな?って言われても、分かるけど分からなかった……
3日目の最後のセッションだったわけだけど、もうめちゃくちゃ眠くて、意識が飛びそうになるんだけど、数分に一回、衝撃的なスライドが出てきて強制的に覚醒させられる、みたいなのを繰り返して死ぬかと思った。

アフターパーティー

arm TresureData の提供で、良い感じのクラブを貸し切りにして楽しんだ
ウィスキーをロックで頼んだらコップになみなみとウィスキーを注がれたのが面白かった

やんちゃハウス

やんちゃハウスについては思うところがあるので、別のエントリで詳しく書くつもり

まとめ

Ruby 3 が顕現しそうという実感が出てきてワクワクする RubyKaigi だった

カテゴリー: 未分類 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください