今、世界中で自ら進んでタダ働きするプログラマが増えている。 突然、こんなことを言っても信じられないだろうが、 あなたが今見ているこのページも、 そういうタダ働きによって開発されたアパッチというプログラムによって あなたのパソコンに送信されている。
アパッチはアパッチファウンデーションという組織によって開発されている。 この組織には世界中の優秀な数百人のプログラマが参加しているが、 給料をもらっている者は誰もいない。 世界的規模の同好会のようなものである。 多くの参加者は、週末等のプライベートな時間を使ってアパッチの作業をしている。 そういう人たちが、実際に高性能のプログラムを作ってしまったのだ。
インターネットにはこのような裏方的な仕事をするサーバという種類のコンピュータがたくさん使用されているが、 そのサーバの主要な技術の大半がタダ働きで作られている。 そこまで言っても信じられないだろう。 「そんなにタダ働きする人が大勢いたら世の中が滅茶苦茶になってしまう」 と思うだろう。 実際、滅茶苦茶になっている。
マイクロソフトは、タダ働きのために自社の製品が売れなくなってしまうことを本気で心配している。 そのためにいろいろな手を打っている。 当然、そのタダ働きする人を利用しようという企業もある。 天下のIBM社がその筆頭である。 レッドハットというベンチャー企業は、 タダ働きでできたソフトウエアを自社の製品として販売している。 日本の経済産業省も大手電気メーカーもこの動きに対応しようとしている。 コンピュータ業界は今「オープンソース」というタダ働きするプログラマたちによって、 かき回されていると言ってもいいだろう。
この動きは突然初まったものではない。 30年以上前から、よりよいコンピュータを開発するための技術的な努力の中から、徐々に進化してきた。 最初はユニックスという基本ソフトから初まった。 このソフトは、ある研究所で開発された実験的なソフトだ。 これが多くの大学で使われた。 もとから優秀なソフトだったが、使われていくうちにますます改良されて、 非常に実用的なソフトになった。 今、インターネットのサーバは大半がこのユニックスという基本ソフト、 または、それに非常に大きな影響を受けたソフトで動作している。
このユニックスが改良されていく過程で、 プログラムの開発の方法の常識も変化していった。 文書作成にたとえると、添削を重視する考え方が主流になった。 従来は、1000行の文書を作るなら少なくとも990行の文書を作ってから添削を行なった。 テニオハを直したり、句読点の抜けを直すような作業を行ない1000行の文書が完成する。 つまり、添削は補助的な作業だった。
しかし、ユニックスは改良されながら進化した。 1000行の文書を大勢の人が少しづつ添削して10000行の文書ができたようなものだ。 人数をかけてこういうやり方をすると、 非常に高性能なプログラムができることがわかってきた。
この発想は企業の中には無いし、なかなか企業には受けいれられない。 添削するためには、ソースプログラムというプログラムの中身を外部に公開しなくてはならないからだ。 実際、ユニックスは、ある所まで進化してからソースプログラムの公開を取りやめてしまった。 ソースプログラムという中身を見せると商品にできないからだ。 それによって外部の者には添削できない普通のソフトになってしまった。
しかし、大勢で添削しながら開発するというユニックスの開発スタイルは多くのプログラマに支持された。 この方法がいろいろな形で試みられ、 最終的に、誰でも添削して使える新しいユニックスができあがった。 それがリナックスである。
「大勢のプログラマが添削しあって種を膨らませて開発する」という方法は、 技術的に有効であったので多くのプログラマはそれに従った。 しかし、これはプログラムを商品として独占的に囲いこむという、 企業の考え方とは両立しない。
プログラマは技術的な興味が先行して、 このような社会的、経済的な位置付けに無関心な者が多いが、 この緊張関係に意識的に取り組んだ者が二人いる。 R・ストールマンとE・レイモンドである。 この二人は、このような開発スタイルを社会的、経済的に位置付けて理論化した。
最初にそれを行なったのはストールマンだ。 ストールマンはFSFという財団を作り、 多くのソフトウエアを開発しながら、 自分が開発したソフトウエアが囲いこまれないための権利を文書として明文化した。 その権利書をGPLと言い、その権利によって守るべきソフトウエアを「フリーソフトウエア」と呼んだ。
ストールマンは一方の極端な考え方を代表している。 そのような正しい開発の方法を何より大事なものと考えている。 もう一方の極には、これを利用して金儲けしたい者がいる。 つまり、タダ働きの成果を商品として販売したい者だ。 ストールマンは、そういう者がプログラマを出しぬこうとすることを非難した。
そこで両者の中間をとろうとしたのがレイモンドである。 レイモンドは、理想的なソフトウエア開発のあり方についてはストールマンとほぼ考えが同じだ。 しかし、営利企業と対立するのでなく、営利企業をまきこんでその方法を普及させるべきと考えた。 対立して非難しあうのは無益であり、お互いにとってプラスになる妥協点があるという考え方だ。 そして、OSIという組織を作り、OSDという文書を作成した。 こちらの考え方を「オープンソースソフトウエア」と言う。
レイモンドは、「オープンソース」の考え方を受けいれるように、 多くの企業に働きかけ成功した。 IBMやサンマクロシステムは、マイクロソフトとの対抗する戦略的な意味あいもあって、 「オープンソース」を自社の製品戦略の中心に据えつつある。
さてこの「オープンソース」というタダ働きを理解するためには、 これが草の根的にたくさんのプログラマに支持されていることを理解しなくてはならない。 つまり「オープンソース」は楽しいのである。
今の資本主義経済は、お金を中心に回っている。 お金で人を支配する仕組みと言うこともできる。 札束でほっぺたを引っぱたいて人を動かすことで成りたっている。
「オープンソース」はタダ働きであることが強みである。 札束で引っぱたいても動かない。 最も成功したオープンソースプロジェクトであるリナックスの中心人物、 リナス・トーバルズは自分の著書に「それがぼくには楽しかったから」("Just for fun")というタイトルをつけた。 この意味を理解しないと、 タダ働きのプログラマを利用することができない。
技術者というのはよいものを作りたいという本能がある。 優秀な技術者ほどその本能が強く、その本能に従って動く。 ソフトウエアを作るということには、独特の困難があって、 どんなに優秀な人でも一人で全てを行うことは不可能だ。 よいものを作りたいという本能が、 たくさんの人と共同作業をしたいという気持ちにつながっている。
そして、実際に多くのオープンソースプロジェクトは、 インターネットによって世界中のさまざまな国の開発者が共同作業している。 その多くが企業で働くプログラマだ。 彼らは企業の中で稼ぐための仕事をして、 残った自分の時間をオープンソースのために使う。 そのようなプログラマが何万人、何十万人といてさらに増え続けている。
"Fun"(楽しさ)が動機となって、世界的大企業が振り回されるような事態が起きているのだ。 しかも、それは数人の天才や変人でなく、 ごく普通の人が大勢参加しているからこそ、大きなうねりになっているのである。
今やどんな産業でもインターネットやコンピュータシステムとは無縁でいられない。 そして、インターネットやコンピュータシステムの中核にオープンソースがからんできている。 従って、大半のビジネスにとってオープンソースを理解することは必須であると思われる。 そのためにはどうしたらよいか。
「オープンソース」も「フリーソフトウエア」も法的な武装をしている。 両者とも著作権をベースとして、プログラマの権利を守ることを重視している。 そして、それが営利企業と対立関係にあることを強く意識しており、 また、いくつかのトラブルを経験して理論武装している。
そのような権利は社会的に完全に認知されてはいないが、 その分だけその権利の侵害には神経をとがらせている。 これは先鋭的な「フリーソフト」で顕著であるが、妥協的性格のある「オープンソース」でも本質的には共通している。
誰かが開発者側の権利を侵害したりすると、 対抗措置として世界的なプロパガンダに巻きこまれることになる。 その開発者側の意図を理解した上で、法的な意味あいを知っておくことが重要である。
このような動きは、ドラッガーの言う「テクノロジスト」社会の前触れととらえることもできる。 コンピュータ産業の枠を越えて、他の産業に広まっていくことも予想される。
我々は資本主義社会が確固たるものと考えがちであるが、 資本主義社会は、大半の人に経済的合理性があるという仮定を基盤にしている。 つまり札束で引っぱたけば誰でも動くということである。 オープンソースという現象の中で、ある範囲に限ってはその仮定が成りたたなくなっている。
コンピュータのプログラムはインターネットを使って、送信受信することができる。 「オープンソース」がそのような技術的な特殊な要件に依存していることも確かである。 直接的にこの方法が他の産業に波及することはありえないが、 社会システム、経済システムの地殻変動の予兆であるという観点を持つことは必要だと思う。
より具体的にオープンソースソフトウエアを導入する場合にポイントとなるのが、 自己責任の原則である。 オープンソースソフトウエアは、無償であるかわりに無保証で提供される。 従って、問題があった場合は自分で解決しなくてはならない。
しかし、これは独力でプログラムを修正しなくてはならないということではない。 主体的に情報を収集するということである。 具体的には、ホームページによって情報を集め、メーリングリストや掲示板で問合せるということである。
オープンソースソフトウエアは中身が公開されているので、 そういう方法で対応すれば、大半のトラブルを回避し対策することができる。 また、メーリングリスト等にも開発者自身やよく内容を理解した利用者が参加しているので、 有用な解答も得られることが多い。
ただし、これは有償で提供されるサポートやサービスと違って、 札束で引っぱたいて人を動かすものではないことに留意する必要がある。 つまり、「トラブル発生」というのが情報提供であり、 その情報によって解決策を探るということが、 開発のプロセスに参加することであるという態度である。 「添削」仲間が増えることは歓迎するが、 一方的にサービスを受ける消費者的な態度は好まれない。
実際には、一般常識があればそれほどトラブルになることはないが、 「オープンソース」の考え方を理解して、上記のような態度で情報収集することで、より有用な情報を得ることができる。 また、こういう発想に抵抗がある場合は、オープンソースソフトウエアを避けた方が賢明である。
オープンソースは多くの人を巻きこんだ大きな社会運動ととらえることもできるが、 政治的、宗教的な運動のように一人の指導者や特定の理論から生まれたものではない。 レイモンドやストールマンのように理論的な主張をする者もいるが、 これは多くのプログラマの実感や開発のノウハウをボトムアップで吸いあげて後づけで理論化したものである。
このことから、これが簡単には消えるものではないことが予想できる。 誰かが論破されたり、ある企業が倒産したら終わってしまうようなものではない。 普通のプログラマがプログラムを作る時に、実感として誰でも感じることがベースになっている。 そのようなエネルギーは形を変えることはあっても消滅することはあり得ない。
また、「オープンソース」に対する観点もさまざまなものがある。 かなり深く関わっている者同士でも、基本的な意見対立がいくつもある。 それもボトムアップ的な運動の特徴だろう。 特定の指導者が「裁定」すれば結論が出るものではなく、 長い期間をかけて自然と解決していくしかない。
何が「オープンソース」であるか?、「オープンソース」はどう考えるのか?、 「オープンソース」はどうあるべきか?。 このような疑問に、単一の確定的な解答はない。 「オープンソース」について何をどう言っても、必ず反対意見がでる。 そのような幅広さも重要な性質である。
「タダ働きが世界を動かす」 ver 1.0 2003/6/11 公開
本テキストは Creative Commons の Attribution (帰属) ライセンスの下で公開しています。すなわちオリジナルのテキストが私 essa(tnaka@dc4.so-net.ne.jp)によるものであることを明示していただければ,自由に再配布・再利用が可能です。
「ここが足りない」「ここをこうした方がいい」等のご意見のある方は、遠慮なく訂正版、改訂版を作成してご自分のページにアップしてください。 メールで通知していただければ、ここからリンクします。
なお、この文書のソースはこちらです。