ホームページ(hatena、okweb、@it、msdn.microsoft.comなど)やプログラムの本には様々なサンプルコード※が載っていますが、これらのプログラムから一部を利用したり、全てを利用しアプリケーションを作り、フリー、シェアウェア、オープンソースで公開することは合法でしょうか?
また、合法でない場合、合法にするためにはどのようにしますか?
※ファイルの読み込み、ソートや正規表現、大きなものになると、掲示板など
基本的に「サンプルコード」というものは、それを基にしてユーザーの便宜を図る為のものですので、利用して自分のホームページでそのコードを使った何か(例えば検索画面など)を公開して楽しむ程度であれば、問題無いと判断されるのが普通かと思います。もしくは、改造して公開しても、そういった利用用途を想定してサンプルコードを提供している場合が多いので、問題になる事は無いと思います。
しかし、一部を利用したとしても、全てを利用したとしても、それをフリーウェアやシェアウェアで(あたかも自分が書いたように)公開したり、もしくはそれをオープンソースで公開する事は、公開した側の想定範囲を超えているので、これは駄目な可能性は高いです。フリーウェアならばまだしも、シェアウェアやオープンソースなどと言って公開した場合には、サンプルコードの公開側からかなり問題視される可能性が強いです。
合法にする方法としては、全てのサンプルコードを「参考」のみに留めて書き換えてしまう。こうすれば、全てプログラムは自分で書いた事になりますので問題ありません。もしくは、サンプルコードの公開先に問い合わせて許可を取るという方法がありますね。
まず、前提です。多くが英語圏から拾ってくることになると思いますが、フリー、シェア、オープンいずれも、全世界の統一した基準はありません。
単純に、ソースコードやreadmeに、権利や再配布について書かれている部分を読んで従うだけです。作者がGPLだと言うならGPLですし、MITならMITです。それ以外もあるでしょう。
で、本題です。再配布物で、誰かのものを参考にした場合は「○○さんの許可により、○○を使用させて頂きました」と書きますが、許可を取る目安としては、サブルーチン1個以上くらいじゃないでしょうか?
>配列のシャッフルやソート
こういう1、2行単位のものは著作権を主張する人はいないでしょう。単に効率のいい書き方を紹介してくれている程度のもので、知っていればコピペしなくても自力で書けるものですし。
著作権法は、罰する法ではなく、作者の権利を主張していいよ、という法ですので、アナログな人と人との感覚の問題、相手方の気持ち次第です。
かつてperlが日本語対応していない頃に、日本語対応させるために作られたjcode.plとか、昔はどこのフリーソースにも入ってましたが、再配布可なのか、許可を取ったかのいずれかでしょうし、cpanも改変・再配布可にしてる人多そうですね。
それぞれのreadmeを読んで、自分で作ったものを見て「これは胸張って参考元に見せられないなぁ」と感じればまずい。という程度でしか言えません。
ただ、ソースコードの書き癖に統一感がないと、見た人に「アレ?」って思われますから、全体の統一感を取るように書き直しているうちに、自ずと参考元が分からないくらい別物になって行くと思いますが。
回答いただきありがとうございます。
とても参考になります。
皆様へ
引き続き体験談や考え方などを募集致します。
また、小規模や個人プログラマの判断で、このくらいパクっても訴えられ無いだろうと思って使ったところ、損害賠償になってしまった例などありましたら教えてください。
ただし、商用のシステムにオープンソースが混じって、オープンになってしまった例を紹介する場合は、どの程度をパクってそうなったのかも含めて詳しく教えてください。
宜しくお願い致します。
>色々体験談など聞ければと思っています。
法律には詳しくないですが、以前Ruby関連のライブラリを作った時は、サンプルソースを公開されている方に、コメントで確認を取りました。ライセンスを聞くのもいいかも知れません。
回答いただきありがとうございます。
確かに、連絡が取れる場合には良い方法ですね。
ただ、実際は、日本語ではなかったり、制作者側がライセンスに詳しくなかったり、匿名やこういった掲示板の場合、現実問題なかなか難しいですよね。特に、日曜プログラマの場合、ライセンスなど詳しく勉強するのも大変ですし、第三者に許可する場合も、そもそも、その公開しているプログラムがどこまで自分のオリジナルと責任を持てるのか難しいような気がしています。
皆様へ
引き続き体験談や考え方などを募集致します。
また、小規模や個人プログラマの判断で、このくらいパクっても訴えられ無いだろうと思って使ったところ、損害賠償になってしまった例などありましたら教えてください。
ただし、商用のシステムにオープンソースが混じって、オープンになってしまった例を紹介する場合は、どの程度をパクってそうなったのかも含めて詳しく教えてください。
宜しくお願い致します。
サンプルコードを使ってソフトを作り公開していいかというのは、サンプルコードの作者さんごとに違うと思います。
サンプルコードを公開しているサイトやサンプルコードのコメントなどに、コードの使用についての記述があればそれに従って、
それが無ければ作者に許可をとってからというのがいいと思います。
コードを使用してもいいのでしたら、あなたが製作したプログラムのreadme.txtなどに、サンプルコード作者の名前、ページへのリンクなどを入れたほうがいいと思います。
「サンプルコードの部分もあたかも自分が書いたかのようにする」というのは絶対にやめたほうがいいです。
サンプルコードを参考にして全部自分で書いた場合などは微妙ですが。
フリー、シェア、オープンこの3つで使う場合について教えてください。
>全てのサンプルコードを「参考」のみに留めて書き換えてしまう。こうすれば、全てプログラムは自分で書いた事になりますので問題ありません。
ここでいう、参考と改変の違いがいまいち分かりません。単純なコードの場合、変数を変えるだけでも良いということでしょうか?
先に挙げたHPや他のホームページにある、サンプルソースで誰でも自由に使えるものはありますか?
または、片っ端から、~のHPを引用したという感じで、コメントアウトを入れても合法にはならないのでしょうか?
または、オープンソースから引用した場合、そのソフトもオープンソースになると聞きます。そうであれば、オープンソースのみをググりそれを適当に引用してまとめた元は合法ということでしょうか?
特に、プログラムを習いたちで思うのですが、多くの場合、サンプルコードの並び替えや引用(悪く言えば盗用)し、組み合わせだけを変えただけに過ぎません。特に、配列のシャッフルやソート、正規表現など、ググってそのままコピペが多いような気がします。
ある程度形になると、便利なソフトになり、できれば広く公開したいと思っているのですが、ライセンス的に非常に不安があります。
どうしたら良いものでしょうかねぇ。
はてなでは、プログラムに携わっている方が多いように思いますので、この例に限らず、参考となるご意見やお話など聞かせていただけると幸いです。