私はオープンソースコードの大ファンです。オープンソースに移行するメリットのほとんどは理解できたと思います。私は理系学生の研究者であり、オープンソースではない(独自のものであるか、公開されていない)かなり驚くべき量のソフトウェアとコードを扱う必要があります。私にはこれの正当な理由が本当にわからないので、コードとそれを使用する人々は、より広く公開することで間違いなく利益を得ることがわかります(他に何もなければ、科学では、必要に応じて結果を複製できることが重要です、そして、他の人があなたのコードにアクセスできない場合、それははるかに困難です)。
not非営利目的のコードを公にリリースするための良い議論はありますか?そしてOSI準拠のライセンスを持っていますか?
(私は周りにいくつかの similarquestions があることを理解していますが、コードが主にお金を稼ぐために使用されている状況に最も焦点を当てています、そして私答えにはあまり関係がありませんでした。)
説明:「非営利」には、親会社のブランド認知や投資家の利益期待など、川下の利益動機を含めています。言い換えれば、問題はソフトウェアに関連する利益の動機がまったくないソフトウェアにのみ関係します。
コードをオープンソース化するには追加の作業が必要になる可能性があることを考慮する必要があります。
例として、このブログエントリのSun/Oracleエンジニアは、コードをオープンソース化するときに彼らが取らなければならなかった努力について説明しています: Open Source or Dirty Laundry?
オープンソースの世界に飛び込む準備ができると、発生している多くのアクティビティの1つは、オープンソース化するためのコードの準備です。やらなければならない明らかなことがいくつかあります。たとえば、私たちのソースコードには、私たちが作成したコードと他のユーザーからライセンスを取得したコードが混在しています。後者とオープンソースを分離する必要があるのは、適切なコードのみです。
もう1つの準備アクティビティは、専有情報のコード、特定の顧客、開発者、テクノロジーなどの言及を「スクラブ」することです。これは少し明白ではありませんが、次の例を検討してください。
/\* \* HACK - insert a time delay here because the stupid Intertrode \* Technologies framebuffer driver will hang the system if we \* don't. Those guys over there must really be idiots. \*/
上記のすべてが当てはまる場合もありますが、おそらくIntertrode Techと何らかの関係があり、コードにこのようなコメントがあると、ビジネスに何らかの害を及ぼす可能性があるため、削除する必要があります。そもそもそもそもそれがあったはずはなかったはずですが、今こそそれを取り除くときです。
「スクラブ」アクティビティのもう1つの部分は、冒とく的な表現やその他の「望ましくない」単語を削除することです...
上記のすべての変更は、クローズドソースとして完全に問題がないと見なされているコードに対して行う必要があったことに注意してください。これにより、いわば純粋な余分な労力になります。
セキュリティ
たとえば、Webフレームワークを構築し、自分で使用するとします。
非営利プロジェクトとして、コードのすべてのビットを検査して、1つまたは複数の攻撃に対する脆弱性を調査する時間はありませんでした。
これで、プロジェクトをオープンソース化したので、友好的な目が貢献できるようにしますが、悪意のある目があなたの仕事を完全に洞察できるようにします。そして、彼らがあなたのコードを実行しているサーバーを見つけた場合、あなたはあなたを隠す能力を排除しましたあいまいな欠陥。
もちろん、これはあなたが取り組んでいるソフトウェアの種類には当てはまらないかもしれません。そしていつものようにあいまいさはセキュリティの怠惰の言い訳にはなりません。
しかし、私が Stripe capture the flag game で経験したいくつかのレベルで見つけたように、コードを知ることは、脆弱性を見つける最も簡単な方法の1つです(そして、唯一の方法)。
ソースを開かないのは、ソースの一部が著作権で保護されている可能性があるためです。問題をすばやく解決するためにWebを検索して、見つけたコードのスニペットを取得する頻度はどれくらいですか。
まあ、それらは著作権で保護されている可能性があり、著者が別のライセンスの下で再ライセンスされているコードを見つけたいかどうかはわかりません。
潜在的な責任問題を回避するために、ライセンスの選択方法に注意する必要があります。
弁護士はこれについて話す方が良いかもしれませんが、一般的な考え方は、誰かがアプリケーションを使用(または誤用)した場合に何が起こり、何らかの害が生じるでしょうか?責任がありますか?明らかにこれはあなたが書いているソフトウェアのtypeに依存しますが、あなたのライセンスがあなたの責任について言っていることに常に注意する必要があります。これは正しく理解するのが難しいので、ソースコードを公開しない方が簡単かもしれません。
警告: 私は弁護士ではありません 。
まあ、それが非営利であり、その知的財産がソフトウェアのコードに強く結び付いている場合、ソフトウェアのカーボンコピーを作成するために商業的に再利用されたり、悪用されたりしないように保護したい人もいるでしょう。
他のいくつかの理由-おそらく最初の理由に根ざしている-は、あなたの場合、ハイエンドの研究の多くが民間資金で行われていること、そして通常投資家がROIを見たいと思っていることです。そして、これまでのところ、ソフトウェア業界(または新規参入者)のすべての関係者が、オープンソースモデルの実現可能性について十分に納得しているわけではありません(ライセンスに関する知識と理解の欠如、またはライセンスが悪意のあるものを防止しないという単純な恐怖によって)使用とコピー)。
さらに、これらの企業は、利益を上げようとした企業に訴えられることを望んでおらず、正当な理由があるかどうかにかかわらず、ライセンス供与はこの点でも安全策と見なされています。
そうではないかもしれませんが、非営利組織は創設者や投資家にとって利益があるかもしれません。メリットは直接的ではありません。したがって、彼らはNFPが強くなり、競合他社によって縁石に打ち負かされないことに大きな関心を持っています(非営利市場で「競合他社」を頻繁に考えない場合でも)。問題を発見し、早期に改善するためにコードをレビューするための自由な眼球を手に入れられないという犠牲を払っても、IP。
また、著作権法は国によって異なることに注意してください。たとえば、多くのヨーロッパ諸国は、米国の著作権法や米国の特許制度をかなりおろそかにしていると考えています。そのため、文化的な背景と重みがあり、振り払うのは困難です。
主題について私の2セントを突き出しなさい。
(私は大学で多くの仕事をしてきましたが、最近はバイオインフォマティクスとヘルスケアに携わっています...それは私と私の同僚のための繰り返しの質問です:))
少なくとも2つの異なる種類のオープンソースがあります。
あなたの態度が「ここに何か役に立つものがあれば、私はそれで終わります」(そしてそれが正確であることが判明した)場合は、少し欠点があります。
一方、あなたの態度が「私は本当に興奮していて、実際のユーザーに将来の開発の推進を手伝ってほしい」という場合は、非常に慎重に考えてください。ユーザーのサポートに時間を費やす必要があり、その多くは無知です。機能と拡張機能に対する要求の競合を考慮する必要があります。下位互換性を維持するために、変更を加えることがますます困難になるでしょう。