Kengo's blog

Technical articles about original projects, JVM, Static Analysis and TypeScript.

オープンソースソフトウェアのユーザに知っておいてほしいひとつのこと

あけましておめでとうございます。新年早々オープンソースソフトウェア関係でやねうら王さんの記事が流れてきました。同じオープンソースソフトウェアを手掛ける開発者として記載内容の大部分には賛同できないのですが、枝葉は置いといて主幹だと私が思う主張については共感する部分があり、それについて書いてみます。

yaneuraou.yaneu.com

ユーザには無償であること以上に、オープンであることに着目してほしい

さて、そのような経緯でやねうら王はOSSとして公開してきました。やねうら王は、「無償でいいからどうか使ってくれ」ではないのです。まして、「俺はプロ棋士のファンだからプロの先生に使ってもらえたらとても嬉しい」でもないのです。(そういう考えの開発者の方も確かにいらっしゃいます。私はそうではないというだけです。)

繰り返しになりますが、OSSとは、単なる無料のソフトウェア以上の意味を持ちます。

この件については、ちょっとした補助線となるストーリーがあるので紹介します。私が学生だった頃は、この手のソフトウェアをフリーソフトウェアと呼んでいました。例えば当時のフリーソフトウェア配布場所最大手のひとつであるベクターさんでも、オープンソースソフトウェアではなくてフリーソフトウェアという形で説明しています:

www.vector.co.jp

このフリー(Free)には自由という意味を持たせていました。ところがフリーには無償という意味もあり、ソフトウェアの自由を保証すること以上に、無償で手に入るソフトウェアだということが前面に出る使われ方をされるようになります。そりゃそうですよね、命名が良くない。

そこで自由であることを強調するために*1、Free/Libre and Open Source Software(FLOSS)であるとか、単にOpen Source Software(OSS)などと呼ぶようになりました。こうした経緯、すなわち無償ソフトウェア扱いされてきた体験があって、オープンソースソフトウェアを開発・公開している人は「無償ではないんだ」ということを大切にしている人が一定数いらっしゃると私は考えています。

このあたりが気になる方は、詳しいサイトがあるのでこちらの一読をおすすめします:

www.kogures.com

のでオープンソースソフトウェアを使う場合は、無償であることよりも公開されていることや始めやすいことを特徴として捉えていただけると良いかなとは思います。

オープンソースソフトウェアにはだいたい「動作の保証はしないよ」と書いてある

私は、将棋ファンに向けて「将棋ソフトを無料で公開するから是非将棋ファンの皆さん、遊んでください」と考えているような篤志家などではなく、どちらかと言えばOSSの開発にコミットメントしてくれない人たちは、 (引用者略) 有償ならともかく無償ではそういう人たちのサポートをしたくありません。

このあとに書かれているように、大抵のオープンソースソフトウェアはサポートにも手厚い傾向は実際あります。ただすべてのプロジェクトがそうではなく、そうしたプロジェクトはサポートを手厚くすることで貢献のハードルを下げるとかシェアを奪うとかの狙いがあるからそうしている、あるいは成功体験があって無意識にそうしている場合が多いはずです。ですからオープンソースソフトウェア開発者ならユーザを大切にせよというのは、少なくとも違うと思います。

これはオープンソースソフトウェアには必ず含まれている文書にも明記されています。オープンソースソフトウェアはOSSライセンスによって利用者に対してライセンスされますが、このライセンスにはだいたい、以下のような表記を頒布物に含めることを求めています:

このプログラムは有用であることを願って頒布されますが、全くの無保証 です。商業可能性の保証や特定の目的への適合性は、言外に示されたものも含め全く存在しません。詳しくはGNU 一般公衆利用許諾契約書をご覧ください。

GNU 一般公衆利用許諾契約書バージョン2でライセンスされるソフトウェアに同梱される文書


適用される法律または書面での同意によって命じられない限り、本ライセンスに基づいて頒布されるソフトウェアは、明示黙示を問わず、いかなる保証も条件もなしに「現状のまま」頒布されます。

Apache License v2でライセンスされるソフトウェアに同梱される文書


本ソフトウェアは、著作権者およびコントリビューターによって「現状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、および特定の目的に対する適合性に関する暗黙の保証も含め、またそれに限定されない、いかなる保証もありません。

3条項BSDライセンスでライセンスされるソフトウェアに同梱される文書

英語で記載されていることもありますが、内容は一緒です。保証はないので自己責任で使ってくださいということです。オープンソースソフトウェアだけど保証がほしいなという場合は、サポートを提供してくれるベンダーを探すことになるかなと思います。

オープンソースソフトウェアを開発している開発者に求めるのは、間違いではないかもしれませんが機能しないことがあることは念頭に置いていただければと思います。このへんは本当にプロジェクトによる感じです。

配布されている無償ソフトウェアがオープンソースかどうかわからなくても、同梱資料を読めばオッケー

ここまで読んだ方は、なんだオープンソースソフトウェアってなんかめんどくさいんだな、とお考えかもしれません。でも実際ユーザが使うときは、ソフトウェアがオープンソースソフトウェアかどうかなんて気にしていないことがほとんどですよね。そこで、使おうとしているのが"めんどくさい"ソフトウェアであることに気づき、扱いを間違えないためのコツをお教えしましょう。それは、配布物に同梱された資料に目を通すことです。

あなたが入手したソフトウェアには十中八九、READMEとかLICENSEとかNOTICEとか、あるいはライセンス通知やエンドユーザーライセンス契約(EULA)などと名前のついたファイルが同梱されているはずです。インストーラが表示してくれる場合もあるかもしれませんね。

これらのファイルにはソフトウェアを利用する上で何に合意する必要があるか、このソフトウェアを利用するということは何を作者に許諾する必要があるか、などが書かれています。ユーザサポートについてはもちろん、商用利用時の可否についても書かれています。仮にオープンソースソフトウェアではなかったとしても、作者があなたの端末からどのような情報を得るか(!)などが書かれていることもありますので、目を通すに越したことはありません。

本当はオープンソースソフトウェアは決してめんどくさいソフトウェアではなく、ソフトウェアの自由と発展を考えて作られてきた運用であり文化だというのも伝えたいことではありますが、それは別の機会に譲ります。

まとめ

オープンソースソフトウェアのユーザには、とりあえず同梱の資料には目を通しましょうということを知っていただきたいです。そこにはユーザが知るべきこと、作者が伝えたいこと、双方の権利を守るための重要な通知が含まれています。

また無償であることを前面に出すことは、ソフトウェアの自由と発展を考えて作られてきたオープンソースソフトウェアの歴史、あるいは開発者個人の経験から、オープンソースソフトウェア作者にはあまり良い印象がないかもしれません。公開されていることや始めやすいことに感謝し、ブログで紹介するとか感想を伝えるとかの形で貢献(還元)することもご検討いただければと思います。

とはいえオープンソースソフトウェアとひとくくりに議論するには、この世のプロジェクトは多すぎます。つまり、私が書いたことを気にしない、あるいは他のことを大切にしている開発者も多くいるでしょう。ソフトウェアの向こう側にはその作者やメンテナーがいるのだとご理解いただき、その人がどんな人かに関心を持っていただくことが、そのソフトウェアを真の意味で大切にする行為なのかもしれません。

*1:コピーレフトの件もあるけど割愛