RubyKaigi 2023参加レポート【IRBは人間がつくっているんだよ編】

hasumikin is a programmer.


RubyKaigi 2023 in 松本では、IRBをメンテナンスしているチームのアクティブメンバ4名全員(!)が登壇しました。 @ima1zumi、@_st0012、@tompng、それからわたくし@hasumikinです。

そこでこの記事では、わたくしを除く3名のトーク内容や人となり(?)をご紹介します(登壇順)。

Encoding lover @ima1zumi

フィヨルドブートキャンプ卒業生として有名な@ima1zumiは、UTF-8 is coming to mruby/cというタイトルの発表をしました。

こまかい話はご本人のブログでお読みいただけます。 ざっくり要約すると、現状のmruby/cにはエンコーディング概念がなく、Stringクラスのデータはただのバイナリであり、人間の側から見ると「Ascii文字」と「化ける(というか、各バイトの数値がそのまま露出するorたまたまユニコードとして成立する)文字」しかない、という実装です。 そこにUTF-8を処理するレイヤを挿入して、いま皆さんが読んでいるような和文や絵文字などを入出力できるようにしよう、という取り組みです。

@ima1zumiはエンコーディングが好きなので、文字を扱うライブラリであるReline(IRBのUIフロントエンド)に以前からパッチを送ったりしていて、その実績とやる気が認められてIRBおよびRelineのメンテナになりました。とくにRelineに詳しいので、「IRBのあの挙動はいったいどこから?」という話題になったとき、問題のありそうな箇所をスッと教えてくれます。 とても頼もしいです。

Stan Lo as the leader

台湾出身の@_st0012です。現在はロンドンで活動しています。 彼のBuild a mini Ruby debugger in under 300 linesという発表は、300行(実際には200行程度だった)でRubyデバッガを書く、というものです。

TracePointとBindingを駆使してRubyランタイムのイベントを検出してそこでストップして、ステップインしたりステップオーバーしたり変数の内容をチェックしたりする、というものです。

RubyKaigiについて世の中のみんなが「最高」しか言わないので、あえて「こうだったらもっとよい」という希望を述べますが、「自分のための道具を自分でフルスクラッチする話」をもっと聴きたいです(個人の感想です)。 Stanのテーマはまさにこれです。 自由度と柔軟性の高いRubyは、道具を書くのに適していると思います。

IRBチームにおけるStanは、ほかの3名がメンテナになる以前から精力的に貢献しており、チームのリーダー的な存在です。 IRBというツールの将来を常に考えていて、よりよいRubyエコシステムをつくるために日々の努力を惜しみません。

カタカタぺん!さん

TRICKキングとしておなじみの@tompngは、Power up your REPL life with typesについて発表しました。

型情報をIRBのメソッド補完に利用するという実用性の高いプロダクトで、カタカタIRB(katakata_irb)と命名されています。 つねにカタカタカタカタカタカタとプログラミングしているぺん!さんらしい名前ですね。

katakata_irbの導入方法は簡単なので各自調べていただければよいですが、近いうちにIRBの標準依存関係に含められます🎉 まつもと市民芸術館に4名が集って開いた「IRBカイギ」の場で、このことが決定しました。 こういうことがサクッと決められるのも、RubyKaigiエフェクトのひとつかもしれません。

@tompngはTRICKyなRubyを書く天才なので、IRBやRelineの意味のわからない(ほんとうに意味のわからない)エッジケースな挙動をたくさん見つけてきて、そこに片っ端からパッチを充てています。 そのお陰で、IRBのバグが最近だいぶ減ってきています。 ところでみなさん、IRBをインストールしていますか? Ruby標準添付のバージョンに満足せず、ときどきupgradeしてくださいね。


以上、IRBメンテナンスチームの3名とそのトークをご紹介しました。 文字コード大好き@ima1zumi、道具をつくるマン@st0012、変た..天才@tompngという人々が、IRBとRelineをぐいぐいハックしているんだということが伝われば、この記事を書いた甲斐があるというものです。