2012-05-10

将来、世の中は自由なソフトウェアと不自由なソフトウェアに二分される

私の予想では、今後世の中は、自由なソフトウェアと不自由なソフトウェアに二分される。ユーザー側からみれば、両者の溝は厚く、完全にお互いを遮断するだろう。

AppleやMicrosoftといった不自由なソフトウェアの信奉者は、自己のプラットフォームには、己の期待するソフトウェアしか提供されないように努力する。たとえば、気にいらない競合ソフトウェアは、公式のソフトウェア配信システムには載せないようにし、また、プラットフォーム自体にも、公式のソフトウェア配信システム以外からソフトウェアを導入できないように制限を加えるだろう。制限を迂回するには、暗号を解くか、OSを構成するソフトウェアに非公式なパッチを当てなければならなくなるだろう。

AppleやMicrosoftは、オープンソースに貢献しているではないかという意見もあるだろう。たとえば、AppleはClangにだいぶ金と人を出しているし、ついこの前、Linuxカーネルへのパッチ数での最大の貢献者はMicrosoftであると発表されたばかりだ。これには理由がある。自分に都合のいい貢献なのだ。

たとえば、Appleの場合、自分のプラットフォームのためにまともなコンパイラーがほしいという理由がある。もはや、コンパイラーを伽藍方式で開発する意義は薄れた。コンパイラーが正しく動作するかどうか検証し、もし動作しないとしたらすぐに修正できる体制をつくるには、もはや長時間の閉鎖的な開発の末に完成品を公開するという伽藍方式では立ちゆかないのだ。

MicrosoftのLinuxカーネルへの貢献は、主に、自社の仮想化技術の上で、Linuxカーネルが動作するような変更である。Linuxカーネルのサーバーにおける普及率の高さから考えて、サポートしなければ、自社の仮想化製品に魅力がなくなるからである。

つまり、人は自分に都合のいい貢献しかしない。

ソフトウェア配信システムは、必ず不公平になる。胴元は、あらゆる理由で、自分の意にそぐわないソフトウェアを排除する。自己のソフトウェアと競合する、セキュリティ上の懸念、リソースの浪費、彼らの定義によれば悪用される可能性があるなどという理由でだ。

たとえば、Google PlayはNiftyの動画再生ソフトウェアを不思議な理由で拒否したGoogle Web Storeは2ちゃん専用ブラウザを不思議な理由で拒否した。Appleについては、もはや個別の例を挙げるまでもあるまい。Microsoftが提供するソフトウェア配信プラットフォームだって、似たようなものになるだろう。すでにMSはARM版WindowsからFirefoxを排除する動きをみせている

もちろん、物理的店舗に置く商品の選択は物理的店主が決めるように、デジタル店舗に置くソフトウェアの選択はデジタル店主が決定権を持つ。しかしそれは、誰でもデジタル出店ができるという世界で初めて公平になる。もし、公式のデジタル店舗が唯一のソフトウェア配布プラットフォームであれば、もはや自由はない。

ソフトウェア配信システムは悪ではない。実際、私だって、ソフトウェア配信プラットフォームの運営者は、提供するソフトウェアに品質やセキュリティを保証してほしいし、ソフトウェアはもちろんコード署名され、配信途中に第三者により書き換えられることがないように保証して欲しい。これを実現するためには、ソフトウェア配信システムは不公平な選択をし、ソフトウェアの実行には技術的制限をほどこさねばならない。これ自体は悪ではない。しかし、もし公式なソフトウェア配信システムが、唯一のソフトウェア配信プラットフォームであり、それ以外にソフトウェアを導入する方法がないとしたら、この実装は邪悪になる。

もし自由なソフトウェアのみで構成されたプラットフォームがあり、ソフトウェア配信プラットフォームのプロトコルも自由な規格であれば、誰でも技術的に同様のソフトウェア配信が可能になる。ソフトウェア配信プラットフォームの追加は、単にサーバーリストに追加する程度の手間で済む。もちろん、規格自体が気にいらなければ、別の規格を設計、実装することもできる。自由なソフトウェアでは、技術的な制限を取り除くことが容易だ。公式のソフトウェア配信プラットフォームが気にいらなければ、自分で別のプラットフォームを立ち上げることができる。この点で、自由なソフトウェアは重要である。

近い将来、ソフトウェアは自由なソフトウェアと不自由なソフトウェアに二分される。もちろん、自由なソフトウェアは実行に制限を設けないので、条件次第で、不自由なソフトウェアでも使われるだろう。また、不自由なソフトウェア陣営の利益になると判断した部分だけは、自由なソフトウェアへの貢献があるだろう。しかし、ユーザー側からみれば、基本的なソフトウェア環境であるプラットフォームの実装は、完全に自由なソフトウェアか、不自由で制限されたソフトウェアかのどちらかになるだろう。

世界は二分される。

1 comment:

Anonymous said...

Freedom is illusion. You will know, or you should know.