忍び寄る機能主義
TuxRaderというLinuxのニュースサイトに面白い記事が載っていた。「Creeping Unix featurism」。「忍び寄る機能主義」とでも訳すのか。有名なUNIX哲学の一つとして、Doug Mcllroyは「一つのことをうまくやるプログラムを書け」と言っている。しかし、現在のLinux開発者はそんなことにはおかまいなしのようだ。まぁ、「GNU is not UNIX」というのはお約束の突っ込みだが。記事では、UNIX V6、SVR4、Ubuntu 9.04のmanページから、主要な16コマンドのオプション数を調べている。Plan9を追加したものが次の表。
Command 1975 1990 2009 Plan9 Minix3 cat 0 5 12 0 1 cc 6 30 >500 12 37 cmp 2 2 7 3 2 cp 0 3 28 3 9 date 1 2 9 2 5 diff 1 15 27 7 5 find 15 23 80 - 17 grep 4 8 46 11 7 ln 0 3 13 - 9 ls 10 23 58 13 25 mkdir 0 2 6 2 2 mv 0 2 12 3 6 ps 4 12 84 2 3 rm 2 3 11 2 6 sort 6 14 23 15 11 wc 0 3 8 5 3
「ソフトウェアの単純さ」にも書いたけど、catにオプションを付けないのはUNIX哲学の現れか? ちなみに、Plan9にはfindやln(そもそもハードもソフトもリンクはない)コマンドはない。
しかし、psのオプション数が84とかあり得なくないか?どうもshort、long、ハイフンあり/なりを全部別にカウントしているようだ。
(追記:2009-08-26)Minix3の結果を追加。こちらもずいぶんコンパクトそうね。Minix 1のシステムコールはUNIX V7互換だったし、ユーザランドもその辺を参考に作られた?