@kyanny's blog

My thoughts, my life. Views/opinions are my own.

RubyKaigi 2022 Day 2

今日は寝坊しかけることもなく余裕を持って Keynote から視聴した。

Matz Keynote - RubyKaigi 2022 ★★★☆☆

所属が Ruby Association になってるのは、Heroku はクライアントとして割と特別だったけどそれが無くなったから、とか何かあるのかななどと邪推してしまった。

冒頭「松田さんの代わりの MC はこれくらいにして」→ラスト「MC まつもとで始まり CM まつもとで終わりましたね」という綺麗なオチが面白かった。

いろいろメモは取ったのだけど、持ち帰って欲しいメッセージ(価値を生むことにフォーカスしよう、いろいろな形で貢献してください)はなんとなくわかったが、Ruby の方向性を打ち出す、みたいな勢いに欠けるなあ、という印象だった。これはこの日ラストの Ruby Committers vs The World を見ていても感じた。

Ruby 開発コアチームに Project Manager/Program Manager が必要、みたいな話もあって(肩書きを明言はしなかったが)、ふーん・・という、なんか消化しきれないものが残った。

ruby/debug - The best investment for your productivity - RubyKaigi 2022 ★★★★★

ここまででベストのトークだった。論理的に組み立てられた、丁寧なプレゼンだった。デバッガの画面上のパーツの説明までする丁寧さには恐れ入った。そして説明も必要十分という感じでとてもわかりやすい。英語もとても聞き取りやすい(喋る速度も使う単語や表現も)。基本的なところから積み上げて行って徐々に高度な内容になっていくが、過程で「飛ばした」と感じる箇所がひとつもなく、取り残されない。おそらく録画だったと思うが、完成度が高いプレゼンのストーリーを入念に練習したことが伝わってきた。

Scriptable Breakpoint という目玉機能について、第一印象は「それいる?」と懐疑的だったが、benefits の根拠がどれも理にかなっていて見事だった。チャットに I am highly convinced with the benefits of Scriptable Breakpoints とコメントしたほど。特に「デバッグセッションの特定のポイントに到達するまでの手順・コマンドをスクリプトとして書くことで他の人に共有しやすくなる」という着眼点が素晴らしいと思った。そんなこと考えたこともなかった。

文句のつけようがないトークだった。最初の方で「他のプログラミング言語のデバッガでもこれらの基本機能の多くは共通しています」と触れられていたとおり、デバッガとはどういうものでどのように使うのか、という勉強はこの動画を見ればバッチリだと思う。以後もしおれが新人プログラマをトレーニングする機会があったら、デバッガについてはぜひこの動画を見せたい。日本語字幕か日本語音声が付いたらさらに多くの人にとって利益があると思う。終了後チャットに What an excellent talk! I wanted to see this talk when I started my software engineering career 2 decades ago. とコメントした。本当に、二十年前に見れてたらどれほど時間と労力を節約できただろうか・・。

Implementing Object Shapes in CRuby - RubyKaigi 2022 ★★☆☆☆

裏セッションの RuboCop に全然興味がない、というかむしろ積極的に避けたいテーマなのでせめて英語セッションを聞いておくか、と選んだ。内容はこちらもやっぱりあんまり興味が持てない実行速度の話だったけど、英語は十分聞き取れて、Object Shapes というものがなんなのかコンセプトや実装の概要を理解できた。

Ruby x BPF in Action: How important observability is - RubyKaigi 2022 ★☆☆☆☆

プレゼンのスピーチが下手すぎて、せっかくの発展的で興味深いであろう内容が台無し、非常に勿体無いトークだった。英語の原稿を用意して読み上げるのは全く問題ないが、明らかにスピーチの練習不足、どころか原稿の下読みすらしてないのでは?と思う場面が幾度もあった。日本語で書いた原稿を機械翻訳したのか誰かに英訳してもらったのではないかと思うが、馴染みのない単語や表現を書き直してないから単語の読み方がわからない・喋りが止まる・何度も読み直す、などのつたない所作が目立った。見たことないけど学会発表とかあんな感じなんだろうか。あれでは英語話者にとっても決して理解しやすかったとは思えないし、大多数の日本人にとってはなお一層厳しかっただろう。割り切って日本語でスピーチして、会場の日英同時通訳に任せたほうがすべての聴衆にとってハッピーだったと思う。

配列リテラルの記法を %w@ ... @ と書いてる人は初めて見た。よく使われる記号だと埋め込みで書く C のコードと記号がかぶるからまず使わないであろう @ をデリミタに選んだのだと思うが、これは珍しいなと目を引いた。

How fast really is Ruby 3.x? - RubyKaigi 2022 ★★★★★

