開発者による支配から身を守るために自由ソフトウェアを使いましょう

自由ソフトウェアの使用を推奨するための非エンジニア向けの文書です。

自由ソフトウェアとは何か

自由ソフトウェアは Free Software Foundation が定義している用語で下記のように定義されています。

あるプログラムが自由ソフトウェアであるとは、そのプログラムの利用者が、以下の四つの必須の自由を有するときです:

  • どんな目的に対しても、プログラムを望むままに実行する自由(第零の自由)。
  • プログラムがどのように動作しているか研究し、必要に応じて改造する自由(第一の自由)。ソースコードへのアクセスは、この前提条件となります。
  • ほかの人を助けられるよう、コピーを再配布する自由(第二の自由)。
  • 改変した版を他に配布する自由(第三の自由)。これにより、変更がコミュニティ全体にとって利益となる機会を提供できます。ソースコードへのアクセスは、この前提条件となります。

https://www.gnu.org/philosophy/free-sw.ja.html から引用

私はこの自由ソフトウェアを使用することを強く推奨します。 この四つの自由のうち一つでも欠いてしまっている不自由なソフトウェアには致命的な欠陥があると考えているからです。

不自由なソフトウェアによる利用者の支配

不自由なソフトウェアの何が問題かといういうと、 ソフトウェアの開発者に利用者が支配されるからです。 多くの人々はソフトウェアの利用者です、今日において何らかのソフトウェアの利用者でない人はほとんどいません。 不自由なソフトウェアを選択してしまうと、あなたはそのソフトウェアの開発者に支配されてしまいます。 どうしてでしょうか? ソフトウェア開発者による利用者の支配とはどのようなものなのでしょうか?

では不自由なソフトウェアだとどうして開発者に支配されてしまうのか、 自由ソフトウェアの定義に戻って確認してみましょう。

第零の自由「どんな目的に対しても、プログラムを望むままに実行する自由」の不足

まず、第零の自由すなわち「どんな目的に対しても、プログラムを望むままに実行する自由」についてですが、 この自由のないソフトウェアというのは、「こういう使い方をするときだけ使ってもいいですよ」とソフトウェアの作者が使用するための条件を指定していることを意味しています。 そのようなソフトウェアは、データとしてあなたが保有していたとしても実際にはあなたの物ではありません。 あなたがソフトウェアの開発者が想像していなかった新しい使用方法を思いついたとしてもそれを試すことはできないのです。 これは、分かりやすい開発者によるソフトウェアによる支配のパターンですね。

第一の自由「プログラムがどのように動作しているか研究し、必要に応じて改造する自由」の不足

しかし、どんな目的のためにソフトウェアを実行しても良いだけでは自由ソフトウェアとは呼べないことに注意してください。 次の第一の自由、「プログラムがどのように動作しているか研究し、必要に応じて改造する自由」も重要です。 あなたが利用しているソフトウェアに何らかの不備があったとしましょう。 あなたはそのソフトウェアの問題を自分で直す、もしくは誰かに直して欲しいと依頼したいと思うかもしれません。 この第一の自由のない不自由なソフトウェアの場合、そのソフトウェアを修正できるのは著作権を持つソフトウェアの開発者だけです。 あなたがいくら直して欲しいと思っても、ソフトウェアの開発者が拒否すればそれは叶いません。 目の前で起きている不具合をあなたは直すことができないし、誰にも修正を依頼できないのです。

第二の自由「ほかの人を助けられるよう、コピーを再配布する自由」の不足

では、第二の自由は何を言っているのでしょうか? 第二の自由は「ほかの人を助けられるよう、コピーを再配布する自由」ですが、これも重要です。 ソフトウェアはコンピュータで何らかの問題を解決したり生産性を改善するのに使われます。 たとえば、あなたの友人が自分の保有しているソフトウェアを使って解決できる問題で悩んでいたとします。 このとき自分の持っているソフトウェアをコピーして友人に渡せば助けることができるわけですが、 第二の自由のないソフトウェアでは許されません。 ソフトウェア開発者が指定した方法でしか、そのソフトウェアを入手することができないのです。 これもまたソフトウェア開発者によるソフトウェアの所有者への支配なのです。 一点補足すると、自由ソフトウェアではコピーを渡す際に対価としてお金を要求しても問題ありません。

第三の自由「改変した版を他に配布する自由」の不足

最後に第三の自由である「改変した版を他に配布する自由」についてですが、 これは第一の自由によって、ソフトウェアの問題を直したりより良くするために改造したソフトウェアを他の人に配るための自由です。 この第三の自由がないソフトウェアでは、 プログラムの問題を修正したり改善したりしてもそのソフトウェアを使うことができるのは自分だけになってしまいます。 既に解決した問題で悩んでいる人を見つけても、ソフトウェアを渡すことはできなくなってしまいます。 また重要なことなのですが、自由ソフトウェアでは対価として改変したバージョンを渡す際にお金を要求しても問題ありません。 この自由のおかげで、ソフトウェアに関する問題を直した人に対価としてお金を渡すことができます。

不自由なソフトウェアの何が問題か

不自由のソフトウェアを使用すると開発者に支配されてしまうこと自体については納得してもらえたと思うので、 次にそれがどうして問題なのか考えてみましょう。

