なんだ
RubyKaigi 2018 に参加してきた。
毎日飲み歩いたり牛タンを食べたりするためだけに行ったわけではないので、聞いた講演についてのメモを書いておく
1日目
Matz
keynote
ことわざをテーマにして話が進んでいった
「名は体を表す」からの `Object#then` の流れが鉄板すぎて笑ったw
アーロン
Analyzing and Reducing Ruby Memory Usage
アーロンの発表は、いつも自分の仕事の中で見つけた問題点について真面目に計測、調査を行って、根本的な原因までたどり着いてパッチを書くという事をしていて、本当にすごい。尊敬している
自分で書いたパッチと同じ内容が5年前にポストされていたのを見つけて、そちらをマージしたという落ちには笑ったけど、冷静に考えてみると、それはすごい事だぞという感じだった
joker & moris
Hijacking Ruby Syntax in Ruby
息がぴったりの Asakusa.rb の二人の発表を見た
この二人は他の言語にも詳しくて、すぐに「あの言語にあるあれ、Ruby にあれば便利なのにな」とか言って作り始めるし、Ruby の隅から隅まで使って動くところまで実現してしまうのがすごい
この内容でも、まだ中級編らしいので、2019 にどうなってしまうのか、いまから楽しみという感じだ
Piotr さん
TTY – Ruby alchemist’s secret potion
これ、結構すごくて、コマンドラインツールを WEB アプリケーションとかデスクトップアプリケーションみたいなものに見立てて、MVC みたいな考え方をコマンドラインツールに適用したフレームワークを作った、みたいな話だったと記憶してる
バルク転送のプログレスバーを同時に複数本 AA でシェルに表示するデモとか、見応えがあった
そのっつさん
Fast Numerical Computing and Deep Learning in Ruby with Cumo
CUDA を Ruby から使うための Cumo というライブラリを作っている話を聞いた
Numo の 75 倍、速くしましたって言ってて、すごく便利そうだなと思いましたまる
GPU のメモリーを欲しいだけ適宜切り出すための BFC という仕組みを再実装しているとか、そういう話だった気がする。こういう作れば出来そうだったから作ったら出来ましたみたいなやつ、すごい
iwao さん
Exploring Internal Ruby Through C Extensions
Ruby の C Extension を書くためのチュートリアルみたいな内容から、Ruby の内部についての話を聞いた
Ruby の組み込みライブラリとかは良く出来ているので、速度を求めて C 拡張を書いても、大抵太刀打ちできないという話をしていた。振り返ってみると、これが最終日のこくぶんさんの話の落ちの伏線になっていて面白い
LT
だいたい面白かったんだけど、最後に usa さんが赤いツノをつけて出てきて Ruby が毎年死ぬという話をした印象が強烈で、ほぼそれしか覚えてない
2日目
すとうさん
My way with Ruby
すとうさんプロダクトの博覧会という感じの話を聞いていた
必要なものを作り続けていたら、めっちゃたくさんできてた、みたいなの、本当にすごい
すとうさんから生まれる自由ソフトウェアが、確実に社会を豊かにしていて、尊敬する
Kirk さん
It’s Rubies All The Way Down
これ、なんか、ほとんど分からなかった……
ささださん
Guild Prototype
Ruby 3 に提案されている並列処理をサポートする仕組みの話を聞いていた
guild 間のメッセージング、現状の感じだと治安を維持したまま書く自信がない気がする…… 受け取るべきでないものを受け取ったり、してしまいそう……
これで書いたコードをどうやってテストしていけばいいのか、いまいちイメージが湧かなくて困る……
せきさん
extend your own programming language
Ruby で作る Ruby、についての話
この本、一通り写経しただけで、改造とかはしなかったので、わしもなんか変な機能を入れたりして楽しんでみたいなと思った
soutaro さん
Ruby Programming with Type Checking
Steep という型管理のシステムについて
型の scaffold みたいなので型定義をゴソっと作ってくれるんだけど、だいたい any 型な中、`hoge?: boolean` みたいに ? がついてたら boolean をとりあえず候補にしてくれるのがちょっと賢いと思った
udzura さん
コンテナ技術、プロセス制御技術を駆使して、1つのサーバーに何万ものサービスを収容して運用していくための研究についての話を聞いていた
未来のコンピューティング環境について、かなり先を見据えて取り組んでるんだなという感じだった
まめさん
Type Profiler: An analysis to guess type signatures
`1..` みたいな終端を指定しない range を作った話を聞いていた
なるほど、えんどうれすレンジ……
コミッターたち
Ruby Committers vs the World
わいわいしていた。`Object#then` どうなってしまうの……
3日目
Benoit さん
Parallel and Thread-Safe Ruby at High-Speed with TruffleRuby
めっちゃ NES(OptCarrot) を動かしてた
NES が起動してから、数秒間は 10fps くらいしか出てないのに、JIT が効いてくると 200fps くらいまでブーストされて笑った
定数からなる処理をするようなコードがどんどんシンプルになって、最終的に定数になるのがすごかった
ITOYANAGI さん
IRB Reboot: Modernize Implementation and Features
IRB を良くする話を聞いていた
英語の発表だったけど、わしにとっては大変聞き取りやすい英語でよかった(RubyKaigi 2018 で聞いた中で一番聞き取りやすかった)し、導入から本題へのつなぎも最高に面白くて、話すのが異常にうまいなと思った
REPL の中で、文や式が続いてるのか、終わってるのかを判定したり、今、何レベルのネストなのか、というのを知るのは地味に大変というような話だった
ITOYANAGI さんのすごいところは、みんなが「ここのダメな部分は、もう、こういうもんだから仕方ないね」みたいな感じになってるところについて「いやいや、やればいいだけだから」みたいな感じでゴンゴン修正して改良を実現してしまうところで、めっちゃすごいなと思っていつも見てる
こくぶんさん
The Method JIT Compiler for Ruby 2.6
こくぶんさんの JIT への取り組み方、すでに Ruby の中にあるものはあるだけ有効活用しながら、本当にやらないといけないことにだけ注力して結果を出していてすごいなと思う
GC を気にしながら C 実装を追加するより、JIT が効いた Ruby クラスを使う方が速かった、つまり C langage is dead. って落ちは本当に最高だった
Shugo さん
Build your own tools
shugo さんプロダクトの博覧会というような話だった
そして自由ソフトウェア
ようちゃん
How to get the dark power from ISeq
ようちゃんはいつも新しいことにチャレンジしていてすごい
オブジェクトとして組み上げた ISeq を実行するデモ、良く考えるとすごいなと思った
デモが成功した時に最初に拍手したの、わしわし
TRICK
人外魔境という感じの発表会だった
優勝の「予約語だけで書いてエラーにならず、かつなにもしない」みたいな虚無のプログラム、発想がすごすぎて笑った
FINAL とは言ってたけど、もしまたやるなら、エントリーだけでもしたいなという気持ちになった
やんちゃハウス
2017 の広島に引き続き、Airbnb で家を借りて、9 人でシェアして4泊していた。みなさんの予想に反して、毎日 03:00 には就寝していたし、だいたい、全員毎日朝一の講演には間に合っていたようだ
会場からも仙台駅からも遠かったので、居住者以外のお客さんは1名しか来られなかったけど、それはそれでよかったんじゃないかなという気がする
様々な条件が整えば、来年も実施しようかなとは思っているので、気になる人は情報をチェックしてほしい
まとめ
最近 TypeScript を使っていて、型+エディタの機能の良さというのは分かっているつもりだったんだけど、本質的な型の議論について、実のところ全然意味がわかってないんじゃないかと言う気がしているので、ちょっと近いうちに型について語れるくらいになろうという気持ちになった。型について語らないと