Javaは無料/オープンソースですか?


33

2006年11月13日、Sunは、GNU General Public License(GPL)の条件の下で、Javaの多くを無料のオープンソースソフトウェア(FOSS)としてリリースしました。2007年5月8日に、Sunはプロセスを終了し、Sunが著作権を保有していないコードの一部を除き、Javaのすべてのコアコードをフリーソフトウェア/オープンソース配布条件利用できるようにしました

OpenJDK(Open Java Development Kit)は、Javaプログラミング言語の無料でオープンソースの実装です。これは、Sun Microsystemsが2006年に開始した取り組みの結果です。実装は、リンク例外を除き、GNU General Public License(GNU GPL)の下でライセンスされています。

  • Javaが言論の自由のようにオープンソースでもフリーでもないという人がまだいるのはなぜですか?
  • 何か不足していますか?
  • Javaはまだ独自仕様ですか?


Sun JVM実装だけが保護されているのか、テクノロジー(バイトコード)が保護されているのか正確にはわかりませんが、すべてのコアライブラリ(java.xy)は無料です。したがって、誰かが別のバイトコード仕様とVMを作成する場合は、既存のライブラリを無料で使用する必要があります。おっと、GoogleはDalvikでそうしました!
ern0

回答:


37

問題は、何か「Java」を呼び出すためには、Java仕様に準拠していると認定される必要があることです。

この認定を取得するための前提条件の1つは、テストスイート(Java Technology Compatibility Kit(TCK))を通じてJVMを実行することです。このテストスイートはオープンソースではありません。

そのため、非常にJavaのように動作し、完全にオープンソースのJVMを構築できますが、「Java JVM」と呼びたい場合は、非オープンソースライセンスで認定スイートを購入する必要があります。多くのオープンソース支持者にとって、これは完全な非スターターです。


7
これが、Apache Harmony(かなり完全で独立したJVM実装)が停止した理由の1つです。Sun / Oracleがこのように行動した(そして今でもこのように行動している)のは本当に残念です。Googleが行ったこと(「ほぼコピー」のJava)も、おそらくこれの直接的な結果です。
ヨアヒムザウアー

1
また、テストスイートはJavaプラットフォームTCKです(Java関連のテクノロジ用のTCKもあります)。
ヨアヒムザウアー

4
また、成功したJVMを構築すると、Oracle は著作権侵害と特許侵害であなたを訴える可能性があります。彼らがAndroid上でGoogleを訴えたように。
MarkJ

2
命名法は、何かオープンソースと呼ぶことに関連していますか?独自のブラウザを作成してfirefoxと呼ぶこともできません。質問の最初のことはそれを理解することだと思います...「Java」という用語の意味は、言語仕様、jvm実装、...そして誰がそれを非オープンと呼んでいるのか…
johannes

@johannes-オープンソースの退屈な人々とニトピッカーの家へようこそ!オープンソースコミュニティの多くにとって、これらの区別は重要です。ApacheがHarmonyプロジェクトを放棄するのを目撃してください。すべてのAndroidデバイスの中心にあるDalvik VMのように動作するJavaのような環境を持つことは、より実用的な傾向を持つ他の人にとっては「十分」です。
ジェームズアンダーソン

15

どの回答を使用するかについては、削除される前にこの回答を読んでおく必要があります。主な答えは次のとおりです。

Java 7については、JDK7とOpenJDK7が(ほぼ)同じコードベースを持つことに注意してください。

ほぼ強調表示されていることに注意してください。

その答えからリンクされた記事から:

[…]しかし、古いクローズドソースコードを使用するオープンソースの代替があるコードがいくつかあります。これは主にフォントとグラフィックのラスタライズにあります。古いクローズドソースのラスター化コードは、邪魔されながら、10年以上のバグ修正や微調整などがあり、製品化されたJDKビルドでそのコードを置き換えるためのオープンソースの置換のために、高速で安定しており、既存のクローズドコードとしての高品質。

また、Java FAQから:

Java Development Kit(JDK)は無料でダウンロードして商用プログラミングに使用できます、再配布することはできません

したがって、オープンソースはありません。ほぼ近い。

また、たとえ完全にオープンソースであったとしても、開発モデルとガバナンスはそうではありません。ただし、これはライセンスの問題ではありません。


1
「無料でダウンロードして使用できますが、再配布はできません」とは、ソフトウェアが「フリーソフトウェアではない」ことを意味しますが、それでも「オープンソース」である可能性があります。オープンソースは、単にソースコードにアクセスできることを暗示しています。フリーソフトウェア(FSFなどによって定義されている)には、再配布する権利も必要です。
CVn

6
@MichaelKjörlingOSIの定義には確かに再配布権が必要です。
ルイスキューバル

1

1997年に、Sun MicrosystemsはECMAにJavaの正式化を要請しましたが、すぐにプロセスから撤回しました。Java標準は、実際にはJava Community Processによって制御されます

2006年に、JavaのほとんどはGPLの条件の下でSun Microsystemsによってリリースされましたが、現在の公式な実装はOracleが所有しています。

JavaにはECMA、ISO / IEC、ANSI、またはその他のサードパーティ標準組織によって認められた正式な標準化が欠けているため、Oracle実装は事実上の標準です。ただし、GNU Compiler for Java、GNU Classpath、IcedTea-Webなどの代替実装があります。


7
-1:Java 7以降、公式のリファレンス実装はGPLのOpenJDKです。
マイケルボルグワード

2
Javaについて話すと、-1が得られます:(OpenJDKはオープンソースですが、Java.comでの実装は、上記およびここで述べたようにBCL です最初に、Apache Harmonyに対するポリシーに変更はありません。OCTLAは無料のプログラムです。 GPLに基づいてライセンスされたOpenJDK派生実装のTCKへのアクセスであり、その目的のみを目的としています。次に、Oracleの実装(java.comまたはjava.oracle.comにあるもの)はBCLライセンスにのみ基づいています。完全に明確にするために、OpenJDKのソースコードはGPLの下にあります
Sajad Deyargaroo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.