Ist Java eine Open Source Programmiersprache?

78

Ich weiß, dass Python, Ruby und Perl Open Source sind, aber ist Java wirklich eine Open Source-Programmiersprache?

Ich habe auch bei Google gesucht, aber keine richtige Antwort gefunden.

GuruKulki
quelle
2
gute Frage. Ist die JVM Open Source (Hotspot) oder sind die Cools wie der Javac Compiler auch Open Source?
DC
1
OpenJDK umfasst die Tools, JVM, Klassenbibliotheken und wahrscheinlich noch viel mehr.
Kevin Bourrillion
Kevin: Guter Punkt. Meine Quelle war Wikipedia, aber es scheint, dass diese Informationen durch die Veröffentlichung von JDK6 veraltet sind. en.wikipedia.org/wiki/Java_(programming_language)#History
kusma
Der OpenSource-Head-Honcho bei Sun hat gerade aufgehört. Machen Sie daraus, was Sie wollen. theregister.co.uk/2010/03/09/simon_phipps_quits_sun_oracle
Skaffman
Zu Ihrer Information, ein alternatives Open Source Java ist Apache Harmony. Die Entwicklung wurde jedoch 2011 eingestellt. Siehe auch en.wikipedia.org/wiki/Free_Java_implementations
ToolmakerSteve

Antworten:

22

Ja, oder es wird irgendwann sein (es gibt möglicherweise noch einige Dinge, an deren Ersetzung sie arbeiten, da sie unter Lizenz verwendet wurden). Sun hat sich dazu verpflichtet , es Open Source zu machen, und Sie können es von ihnen herunterladen. Schauen Sie sich OpenJDK an .

paxdiablo
quelle
9
Diese Antwort spricht über das Development Kit, die Frage fragt nach der Sprache.
Rob Oxspring
22
Nun, ich denke nicht, dass das wirklich Sinn macht, @Rob. Alle Sprachen wären Open Source, da sie spezifiziert sind (die Quelle sind die Spezifikationen für die Funktionsweise, zum Beispiel ISO C, die Sprache, ist aufgrund des C99-Standards Open Source). Es ist weitaus sinnvoller, über den Quellcode für eine Implementierung einer Open Source-Sprache zu sprechen. Wenn Sie darüber sprechen, ob eine Sprache Community-Beiträge zu ihrer Entwicklung zulässt, mag dies sinnvoll sein, aber da das OP diese Antwort akzeptiert hat, gehe ich davon aus, dass meine Interpretation die richtige war :-)
paxdiablo
Im Fall Oracle-Google wird herausgefunden, ob die Java-APIs so offen sind, dass Google sie in Android kopieren kann.
Thorbjørn Ravn Andersen
1
@RobOxspring: Für einige Sprachen besteht das "Development Kit" nur aus Tools und Add-Ons. Die Kernsprache und ihre Bibliotheken sind eine separate Einheit. Ich stelle mir vor, dass das ursprünglich auch für Java galt. (Oder vielleicht hat das JDK es aufgenommen, aber mit einer restriktiven Lizenz.) Jetzt, da Sun eine Open-Source-Version veröffentlicht hat, ENTHÄLT das JDK JEDOCH eine Implementierung der Java-Klassenbibliotheken. Dies kann durch BROWSING des JDK gesehen werden. Zum Beispiel navigiert OpenJDK> jdk8 schließlich zu src / share / classes / java / awt / Graphics2D.java, dem tatsächlichen Java-Code für die Graphics2D-Klasse in Release 8.
ToolmakerSteve
83

Eine Programmiersprache ist nicht selbst Open Source oder nicht, aber eine Implementierung könnte es sein. Ja, es gibt Open Source-Implementierungen von Java. Die Java-Implementierung von Sun (die beliebteste) ist eine davon.

Kusma
quelle
1
Nun, das aktuelle "JDK6" ist eine "offenbarte" Quelle (unter JRL, JIUL und wahrscheinlich anderen). OpenJDK (6-open und 7) sind GPL (optional mit der CLASSPATH-Ausnahme).
Tom Hawtin - Tackline
@ Tom - Ich denke, Sie verpassen den Punkt - die Frage betrifft die Sprache und nicht die Laufzeit- oder Entwicklungskit-Implementierungen.
Rob Oxspring
3
Um technisch korrekt zu sein, hat Sun eine Java-Implementierung als Open Source als Teil des JDK veröffentlicht. Es gab auch internen Sun-Code und Tools, die niemals Open Source waren. Jetzt, da Oracle die Patente und den Sun-Code besitzt, ist die Situation düsterer: Oracle hat Google lediglich wegen der Verwendung von APIs in Java verklagt. en.wikipedia.org/wiki/Oracle_v._Google Beachten Sie auch www.cnet.com/news/apache-foundation-quits-proprietary-java-process/ "Da die Plattform vollständig unter der Kontrolle von Oracle steht, tritt die Apache Software Foundation von der Java Community Process Executive Committee. " 10. Dezember 2010.
ToolmakerSteve
Korrektur: als Teil von "OpenJDK". Dies unterscheidet sich vom ursprünglichen Sun "JDK", das eine restriktivere Lizenzierung hatte. Aktuelle Version und Neuigkeiten finden Sie unter openjdk.java.net .
ToolmakerSteve
14