これもとても良いトークだった。Context として Ruby 3x3 の話とそれを受けての「Rails アプリケーションは 3 倍速くはならなかった」という過去の類似トークの存在に言及した上で、このトークはどこが違うのか(どこに新規性があるのか)、という前提をしっかり説明していて、これも論理的でよく練られた構成だと思った。Rails(Web アプリケーション)とは性質の異なる Fluentd において Ruby 3x3 は概ねその目標(3 倍速い)を達成していることを「実際の利用者からのフィードバックが欲しい」と言っているコア開発者たちへの「アンサー」としてポジティブな点をしっかり褒めつつ、一方でライバルと目されるスクリプト言語たちと比べるとまだまだ改善の余地がある点もフェアな検証方法で示して見せて、今後への期待・注文という発展的な締めくくり方をしていて、なんというか「貢献しているユーザー」の代表・お手本みたいだった。

他言語との速度比較のために「今回頑張って Perl を書きました!これが今回の講演で一番大変なところでした!」と冗談を言っていて笑った。講演後半のクイズは外れた(2 番目の選択肢を選んだ)。

Packet analysis with mruby on Wireshark - dRuby as example - RubyKaigi 2022 ★★★☆☆

直前まで裏セッションを聞こうかと思っていたが、別に Zendesk の人を見たからといってどうということもないし、メモリリークの調査とかする機会ないし、だったら最近仕事で初めてちゃんと使った Wireshark の話のほうが興味持てるなと思って鞍替えした。まさかの「ネットワークやプロトコルに興味があって Wireshark も趣味で」という動機で、ネットワークやプロトコルにずっと苦手意識とコンプレックスがある身としては、そんな人もいるのか・・と呆然とした。賢い人がコンピューターの深い話をしている・・というので少し劣等感を刺激された。

これもロジカルなプレゼンで、おれは感覚派・感覚に訴える系のプレゼンよりもこういう理詰めのほうが好みなのかと気づいてちょっと意外だった。Wireshark に mruby を埋め込むために Wireshark を fork した、とかなかなかワイルドで、行動力あるなーと感心した(fork 自体は誰でもワンクリックでできるが、fork して改造しよう、と思って実際にやるのはまた別の話だ)。「これで Wireshark のなかで Ruby を実行できるようになりました(ニッコリ」と、これから面白いところに差し掛かる、というところで会場のネットワーク障害が発生し、しばらく中断後に講演は再開されたもののライブストリーミングは復活せず、途中までしか視聴できなかった。

Caching With MessagePack - RubyKaigi 2022

ネットワーク障害の復旧待ちで予定時刻より大幅に後ろ倒しして開始されたが、この講演の最中もライブストリーミングはダウンしていて、復活したと思ったらほぼ最後、一分もしないうちに終わってしまった。なので事実上視聴してないに等しい。

Ruby Committers vs The World - RubyKaigi 2022 ★★★☆☆

開始前の Cookpad のスポンサープレゼンで、クックパッドマートが独自の配送網を持っていてトラックの配車?ルート?とか物流領域のシステムも自社開発してるっぽいというのを聞いて、何年か前まで物流は自分の中でホットな領域だったので、あーそっかー、数年前に知ってたらどうだったかなあ、と思った(数年前は配送関連は手掛けてなかったかもしれないが)。

これもいろいろメモはしたが、印象に残ったのは Ractor 頑張りますという話に対して「目的がわからない、手段が目的化しているように見える」というツッコミ、それに対して「確かに目的というか具体的に自分が欲しい訳ではないが・・」からの「僕もデータ処理を特に自分でやりたい訳ではないが・・Ruby が好きだしデータ処理は今後『来そう』だから、データ処理くらいできないとダメですよと言われないように」、「僕はデータ処理は Julia でやるので・・だから Julia でやっていることを Ruby でやりたいという目的がある」という一連のやり取り。でも汎用プログラミング言語ってそんなもんなんじゃないのかな。そうでもないのかな。

Ruby 2.x がもうディスコンになるというのは、早いなーと感じた。なんかいまだに 1.9 系ですらちょっと新しいほう、というイメージがある。それだけ 1.8.x 特に 1.8.7 が脳裏に焼き付いている感がある。パターンマッチ、全く使ってないけど、ちょっとちゃんと文法を覚えて普段書き捨てるようなプログラムでも使っていきたいな、とふと思った。最後の it vs 1 2 については、初見では 1 2 ってダサいし書きづらそう読みづらそうと思ったけど、少し使ううちにすっかり慣れて、書き捨てプログラムではごく自然に使っている(手癖でブロック変数書き始めてから、一呼吸入れておやっと気づいて書き直す、みたいなラグはあるけど)。なので it が欲しいとは思わない、けど使えるようになったら自然に使うようになるのかもしれない。