忍び寄る機能主義

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互換だったし、ユーザランドもその辺を参考に作られた?