Die "offizielle" SUN-Implementierung der Sprache selbst ist nicht, aber es gibt einen Community-gesteuerten Prozess (nicht sicher, wie gut er funktioniert) für Vorschläge zur Verbesserung der Sprache - den Java-Community-Prozess . Es gibt auch offene Implementierungen der Java-Entwicklungstools und der Laufzeit, wie z. B. OpenJDK .

Thomas Owens
quelle
Vielleicht möchten Sie klarstellen, was Sie unter offiziell verstehen. Sun selbst treibt die OpenJDK-Bemühungen voran, obwohl ich nicht weiß, ob dies unter Oracle weitergeht.
Paxdiablo
8

Noch nicht , aber es wird bald Open Source.

Quelle:


Zitat aus https://blogs.oracle.com/java-platform-group/faster-and-easier-use-and-redistribution-of-java-se :

  • Oracle schlägt vor, die Release-Trittfrequenz von Java SE auf alle sechs Monate zu erhöhen
  • Oracle wird die Verwendung von Java SE durch Entwickler, Kunden und Verbraucher vereinfachen
  • Ab JDK 9 GA plant Oracle, OpenJDK-Builds unter der GPL zu versenden
  • Oracle hat ein zeitgesteuertes Release-Modell für Java SE anstelle des historischen funktionsgesteuerten Modells vorgeschlagen
  • Oracle JDK wird zuvor kommerzielle Funktionen wie Java Flight Recorder zu OpenJDK beitragen
  • Oracle wird mit anderen OpenJDK-Mitarbeitern zusammenarbeiten, um die Community-Infrastruktur vollständig, modern und zugänglich zu machen
  • Das Oracle JDK wird weiterhin als kommerzielles langfristiges Supportangebot angeboten
  • Das Oracle JDK wird in erster Linie für kommerzielle und Support-Kunden bestimmt sein, sobald OpenJDK-Binärdateien mit dem Oracle JDK austauschbar sind (Ziel Ende 2018). Oracle wird die Verpackung und Verteilung vollständiger betriebsbereiter Anwendungen weiter verbessern

Wir haben Java EE verschoben auf: http://openjdk.java.net/projects/jdk9/spec/

Lesen Sie weiter:

  1. https://blogs.oracle.com/theaquarium/opening-up-ee-update
  2. https://blogs.oracle.com/java-platform-group/java-se-offerings
  3. https://blogs.oracle.com/java/java-9-release-now-available
  4. https://blogs.oracle.com/java-platform-group/convergence-of-oracle-java-se-embedded-with-oracle-jdk
ABcDexter
quelle
5

Der Ausdruck "Java-Programmiersprache" bezieht sich auf die Spezifikation von Sun (jetzt Orakel). Sun bietet eine Referenzimplementierung von Java Virtual Machine und Java Compiler. Beide sind nicht Open Source (zumindest nicht vollständig wie Python).

OpenJDK zum Beispiel ist jedoch eine vollständige Open-Source-Implementierung der Programmiersprache JAVA. Es könnte auch mehr geben.

Die meisten Programmierer betrachten Java als eine von Sun bereitgestellte Programmiersprache. Ich denke, Sun bietet nur die Implementierung der Sprachspezifikation, die von jedem unter jeder Lizenz durchgeführt werden kann.

Ostmönch
quelle
3

Von Oracle America Inc gegen Google LLC Nr. 3: 10-cv-03561-WHA:

