フリーウェアはフリーソフトウェアであるべきか?


動画編集ソフト「AviUtl」が6年ぶりに更新 4GB以上のメモリを活用できるテスト版を公開』とのことです。Twitter検索で引っかかった言説だけを頼りにしていますが、64bit対応や将来のメンテナンスといったタスクを考慮して一部のユーザからオープンソース化も望まれている一方、その意見に反発するユーザもいるようです。実際はどうなのか調べてみたい方は「AviUtl OSS」や「AviUtl オープンソース」などとTwitter検索をしてみてください。

このような二項対立がそもそも存在しているのか?というあたりがそもそも不明瞭であり、僕の主観になってしまっているのであまり情報源として信頼できそうにありません。しかし「ソースコードは必ず公開されているべきか?」という問いかけを検討する良い機会のように思います。

ソースコード公開の懸念への反論

この節では、ソースコードを公開することの懸念に対しての反論をします。

ソースコードを公開すると類似品が大量に出回る

ソースコードを公開すると、他の開発者が勝手に改造したバージョンのソフトウェアが大量に出回って手に負えなくなってしまう可能性があるという主張そのものは正しいです。FLOSS(Free Libre Open Source Software)の文脈では、他の開発者が変更を加えて独自にソフトウェアをリリースすることを「fork」と呼びます。過去、開発コミュニティの方針や開発体制に対して不満を抱いたことが原因でforkしたソフトウェアは数多く存在します。386BSDからNetBSDとFreeBSDがforkされましたし、後年NetBSDからOpenBSDがforkされました。Linuxカーネルもforkの騒動が起きました(vgerツリー。詳しくは『ソースコードの反逆 ―Linux開発の軌跡とオープンソース革命―』の「シリコンバレーの実情」を参照。)。Emacsも分裂の騒動が起きています。

ただし、FLOSS文化ではソフトウェアを利用し改変し再頒布する権利がライセンスによってユーザへ保証されています。したがってあるソフトウェアからまた別のソフトウェアが派生するのは単にユーザが権利を行使しているに過ぎないのです。そもそもforkによってソフトウェアの品質が上がるのであればユーザにとって益になるはずです。

しかしforkは混乱の元になるのも確かですので、改変を加えたいユーザはなるべくオリジナルのソフトウェア(原ソフトウェア)に対してソースコードの寄付をしているのです。開発者が一定数自らの陣営に集まっていない限り、あるいは自身が大量の変更を抱えていない限り、原ソフトウェアから派生して独自リリースをするのは派生側にとってただの負担になります。原ソフトウェアのユーザが乗り換えて、派生したものを使ってくれるという確証もありません。

加えて、ソフトウェアを開発しているのは人間であり、人間がFLOSSへ貢献する理由のひとつには社会的な承認欲求があります。議論の発端になったのがAviUtlなのでAviUtlが仮にFLOSSとなったときのことを仮定して話を進めますが、AviUtlは現在とても知名度が高く、「AviUtlにバグ修正のパッチを寄付して貢献した」という実績があればそれなりに欲求を満たせられるのではないでしょうか。ある意味ネームバリューを自身の欲求のために利用できる機会ですが、forkしてしまうとまたゼロからブランドを確立させなければなりません。

forkは混乱を招くもののFLOSSライセンスによって保証された権利であり行為そのものは正当です。しかし作っている/使っているのが人間である以上、開発コミュニティが正常に運営されていれば類似品が幅を利かせることもないでしょう。

ソースコードはその人個人の知的財産であり、他人が軽々しく公開しろと言ってはならない

Stallmanが述べているように「知的財産」とは著作権、特許権、商標権などといった複数の権利・法制度をひとまとめにしてしまった単語で、どういった文脈で「それは知的財産である」と主張しているのか不明な以上どうしようもありません。

少なくとも著作権についての話であれば、GPLv3やMITライセンスといった一般的なFLOSSライセンスは著作権を放棄するものではありません。特にGPLv3は著作権の拡張を目指したものです。多くのFLOSSライセンスは改変や再頒布にあたり著作者を明記することを条件としています。

個人開発対FLOSS開発

では、個人開発でフリーウェアを提供していたやり方からFLOSS開発へ舵を切ると必ず成功が保証されているのでしょうか。僕はそうとは思えません。コードツリーをGitHubのpublicリポジトリへpushしてライセンスさえつければ見かけはFLOSSですが実際はより複雑になり開発が忙しくなり過ぎる可能性があるでしょう。

ソースコードを公開することで、第三者に向けてビルド方法やコーディングスタイルなどを記載した文書が必要になります。無くても構わないかもしれませんがいずれ求められるときがきます。

他にも第三者によるバグ報告や機能追加の要求に対応しなければならなくなります。ソースコードをコピーした誰かがバグ修正のコードレビューを依頼してくるかもしれません。無視しようにも個人のメールアドレス宛てならともかくGitHubのようなサービスを使っているとどうしても記録が残り無視できません。このように、個人開発からFLOSS開発へ切り替えた途端、個人開発の時点では無かった労力がかかるようになります。いままでマイペースでのんびり開発をして満足だったのにわざわざ荒波にもまれにいく必要がどこにあるでしょうか。

おそらく「コミュニティの舵取りの手伝いはできるからFLOSSにしてみないか」とまでアドバイスできるような方が現れないのであれば、プロプライエタリソフトウェアの個人開発者がFLOSSへ方向転換する理由は弱いままだと思われます。

おわりに

個人開発からFLOSS開発に切り替えることで、それがかえって開発者の燃え尽きに繋がる恐れもあります。また、クローズドなソフトウェアがいきなりFLOSSになったからといって、薔薇色の未来が待っているわけではありません。よって僕はFLOSS支持者でありながらも、自身でFLOSSコミュニティの先導をサポートできないために「ソースコードを公開しろ」とは言わない立場です。

無料で使えるフリーウェアから、ユーザへ自由を与えるフリーソフトウェアへ転換させたいのであれば、自身が支援者となれないか考えてみるのもいいかもしれません。