インタビュー : 先人からの贈り物を次世代に〜生みの親に聞く【3】

道具を使いこなすには、発明者が何を思ってそれを作ったのか、その思想を理解することが近道。そこで、usp Tukubaiの生い立ちを、生みの親である當仲氏に語ってもらった。

lsコマンドは、出来の悪いコマンドの見本

そのやり方に先人の教えに基づく信念があったとはいえ、初めから確信を持てたわけではなかったのではありませんか?

初めは素人がやることだから、そもそもの要求が鋭くなかったんです。次第に「あ、お前、これも出来るんだったらこれも」って順番に高い所にニンジンがぶら下げられていくうちに段々脚力がついてきたんです。

その過程で、生まれたコマンドもあれば、淘汰されたコマンドもありましたよ。同じプログラムでも、アルゴリズムを工夫しようだとか、AWKで書いていたのを次はCでとか、そういうことで段々練られていきました。

コマンド書式に関しても、オプションも増やすだけだと何がなんだかわからなくなるので、出来るだけシンプルにマニュアルのいらないコマンドを作ろうとしました。優れた技術は人に近づく、という言葉がありますけど、要はマニュアルを見ながら車を運転している人はいないでしょ。例えばハンドルは、見た目の感覚で右に回したら右に曲がるような気がする。それが、実際にも腕と連動して右に曲がるから、操作しやすいものになっているんです。

そんなふうにしてコマンドは2000個以上作りましたけど、そうした試行錯誤の後に残ったのは、シンプルなものだけ、数十個くらいしかないです。

2000個も!? そうすると残ったコマンドは相当エリートなんですね。

いつも例に出しているのは、スプーンとフォークとナイフだと言っているんです。その3つがあれば、どんな食べ物でもうまく切ったり口に運べたりしますよね。スプーンとかの形を見たら、俺でも作れる、って世界中で多くの人が思うでしょう。でもスプーンやフォーク、ナイフがこの世に全く無かったとしたら、食べ物を上手く食べられる食器を一から考えるのは難しいでしょ。一度じゃ上手くいかなくて、変な食器を発明しては、口を切ったりこぼしたり……そして、結局はああいう形に落ち着いていくんだと思います。

ところで、lsコマンドのオプションって暇な人が数えたら80くらいあるらしいんですよ。出力の幅を揃えるようなオプションだとかがいろいろあるんですけど、foldやcutコマンドを組み合わせてやればいいのに、lsコマンド自身に色んな機能を実装してどんどん増えていったんですよ。だからあれはUNIXの中では最低なコマンドと言われていて、出来の悪い物の見本として覚えておけ、みたいなことが何かの本に書いてあったんです。

なので、Tukubaiのコマンドにオプションなんて物はほとんど無いですね。基本的に頭に入らないものはコマンド化しません。こんなこと言うと怒られちゃうかもしれないけど、マニュアル見ながらコマンド打つなんて最低ですよ。歌手は楽譜を見ながら歌っちゃ駄目。歌手と歌は一体化していないと。

Tukubaiのコマンドは名前も独特ですよね。日本語そのままなものも多いですし。

lsは「LiSt」の略だしcatは「conCATenate」の略、grepなんてGlobal Regular ExPressionの略です。なぜ略なのかと言えば、短いコマンドの方が早く打てるという現実的な理由です。速記と同じですね。Tukubaiも同じで、速記が出来、かつ種類を抑えながら万能化するにはどうすればいいかということを重視し、コマンドの数はあまり増やさないようにしています。増やせば名前が長くなりますから。かと言って、新しい物をつくることに否定的なわけじゃないですよ。使ってみて手になじむようだったらそっちにするとか、試行錯誤は常に行われています。

インタビュイー

當仲寛哲(とうなか・のぶあき) : 1966年生まれ、兵庫県出身。株式会社ダイエー在籍時に、UNIXシステムを再勉強し感銘を受ける。そこで学んだUNIX的発想を活かし、当時年間数百億円費やしていた社内システム維持費を数十億円に削減させ、社長賞を受賞。2004年独立し、ユニバーサル・シェル・プログラミング研究所を創立。現在に至る。

USP MAGAZINE Vol.4「特集1 ついに始動Open usp Tukubaiプロジェクト第二章 先人から>の贈り物を次世代に」より加筆修正後転載。

usp Tukubaiユニバーサル・シェル・プログラミング研究所の登録商標。

Last modified: 2014-01-13 00:00:00