2004年02月16日

GNU宣言

 初めてGNU宣言を読んだのは、いつのことだったか。「これはソースコードからビルドする世界の話だ」というのが、当時の感想だった。もちろん人は普通、ソースコードからビルドなどしない。面倒だからだ。とはいえ、そういう世界では筋の通った話だとも思った。

 いま、Stallmanの「フリーソフトウェアと自由な社会」を読んでいる。再びGNU宣言を読んでみて、致命的な問題にひとつ気づいた。

 プログラムの使用を制限してプログラムのユーザからお金をとることは、その制限のせいで、使用できるプログラムの種類や方法が減ってしまうので、破壊的行為となる。これは、人類がプログラムから得られる富の量を減らしてしまう。故意に制限すると決定したときには、意図的な破壊という有害な結果をもたらすだろう。

 この主張は誤っている。プログラムの使用を制限しないことによって、人類がプログラムから得られる富の量を減らしてしまう場合がある。例を示そう。TeXとviだ。

 もしTeXとviが有料だったら――いまごろはもう、電算写植やTECOと同じく、歴史のくずかごに送り込まれていたはずだ。では、そのようなパラレルワールドに暮らす人類は、この世界の人類よりも、プログラムから得られる富の量が少ないといえるだろうか。断じて、ノーだ。

 ロールズ流の社会契約論的アプローチを思い出していただきたい。それは、こういう思考実験だ。人間心理、社会、科学などの一般的知識については神のごとく完璧な知識を備えているが、自分自身のことはなにも知らない、という人間がいるとする。こういう人間が、自分の暮らす社会をゼロから再設計したら、どんな社会ができるか? もちろん私の知識は不完全だし、自分自身のことを忘れることもできないので、この実験を完全なかたちでは行えない。それでも、少なくとも、3つのことを断言できる。その社会は、QWERTYキーボードのない、TeXのない、viのないものになるはずだ。

 Stallmanの、いったいなにが間違っていたのか? 第一に、進歩を無視している。

 ハードウェアだけでなく、ソフトウェアの思想も進歩する。1990年代以降に、TeXの構想を人に見せたら、嘲笑されるか無視されるか、どちらかだ。viは80年代にすでに論外だった。これは、HTTPのステートレス性やUNIXのroot特権のような、設計上のバランスにかかわる相対的な問題ではない。グローバル変数しかない高級言語が間違っているように、絶対的に間違っているのだ。

 第二に、過去との競争を無視している。

 パッケージソフトを売る会社にとって、違法コピーより恐ろしいのは、「ソフトは摩滅しない」という事実だ。売上を維持するには、過去の自社製品をガラクタに仕立て上げる必要がある。パッケージソフトにとって、独占はたいした意味を持たないのだ(だからMSは、WindowsやOfficeをプリインストールで売ることに懸命である)。期限付きライセンスはまだ救われるが、ダウンサイジング以降、こういう楽園はますます希少になりつつある。

 フリーソフトウェアでは、過去との競争が起こらない。新製品の宣伝に洗脳されることのないユーザは、「奥が深い症候群」に陥り、バッドノウハウを不要にするかわりにバッドノウハウを蓄積してゆく。

 以上、フリーソフトウェアが人類の富を減らす場合があることを論じた。

 これは、あくまで「場合がある」という話であり、フリーソフトウェア全体としてどんな得失があるかは、また別の話になる。たとえばライブラリでは、フリーソフトウェアはきわめて有益に思える。が、フリーソフトウェアのない世界と、フリーソフトウェアしかない世界と、どちらかを選べと言われれば、私は迷わず、フリーソフトウェアのない世界を選ぶ。

Posted by hajime at 2004年02月16日 00:54
Comments