RubyKaigi 2018 に参加してきた

なんだ

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 を使っていて、型+エディタの機能の良さというのは分かっているつもりだったんだけど、本質的な型の議論について、実のところ全然意味がわかってないんじゃないかと言う気がしているので、ちょっと近いうちに型について語れるくらいになろうという気持ちになった。型について語らないと


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

コメントを残す

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

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