言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

こんな技術を発明をしたい。

ソフトウェア技術者として、こんな発明をしたいなーと思う事があります。それは、だれもが思い付きそうで、作るのも使うのも簡単で、そのくせ便利さを知るとやめられなくなるような発明です。一番ぴったり来る例は、ユニットテストです。私はユニットテストについて語りだすと切りがないほど信奉しています。

私の書くプログラムは出来る限り一つ一つの関数に丁寧に心を込めてユニットテストを書き、プログラミング言語を作るときはまず最初にユニットテストのライブラリを書きます。ユニットテストというのはそれほど対費用効果の高い物だからです。ユニットテストのおかげで、ややこしいデバッガを使わないと分からないような(もしくはデバッガ自体を自分で作らないといけないような) 面倒なバグを瞬時に検出出来ます。ユニットテストが万能では無いというのは承知していますが、ユニットテストがあるかないかでは天地の差があります。ユニットテストは、プログラムでプログラム自身のテストを書くとう単純なコンセプトなのにも関わらず、作るのが簡単で、しかも大きなシステムから小さなユーティリティまで便利に使えるという凄い特徴があります。

ユニットテストには劣りますけど、他に便利な発明というと diff があるでしょう。diff というのはちょこっと変更した文章の差分をみるやつです。diff の事をそんなに気にかけている人はいないと思うけど、明日から diff が使えないとなったら発狂すると思います。

世の中にはもちろんもっと重要な発明も沢山あって、例えば「オブジェクト指向」だとか「インターネット」だとか、そういう重量級のやつは、まあ私には縁が無いかなと思っています。どちらかというと、ちょっと簡単なテクだけど異常に便利!みたいなのを思い付いたら良いなーと思っています。