"... In diesem Aufruf geht es um 37 API-Pakete aus Java SE Version 1.4 und Version 5.0. Wir sind bereits zu dem Schluss gekommen, dass der deklarierende Code und das SSO der 37 fraglichen Java API-Pakete zum Schutz des Urheberrechts berechtigt sind. Oracle, 750 F.3d um 1348. Die Java-Programmiersprache selbst ist kostenlos und kann ohne Erlaubnis verwendet werden. Zum gegenwärtigen Zeitpunkt ist unbestritten, dass, um in der Java-Programmiersprache zu schreiben, „62 Klassen (und einige ihrer Methoden) verteilt sind Es müssen drei Pakete in der Java-API-Bibliothek verwendet werden. Andernfalls schlägt die Sprache selbst fehl. “ Order Denying JMOL, 2016 WL 3181206, at * 5. Es ist auch unbestritten, dass jeder, der die Programmiersprache Java verwendet, seine eigene Bibliothek vorab geschriebener Programme schreiben kann, um verschiedene Funktionen auszuführen. Obwohl Oracle die Java-Plattform für Programmierer, die Anwendungen („Apps“) erstellen, frei verfügbar macht, wurde ein Lizenzierungsschema entwickelt, um Programmierer anzulocken und gleichzeitig die Plattform zu kommerzialisieren. In einem relevanten Teil erhebt Oracle eine Lizenzgebühr für diejenigen, die die APIs auf einer konkurrierenden Plattform verwenden oder in ein elektronisches Gerät einbetten möchten. Um die Philosophie „Einmal schreiben, überall ausführen“ beizubehalten, stellt Oracle Lizenznehmern strenge Kompatibilitätsanforderungen. Oracle, 750 F.3d um 1350. Oracle stellte unter einer Open-Source-Lizenz auch eine Java-Version namens "OpenJDK" kostenlos zur Verfügung. Order Denying JMOL, 2016 WL 3181206, at * 10. Oracle behauptet jedoch, dass OpenJDK einen wichtigen Haken hatte: Jedes Unternehmen, das die Pakete in OpenJDK verbessert hat, musste diese Änderungen kostenlos an die Java-Community weitergeben. Beschwerdeführerin Br. 53. Die Beweise zeigten, dass Oracle Java bis 2005 auf 700 Millionen PCs lizenziert hat. Obwohl Oracle seine eigene Smartphone-Plattform mit Java nie erfolgreich entwickelt hat, hat es Java SE für mobile Geräte lizenziert. Laut Oracle war der „Markt für mobile Geräte besonders lukrativ“ und ORACLE AMERICA, INC. Gegen GOOGLE LLC 10 „Java wurde schnell zur führenden Plattform für die Entwicklung und Ausführung von Apps auf Mobiltelefonen.“ Beschwerdeführerin Br. 9. ... " GOOGLE LLC 10 „Java wurde schnell zur führenden Plattform für die Entwicklung und Ausführung von Apps auf Mobiltelefonen.“ Beschwerdeführerin Br. 9. ... " GOOGLE LLC 10 „Java wurde schnell zur führenden Plattform für die Entwicklung und Ausführung von Apps auf Mobiltelefonen.“ Beschwerdeführerin Br. 9. ... "

Teile der Sprache unterliegen Lizenzgebühren, daher scheinen diese Abschnitte nicht "Open Source" zu sein ...

anonym
quelle
1

Der größte Teil von "Java" ist Open Source. Es gibt einige kleine Teile, zu deren Eröffnung Sun nicht berechtigt ist. Weitere Informationen finden Sie auf der Website für OpenJDK

Curtisk
quelle
1

OpenJDK Nachdem Sie es in einen src-Ordner heruntergeladen haben, haben Sie Windows, Solaris, Share, Linux im Share-Ordner. Sie können Klassen finden. Dort sehen Sie den Quellcode aller Klassen (zB JButton).

Horatiu Jeflea
quelle
1

Am 13. November 2006 veröffentlichte Sun einen Großteil von Java als freie und Open-Source-Software (FOSS) unter den Bedingungen der GNU General Public License (GPL). Am 8. Mai 2007 beendete Sun den Prozess und stellte den gesamten Java-Kerncode unter den Bedingungen für freie Software / Open-Source-Distribution zur Verfügung, abgesehen von einem kleinen Teil des Codes, für den Sun nicht das Urheberrecht besaß.

OpenJDK (Open Java Development Kit) ist eine kostenlose Open Source-Implementierung der Programmiersprache Java. Dies ist das Ergebnis einer Anstrengung, die Sun Microsystems im Jahr 2006 begonnen hat. Die Implementierung unterliegt der GNU General Public License (GNU GPL) mit einer Verknüpfungsausnahme.

Warum gibt es immer noch Leute, die sagen, Java sei nicht Open Source oder frei wie in der Redefreiheit?

Shyam D.
quelle
3
Weil es jetzt im Besitz von Oracle ist.
Kshitiz Sharma
1
Weil Sie von Oracle verklagt werden, wenn Sie es verwenden, sobald Sie anfangen, viel Geld zu verdienen. Nicht so bei anderen "eindeutig freien" Sprachen.
B264
1

Java Language ist Open Source. Es gibt nur wenige Segmente, für deren Eröffnung Sun nicht berechtigt ist

illahi
quelle