今日のフリーソフトウェア文化の始まった背景を知るオープンソースソフトウェアの育て方(1/3 ページ)

これからオープンソースプロジェクトを始めようと思っている、あるいは始めてはみたもののどうすればいいのか分からないソフトウェア開発者や管理者必読の本連載。オープンソースそしてフリーソフトウェアプロジェクトについて余すところなく解説します。

» 2009年08月17日 14時30分 公開
[Karl Fogel, ]

歴史

 ソフトウェアを共有するという考え方は、ソフトウェアが誕生した当初から存在しました。コンピュータの黎明(れいめい)期には、各メーカーは「ハードウェアの革新によって競合他社の上を行こう」と考えていました。そのため、ソフトウェアは商売の材料としてあまり重視されていなかったのです。いわば「ハードウェアのおまけ」という存在でしかありませんでした。

 そのころにコンピュータを使っていたのは科学者や技術者ばかりで、彼らは、コンピュータに同梱されているソフトウェアを修正したり拡張したりすることができました。その修正パッチをコンピュータのメーカーに送るだけでなく、同じマシンを使っているほかのユーザーにも送っていたのです。メーカーはそれに目くじらを立てることはなく、むしろそうすることを奨励していました。彼らにとっては、どんな理由であれソフトウェアの品質が向上することはありがたかったのです。そのおかげで自社のマシンがより魅力的なものとなり、新規顧客が増えることになるでしょうから。

 当時の状況と現在のフリーソフトウェア文化との間には多くの共通点もありますが、決定的な違いが2つあります。まず、当時はまだハードウェアが標準化されていませんでした。ちょうどコンピュータ自体が革新的な進歩を遂げつつある時期だったということもその理由の1つです。さまざまなアーキテクチャのコンピュータが存在するということは、ある機種のために書いたプログラムがそのほかの機種では一切動かないということです。従って、ある機種のために書いたプログラムが世界中で使われるということはありませんでした。

 当時のプログラマーは、特定のアーキテクチャあるいはアーキテクチャファミリーについての専門技術を身につけようとする傾向がありました(一方現在では、特定のアーキテクチャというよりは特定のプログラミング言語にかんするエキスパートになろうとする人が多いように思います。何か1つのプログラミング言語をマスターすれば、ハードウェアが変わったとしてもその知識が応用できるわけです)。たいていの人は興味の対象があれこれ移り変わることがないので、何か特定のコンピュータに力を入れ始めるとずっとそれに力を入れるようになりました。その結果、周囲の人たちも同じコンピュータに興味を持つようになっていたのです。そのマシンでしか使えないコードや知識が広まれば広まるほど、そのマシンを作っているメーカーにとってはありがたかったのです。

 そして2番目に、当時はインターネットがありませんでした。当時は現在ほど共有にかんする法的規制は厳しくありませんでしたが、それよりも技術的な問題の方が大きかったのです。あるデータをどこかからどこかへ移動しようとすると、現在に比べて非常に不便で厄介でした。研究所や企業によっては小さな構内ネットワークを持っており、そこでは構成員の間で容易に情報を共有することができました。しかし情報をどこの誰とでも共有しようと思ったら、高いハードルを乗り越えないといけませんでした。多くの場合、そのハードルは実際に乗り越えられました。時にはグループ同士で連絡を取り、ディスクやテープを郵便でやり取りすることもありましたし、時にはメーカー自身が間に入り、パッチの取引所としての役割を果たすこともありました。初期のコンピュータ開発者の多くが大学で働いていたことも幸いしました。大学では、自分の得た知識をみんなに広めることがごく普通に行われていたからです。しかし、データを共有するに当たって物理的な距離の隔たりが常に障害となりました。お互いの地理的な距離、そして組織的な距離が遠くなればなるほど、共有が難しくなっていたのです。現在のわたしたちのように、距離を気にせず情報の共有ができるなんてことはあり得なかったのです。

独占的なソフトウェアとフリーソフトウェア

 業界が成熟してくるにつれて、相互関係のある幾つかの変化が同時に発生しました。まず、さまざまなものがあったハードウェア設計が徐々に淘汰され、幾つかの勝ち組に絞られていきました。ほかより技術的に優れていたもの、ほかよりマーケティングが上手だったもの、あるいはその両方を兼ね備えていたものなどが残ることとなったのです。と同時に(これはまったくの偶然というわけではありません)、いわゆる「高級プログラミング言語」が台頭してきました。これは、その言語で書いたプログラムを自動的に翻訳(「コンパイル」)し、さまざまなコンピュータ上で動かすことを可能とするものでした。

 ハードウェアメーカーも、当然このような動きを察知していました。彼らの顧客は今や、特定のコンピュータアーキテクチャに囲い込まれることなくソフトウェアを開発できるようになったのです。これらの変化と同時に、各種コンピュータ間のパフォーマンスの差もほとんどなくなってきました。また効率的でない設計のものは排除されていきました。ハードウェアのみを収入源としているメーカーは、将来の見通しがあまり明るく感じられませんでした。つまり、コンピュータそのものは今や代替可能なものとなってしまい、一方ソフトウェアこそがほかとの差別化の手段となったのです。そんな流れの中では、ソフトウェア自体を販売したり少なくともソフトウェアをハードウェアの必須部品として販売したりといった考えが出てくるのも当然でした。

 ここにきて、各メーカーはソフトウェアのコードに対する著作権をより厳格に適用する必要に迫られることになったのです。もしユーザーが自分たちでコードを自由に共有し改変し続ければ、今やハードウェアの「追加機能」として販売されるようになったものを自前で再実装してしまうかもしれません。さらに悪いことに、そのコードは競合他社の手に渡ってしまうかもしれません。皮肉にも、これらの出来事はちょうどインターネットが誕生したのと同じころに発生したのです。ソフトウェアを共有する際の技術的な障害がようやく解消されたと思ったら、そのときにはコンピュータ業界の常識が変わっていたというわけです。少なくともメーカー側の視点で見れば、ソフトウェアを自由に共有するのは望ましくないこととなっていました。メーカーは規制に走りました。自社のマシンを動かしているコードをユーザーに公開しなくなったり、機密保持契約を結ばせることでコードの共有を不可能にしたりといったことを行いました。

       1|2|3 次のページへ

content on this article is licensed under a Creative Commons License.

注目のテーマ