テストステ論

京大卒の高テス協会会長がテストステロンに関する情報をお届けします

エディタ開発の魅惑

おれは最近、自分のエディタを開発している。

GitHub - akiradeveloper/ijk: A real editor for real programmers

イージックと読む。名前の由来は、easy codingとか、プログラミングで典型的な三重ループのインデックス名だったりとか、こじつけはいくらでもある。しかし実際には、押しやすいことが一番だと思った。ijkは右手の2本だけで瞬時に押せる。viは左右を使わないといけない。emacsとかはeというエイリアスをつけてる人がいるが、これは反則だろう。

なぜ開発を始めたのか。Rustを学習するにあたって、適度な演習問題がほしかったからに他ならないが、今はこれが生き甲斐というかおれの人生そのものだと思うようになっている。おれはエディタに魅惑された。

他にもやらないことは山程あったように思うのだが、朝から晩までずっとエディタのことばかり考えている。他のことを一切考えられないし、エディタを開発しない人間を憎いと思うようにすらなっている。エディタアスペかエディタサイコパスか。とにかく自分の中のエディタ熱が恐ろしい。

エディタ開発の魅惑とは何なのか。それは設計である。どうしたらundoが出来るようになるのか。どうやってモードを管理するか。viのようなモードありのエディタを作ろうとすると、多くの設計問題に遭遇する。いかにエレガントに、理路整然とした形で作り上げるか。これが求められる。もし煩雑な書き方をすれば、たちまちコードは膨れ上がり、おそらくバグは永遠になくならないか、無限に同じようなコードやつじつま合わせのようなコードを書き続けることになる。

従って、いかにしてエディティングの根源にある法則を見出し、それを実装するかが求められる。Rustにより開発されているエディタというのは他にも山程あって、それぞれにコンセプトがあり、設計があり、同じようなことをやっているはずなのにコードの形が全く違うということもある。

この繊細さに魅了されている。おそらく他の人たちもそうなのだろう。自作言語、自作OS、それぞれがほぼ100%の確率で人類にとって無価値になるものをただ楽しさのために作ってしまう人たちがいる。自作エディタも、そんなものの一つなのだと思う。