松江Ruby会議12に LT 登壇した。
matsue.rubyist.net
島根県指定有形文化財の興雲閣での開催ということで、同僚の S.H. さんとテンションが上がっていたのがプロポーザル提出のきっかけだったと思います。参加できて楽しかったです。
自分のトーク
何を話すかといったところ、度々見かける NotImplementedError の本来の用途ではない使い方の問題のエレベータピッチにしてみようと提出していたもの。松江Ruby会議のキーノートと対談コーナーのアイコンが元になっているのと、パラレルのタイムテーブルではないので、おそらく提案を直接聞いてもらえるだろうという前提を置いていた。
スライドは以下。
色々と聞けたのが収穫。自分の解釈として以下箇条書きで。
- サブクラスで実装されることを期待するのに
NotImplementedError を使うのは本来の意図ではない
- Ruby として
NotImplementedError の代わりのクラスを入れるではなく、サブクラスで実装すべきものをスーパークラスで実装していないままなら、ダックタイピングとして NoMethodError を起こすなどの設計が考えられる
- そうは言っても、ユーザーのユースケースとして、サブクラスで実装されることを期待するスーパークラスのメソッドでそれ用の例外を起こすというユースケースがあるのは事実
- 既存の
NotImplementedError はひとまずそのまま
SubclassResponsibility あるいは AbstractMethodError という名前の例外クラスを新設する
- 新設する例外クラスは
ScriptError を継承するものとする。StandardError ではない。
余談ながら、自分は NoMethodError と同じような位置付けとして、StandardError を継承するものだろうと思っていたところ、そもそも NoMethodError も本来的には StandardError 継承をしたくなかったけれど、途中で変更するには影響が多すぎたというエピソードはなるほどとなった。
簡単にですが、公開スライドは発表時に加えて、上記を踏まえた「編集注」という但し書きを付与しています。
余談ですが、登壇について「間違っていたら怖いから発表できない」という声を聞くことがありますが、私の今回の登壇は間違っていた方を選んだもので、間違っていたらいたで直す機会になるし機会がなければ直らないので、むしろ登壇すべきだと思っています。間違えるつもりで間違う人はいないわけなので。
そんな感じで、自分の LT が、まつもとさん、卜部さんへの質疑応答というスタイルだったため、「卜部 昌平 氏 & まつもと ゆきひろ 氏の対談」コーナーで優先して質問を拾ってもらえていたというか、たくさん時間をもらってすみませんといったところ (ありがとうございます) 。
ここでの話は、開発者会議の議題として提出しておきました。後述。
2026年6月11日追記
開発者会議の結果、class AbstractMethodError < ScriptError という方針になったようです。ご検討ありがとうございました!
bugs.ruby-lang.org
全体
色々と印象に残ったトークはあるものの、shyouhei さんのトークは大江戸Ruby会議の生活発表会的な感じの OSS プログラマーの自然体な話で興味深く聞けたり、joker1007 さんと tagomoris さんの高度なギャング抗争はさすがだったり、pocke さんは本当に Ruby をイチから作っていてビックリするしかなかった。
多少音楽を嗜んだ身としては、純正律に関するトークをした nagachika さんのあとに、平均律で音楽を奏でる 5hun さんという、これもある意味で抗争的なトークになっていて良かった。mruby と PicoRuby のお膝元だけあって、ydah さん、makicamel さんはじめ、何らかのデバイスが用意されたトークの数も結構あったように思う。
高尾さんの司会がプロすぎて、RWC の司会の石原さんを彷彿しました。松江イベントの司会力すごい。
個人的には西田雄也さんと、KOF 2005 (厳密には KOF 宴会) 以来、20年ぶりにお会いして、しかも LT で並んでいたのがなかなかエモい会でした。実は生 shugo にお会いしたのはこの時が初めてなのですが、shugo さん覚えてらっしゃるかな? (覚えていないと言われたことがあった気がする)
shugo.net
余談ながら、高橋会長の高橋メソッドの書籍のゲラハック会があったのも、この KOF 2005 の懇親会の後の夜のこと。
今回のカンファレンスでも、layout: takahashi といった構成を用意しているといったプレゼンを見たので、高橋メソッドは時を超えてきているのを感じていた。
Kaigi Effect
自分の LT へのフィードバックをまとめたものを、bugs.ruby-lang.org へのイシューコメント並びに、2026年6月11日の開発者会議向けに提出しておきました。
bugs.ruby-lang.org
2026年6月11日の開発者会議向けのイシューはこちら。6月8日までにコメントの旨と書かれていたのに気がついたのが、6月8日だったので急いで認めていました。
bugs.ruby-lang.org
yhara さんの LT で言及していただいた chroma-rb の Chroma v2 API 対応の PR について、後日作者にメールしてメンテナンス権をもらって v0.9.0 としてリリースしておきました。
github.com
rubygems.org
佐香や
今回の松江滞在中も、佐香やさんには遅い時間までお世話になりました。2日目は懇親会幹事の hasumikin さんに「お先に失礼します」せずに先に帰る失態。また遊んでやってください。
実行委員長の佐田さんはじめスタッフのみなさん、とても楽しい地域Ruby会議をありがとうございました。