不自由なソフトウェアの問題は他のものに喩えられて反論されることがしばしばあります。 過去に私が返答に困った例として料理があります。 「料理のレシピはソフトウェアにとってのソースコードのようなものだ、自身の利益を守るために飲食店に料理を食べに来た客にレシピを秘匿するのは正当なことではないか」 というものです。 料理の場合でも食の安全を守るといった観点から、客が料理の工程を知ることができるという点で自由な料理にはそこそこの価値があるとは思うのですが、 少なくとも私は自身の利益を守るためにレシピを秘匿することに対して大きな問題があるとは考えてはいません。

そもそもソフトウェアを料理に喩えるべきではありません。 利用のされかたが全く異なるからです。 完成した料理の主な機能は味わって食べることです。 それによって元気になったり、自分の体に合わなくて逆に気分が悪くなったりすることまで考慮すると、 基本的には完成した料理を一度食べたことによる影響は数時間から数日に及ぶものだと考えて問題ないはずです。 もしも料理がおいしくて仕方がないのであれば、特定の飲食店に通いつづけるでしょう。 それは飲食店に支配されているようにも見えますが、そのこと自体が成果物である料理に問題がないことを意味しています。

それに対して、ソフトウェアは何らかの作業をするための道具として使用されます。 どのようなソフトウェアであっても、利用者はソフトウェアの使い方を学び、操作に慣れる必要があります。 一度特定のソフトウェアに慣れてしまえば、同じことをするために別のソフトウェアを使用するのに苦痛を伴います。 使用しているソフトウェアの特定の機能に依存して仕事をするようになったら、 その機能のない別のソフトウェアを使用して仕事をすることはできなくなります。 そうやって依存したソフトウェアが不自由だったら最悪です。 仕事に依存したソフトウェアに対して不備の修正や改善を実施しようと考えても、 不自由なソフトウェアであれば開発者が許さない限りは修正も改善も行なわれません。 不自由なソフトウェアによる開発者からユーザーへの支配はこのようにして成立するのです。

不自由なソフトウェアを別のもので喩えるなら料理よりも家の方が適切で、ソフトウェアを選択して使うようになることは家を選んでそこに住むのと同じようなことです。 不自由なソフトウェアを使用することは家を建築した業者に点検や修理をする権利が独占された家に住むことと同義 です。 家の所有者は別の業者に家の点検や修理を依頼をすることができず、 点検や修理をする技術を持っていても家が不自由であるために自分自身では何もできません。 場合によっては家に誰を住ませるかを決める自由(第零の自由)すらないかもしれません。

このような家に住みたいと思いますか?

自由ソフトウェアを使って支配から逃れましょう

現在、スマートフォンやタブレットの使用が盛んになっていますが、不幸なことにこれらのデバイスで不自由なソフトウェアによる支配から逃れるのは極めて難しいという現実があります。 自由なOSを搭載したスマートフォンやタブレットを入手することは現在の日本では大変困難です。 この状況は改善しなければなりません。

しかし、パソコンの状況はスマホやタブレットとは違います。 実は多くの道徳的なソフトウェア開発者によって自由ソフトウェアが開発されています。 パソコンの OS には GNU システム の一つである GNU/Linux という自由な OS を使用することをおすすめします。

特に GNU が推奨する自由な GNU/Linux ディストリビューション には一切不自由なソフトウェアが含まれていません1。 これらの OS が提供しているパッケージシステムを利用している限りは、不自由なソフトウェアが意図せずに入り込んでしまう危険が全くないので安全です。 このなかでは Trisquel という OS がユーザーフレンドリらしいのでおすすめです2

プログラムを書くのが好きな方には Guix System という OS をおすすめします。 ソフトウェアのパッケージシステムやシステムの定義のために Guile Scheme の API が提供されていて、 自由にカスタマイズや拡張ができるようになっています。

Android のスマートフォンやタブレットを使用している場合

F-Droid という自由かつオープンなソフトウェア(FOSS)のみ扱っているアプリケーションストアがあり、 これを使うと簡単に自由ソフトウェアを探してインストールをしたりソフトウェアの更新をしたりできます。 Android では自由ソフトウェアの開発が活発で、日常生活に必要なアプリが既に揃っているので Google Play ではなく F-Droid を優先して使うことをおすすめします。

注釈


  1. 完全に自由な OS には 不自由なファームウェアが一切含まれていないことに注意してください。 現在の日本では自由ソフトウェアで動作する無線LANの子機を手に入れるのが困難な状態になっていて、 事実上 Wi-Fi を使用した通信は不可能です。 古いものであれば動く可能性があり、昔使っていたテレビやPCのための無線LAN子機が箪笥の奥に眠っているという場合には動作するか試す価値があると思います。 (どうしても受容できない場合は Debian のような不自由なファームウェアが動作する GNU/Linux の OS を使うのも良いかもしれません、 しかしそれは自由ソフトウェアを社会に広めるという観点からみると、現状の維持を肯定し改善の流れを止める行為であるということを認識しておく必要があります)↩︎

  2. 筆者は別のOSを使用していてまだ試せていません……↩︎