web-dev-qa-db-ja.com

Javaオープンソース、開発またはコントリビューションが分散されていない場合になぜ呼び出すか

オープンソースソフトウェアは、分散した方法でさまざまな貢献者によって開発されるべきです。 Open JDKはJavaのリファレンス実装であり、これはオープンソースであり、セキュリティとバグ修正への貢献を可能にします。OracleがOpen JDKへの貢献のほとんどを行っていると思います。Javaはオープンソースとして認定されていますか?

2
sumit sachdeva

開発やコントリビューションが分散化されていないのに、なぜJavaオープンソースと呼ばれるのですか?

Open Source Initiativeが提供する「オープンソース」の定義では、寄稿の受け入れやソフトウェアの開発方法については触れられていません。

あなたはそれをここで読むことができます:

「オープンソース」という用語には、決まった定義はありません。人によって意味が異なります。

もう1つの注意点は、「Java」という言葉は多くのことを意味するということです。

  • プログラミング言語です
  • それはそのプログラミング言語の仕様です
  • その言語の実装です(コンパイラ、コアJVMなど)
  • これは、言語の実装ですplus大規模な「標準ライブラリ」
  • 言語+ライブラリ(SE、ME ... EE)の実装ファミリです。
  • OpenJDK JavaとOracle Java ...には、異なるライセンスがあります。
  • Oracle/Sunコードベースに基づく複数のベンダーJava実装があります。
  • GNUクラスパスJavaのような他のものもあります Apache Harmony Java (履歴)Android Java、さまざまなサードパーティJavaコンパイラ( Jikes、Eclipseコンパイラーなど)
  • etcetera

したがって、「Javaオープンソースと呼ぶ」と言った場合、それは過度に一般化されており、多くの場合間違っています。


(OpenJDK)Javaはオープンソースとしての資格がありますか?

はい。上記のリンク先の定義に従って。

あなたのpersonalオープンソースの定義によると、おそらく違う。しかし、私はあなたの個人的な定義が多くの支持を得ることを疑います。フリーソフトウェアコミュニティでもです。


オープンソース(またはオープンソース)を "The Open Source Way" と混同している可能性があります。後者は次のように説明されます。

「人々がコミュニティ内でどのように協力して共通の目標と利益を達成するかについて考える方法。」

...しかし、オープンソースソフトウェアをそのように開発するという「定義上の要件」はありません。またはオープンソースソフトウェアのどちらか。

14
Stephen C

あなたの質問にはいくつかの質問と誤解があります。それらを1つずつ対処していきましょう。

なぜJavaオープンソースと呼ぶのですか?

何も思いつきません。 Javaはプログラミング言語です。プログラミング言語は一連の抽象的な数学的規則と制限です。「オープンソース」の概念を言語に適用することは、実際には意味がありません。 「ソース」ではありません。

would言語仕様を自由にフォークして変更できる場合は、その言語を「オープンソース」と呼ぶのが理にかなっています。しかし、それは単に無意味です。インフラストラクチャ標準の全体ポイント(そして、はい、言語はインフラストラクチャと標準の両方です)は、信頼できるということですnot変更。

オープンソースソフトウェアは、分散した方法でさまざまな貢献者によって開発されるべきです。

それは「オープンソース」であることの意味の一部ではありません。オープンソースは、ソフトウェアのライセンス条件について純粋にです。他には何もありません。 OpenJDKはGPLに基づいてライセンスされており、他にもJava実装、OpenJDKのフォークまたは派生物、オープンソースライセンスでリリースされた独立したクリーンルーム開発など)があります。 、Javaの実装はオープンソースです(ただし、「Java」のライセンス制限商標により、一部のJava自身を「Java」と呼ぶ実装)。

私はあなたが言うことを「オープンプロジェクト」と呼んでいます。これは、ソフトウェアがオープンソースライセンスの下でリリースされるだけでなく、プロジェクトもオープンな方法で開発されていることを意味します。つまり、バグレポートは誰でも提出でき、一般に公開されます。利用可能な場合、デザインディスカッションは公開で行われ、一般市民が参加できる方法で、貢献を歓迎します。ただし、これはオープンソースの定義の一部ではありません。

考えておくべきこと:.NETとC♯のコア部分をカバーするISO標準があります。 .NET(Mono、CoreCLR)およびC♯(Mono、Roslyn)のオープンソース実装は複数あります。デザインディスカッションは、オープンなGitHubの問題で開催されます。バグはGitHubでオープンかつパブリックに追跡されます。実際、Java言語仕様はOracleが所有しているのに対し、ISO規格として指定されているC♯のサブセットが少なくとも1つあるため、Javaとまったく同じです。 、C♯は通常、クローズドソースとして特徴付けられますが、Javaは通常、オープンソースとして特徴付けられます。IMO、これは、90年代初頭のSunとMicrosoftのイメージとは、実際の事実。

4
Jörg W Mittag

オープンソースソフトウェアは、分散した方法でさまざまな貢献者によって開発されるべきです。

極端に言えば、それは混乱のレシピです。 fork、re-fork、およびre-forkされたオープンソースは、いくつかの中心的な組織がそれを導き、正常に保つオープンソースと同じくらい成功することはめったにありません。

おそらく、これまでで最も成功しているオープンソースパッケージであるLinuxカーネルについて見ていきます。 Linuxディストリビューションは多数ありますが、Linuxカーネル自体のソースは、Linux Kernel Organization、Inc.が kernel.org から1つだけです。質問に近いと、Python言語はオープンソースです。しかし、公式にPythonを入手できる唯一の場所はPython Software Foundation at- python.org 。LinuxとPython=が成功した理由の1つは、どちらも、混乱の中で支配する人生の恩恵を受けた独裁者が率いる強力な中央集権的組織を持っていることです。 。

LinuxとPythonは非営利のオープンソースイニシアチブですが、営利組織によって維持および調整されているオープンソースはたくさんあります。Javaはこのカテゴリです。ParaView、VTK、CMake(すべてKitware、Inc. kitware.com から)、OpenVDB(DreamWorks Animationから openvdb.org 経由)、RenderMan (Pixar Animation Studiosから renderman.pixar.com を介して)、その他多数。 [〜#〜] nasa [〜#〜]からのオープンソースパッケージも多数あります および他の政府機関から。組織の王冠の一部を世界に無料で解放することは、ビジネスの観点から理にかなっています。

Javaオープンソースと呼ぶのはなぜですか?

「オープンソース」という用語は、人によって異なることを意味します。一部の人にとっては、単にバイナリ実行可能ファイルを無料で公開することは「オープンソース」とみなされます。通常、バイナリを自由にリリースするだけでは、ほとんどの場合「オープンソース」として認定するのに十分ではありません。ソースコードもリリースする必要があります。他の人にとって、「オープンソース」はそれ以上のものを意味します。

標準のソースコードJavaライブラリ、Javaコンパイラ、およびJava仮想マシンは、次のMercurialリポジトリで公開されています。 openjdk.Java.net 。この意味で、OracleのJavaは、間違いなく「オープンソース」です。これがオープンソースとして適格かどうか(最初の大文字の使用に注意)別の問題であり、意見の対象となります。

0
David Hammen