torum

主に開発中のアプリにまつわる技術系の事。

なぜ自分はアプリをオープンソースで作るのか

基本的に、自分が個人で作ったアプリ(で今もメンテし続けているもの)は、オープンソースとして全てGitHubで公開しています。

オープンソースにするという事は、誰もがソースを見る事が出来て、尚且つコピーして改変して使える、という事です。日本ではプロダクトとしてのアプリをオープンソースとして公開している例はごくごく限られています。ライブラリーなどのツールを公開しているのが関の山といった所でしょう。コレと言って日本の代表的なオープンソースのアプリは思い浮かびません。

なぜゆえに自分はそんな誰もが利用できるようにソースを公開しているのか。別に参考になるようなコードでもなく、オレオレ仕様の糞コードを晒してそんなに恥をかきたいのか。と言われそうです。実際の所、糞コード遠からずですがw

一般的な理由としては、オープンソースで開発する事によって、世界中の他の開発者と共同でアプリの改善を図れる、という利点が挙げられます。実際、自分が作ったアプリにも何件もバグ報告や要望などを頂いたり、他の開発者の方から成果物を頂いてアプリに取り込んだりしています。

しかし、自分にとってはそれだけが主な理由ではないのです。そもそも自分がアプリを開発している動機は「自分が使いたいから作る」ということですが、やはりソフトウェアというものは、使ってもらってなんぼ、という所もあります。使ってもらうには色々とメンテが必要で、メンテナンスを怠って放置していると、アプリはOSや言語やランタイムの更新など、環境の変化によって動かなくなる事もあります。ある意味、生き物のような側面もあるのです。

 もし、自分がソースコードを一人で抱えたままある日突然死んでしまった場合、そのソフトウェアも死ぬことになります。誰もアプリを更新してバージョンアップすることも出来なくなるからです。例え死んでなくても、飽きっぽい自分は単純に放置してしまう可能性もあります。

つまり、自分がオープンソースでアプリのソースを公開している理由は、もし自分が死んだりしてある日から更新できなくなったとしても、もし誰かがこのアプリを有用だと思ったら、誰でも好きに使っていいから、面倒をみてやってくれたらうれしい、という遺言なのです。

ある意味、アプリを更新してGitHubソースコードをコミット(アップロード)するたびに、よし、これでもう明日死んでも大丈夫だ、と安心する訳です(笑)。

ユーザーとしても、開発者が突然メンテを止めてしまったとしても、誰かが拾って開発やメンテが続けられるかもしれない、という安心感があります。