Oracle JDK muss bezahlen. Was sind jetzt die Optionen?

Die Debatte über die Relevanz von Java geht weiter. Einige sagen, dass es veraltet ist und fortgeschrittenere Sprachen es ersetzen. Andere sind anderer Meinung und nennen die Anzahl der Spezialisten, die Java von Jahr zu Jahr als ihre Kernkompetenz wählen. In jedem Fall kann man die Tatsache nicht ignorieren, dass der größte Teil der vorhandenen Software in Java geschrieben ist und die internen und externen Kunden sie weiterhin verwenden. In dieser Situation sollten neue Implementierungen und globale Nachrichten über Java nicht vermieden werden. Peter Verhas , leitender Softwareentwickler und Architekt im Schweizer Büro von EPAM, teilte seine Analyse mit, welche Änderungen Oracle einführt und wie sie sich auf uns auswirken werden.

Bild

In letzter Zeit gab es viele Änderungen in Java, und es scheint, dass sich die Art und Weise, wie sich die Sprache entwickeln wird, grundlegend geändert hat. Es ist gut, dass neue Funktionen in der Sprache angezeigt werden. Dies sind jedoch nicht die einzigen Änderungen. Oracle hat das Support-Modell und den Aktualisierungszyklus der von diesem Unternehmen veröffentlichten Java-Version erheblich geändert. All dies führte zu großer Verwirrung durch Veränderungen, Fehlinformationen und Missverständnisse. In diesem Artikel fasse ich alles zusammen, was Benutzer über Innovationen wissen müssen, bevor sie an das apokalyptische Ende des Java-Ökosystems glauben.

Einige Punkte müssen jedoch zuerst geklärt werden.

Oracle besitzt Java, aber Java ist nicht Oracle. Java-Quellcode wird unter der GPLv2.0-Lizenz mit Klassenpfadausnahme veröffentlicht. In der Tat bedeutet dies, dass jeder den Quellcode der Sprache kostenlos verwenden und ändern kann. Es gibt nur eine Sache, die jeder, einschließlich Oracle, nicht tun darf: Änderungen am Code vornehmen und ihn mit einer Closed-Source-Lizenz veröffentlichen. Dies bedeutet, dass die kommerzielle Nutzung von Java, nur der kostenpflichtigen Version, rechtlich unmöglich ist, selbst wenn die Marketing- oder Geschäftsinteressen von Oracle dies erfordern. Aber ich bin immer noch ein technischer Spezialist. Um diesen Punkt zu behandeln, ist es zu 100% am besten, den Text der GPLv2-Lizenz herunterzuladen und einen Anwalt zu konsultieren.
Oracle ist nicht das einzige Unternehmen, das Java-Assemblys veröffentlicht und Support leistet. Es gibt viele andere Anbieter. Natürlich ist Oracle als Hauptakteur, der am meisten in die Entwicklung der Sprache und der Tools investiert, das renommierteste Handelsunternehmen, das dies unterstützt.

Tatsächlich hat Oracle nicht nur exklusive Rechte für Java-Quellcode. Der Entwicklungsprozess, Änderungen in der Definition von Java, API - all dies liegt in den Händen des Java Community Process, an dem jeder teilnehmen kann. Für Einzelpersonen ist dies völlig kostenlos. Mitglieder dieser Gruppe sind Unternehmen wie Intel, IBM, Credit Suisse, Software AG, RedHat. Sie bestimmen die Zukunft von Java, nicht von Oracle. Und sie haben ihre eigene Meinung, wie wir das letzte Mal sehen konnten, als die Genehmigung der endgültigen Version von JPMS nicht ganz reibungslos verlief.

Nach dieser Einführung, in der wir entschieden haben, dass Oracle Java „besitzt“, aber kein Java ist, wollen wir uns die Änderungen im Entwicklungsunterstützungsverfahren und in der von Oracle eingeführten Java-Roadmap ansehen.

Änderungen nach Java 9, 10, 11


Oracle gab bekannt, dass Oracle JDK ab JDK11 nicht mehr kostenlos sein wird. Und diese Aussage ist zunächst beängstigend. Was wir gewohnt sind, kostenlos zu nutzen, wird nicht mehr so ​​sein. In der Praxis ist es fast logisch, was „wir zahlen müssen“. Aber das kleine Wort "fast" steht aus einem bestimmten Grund da. Wenn wir einen Dienst genutzt haben und dieser nicht mehr kostenlos ist, haben wir zwei Möglichkeiten: Bezahlen, um ihn später zu nutzen, oder um ihn nicht mehr zu nutzen. Sollten wir weiterhin Oracle JDK verwenden oder können wir zu etwas anderem wechseln? Das ist die eigentliche Frage.

Um darauf zu antworten, müssen Sie verstehen, was Oracle JDK ist und welche Alternativen es gibt. Eine weitere wesentliche Änderung betrifft die Release-Zyklen der neuen Versionen und das Konzept des Langzeit-Supports (Eng. - Long Term Support oder LTS). Zuerst werden wir die Änderungen im Release-Zyklus diskutieren, dann die Verwechslung mit Open JDK und schließlich die LTS-Struktur.

Freigabezyklus


Java erschien 1996. Die ersten Versionen von Java wurden mehr oder weniger regelmäßig veröffentlicht.

Bild

Wenn wir uns das Diagramm ansehen, sehen wir jedoch, dass die Version von Java 5.0 verzögert wurde. Java 6 hatte es auch für die vorherige Version nicht eilig und der größte Bruch war zwischen Java 6 und Java 7. Selbst danach wurden neue Versionen nicht sehr oft veröffentlicht. Java 8 erhielt viele neue Funktionen, jedoch auf Kosten von zwei Jahren Wartezeit. Ähnlich war es mit Java 9, das, obwohl es noch größere Änderungen erfahren hatte, drei ganze Jahre warten musste.

Das Problem bei solchen Update-Release-Zyklen besteht darin, dass eine Sprache, die selbst auf dem sich ständig weiterentwickelnden Sprachmarkt konkurriert, neue Funktionen nicht schnell genug präsentieren kann. Wenn die Entwicklung eines modularen Systems drei Jahre dauert, kann nichts den Prozess beschleunigen. Einige Dinge, die in Java 9 erschienen sind, wurden möglicherweise früher veröffentlicht. Aber sie konnten einfach nicht zu den Entwicklern gelangen, da es keine früheren Versionen gab. Bereits verfügbare Funktionen sollten auf das Erscheinen der in dieser Version am langsamsten entwickelten Funktion gewartet haben. Dies ist eines der Probleme des klassischen kaskadierenden Entwicklungsmodells.

Oracle hat beschlossen, alle sechs Monate agil zu werden und Versionen zu erstellen. Ab September 2017 sind neue Java-Versionen im März und September zu erwarten. Wenn eine Funktion für diese Daten nicht bereit ist, wird sie auf die nächste Version übertragen, aber der Rest, sobald sie bereit ist, fällt in die aktuellste Version.

Im Allgemeinen ist dies normal. Einerseits sollten sich die Java-Community und die Entwickler darüber freuen. Auf der anderen Seite bleibt die Frage der Unterstützung. Wer kann so viele Java-Versionen unterstützen? Aus diesem Grund wurde die langfristige Unterstützung (Long Term Support, LTS) eingeführt, über die wir in Kürze sprechen werden. Zunächst müssen Sie jedoch noch klären, was Oracle JDK und OpenJDK sind.

Was waren und werden Oracle JDK und OpenJDK


Bis Java 9 gab es eine binäre Version der Java Java-Assembly Oracle (Sun Microsystems), die von den meisten Entwicklern und Unternehmen in der Produktionsumgebung verwendet wurde. Diese Binärdatei basierte auf Open Source Java und enthielt einige Verbesserungen - zusätzliche Unternehmenstools wie Java Flight Recorder, Java Mission Control und einige andere Funktionen wie Application Class-Data Sharing.

Die OpenJDK-Assembly wurde aus Open Source Java erstellt, bei dem es keine Verbesserungen gab. Diese Java-Assembly wurde von jenen verwendet, die mit Java-Eigenschaften experimentieren, den Code ändern wollten oder einfach aus irgendeinem Grund Anhänger von Open Source-Code waren. Obwohl Sie den Quellcode heruntergeladen und selbst kompiliert haben sollten.

Ab Java 9 stellte Oracle OpenJDK parallel zu Oracle JDK bereit. Das Unternehmen kündigte außerdem an, die Lücke zwischen den Funktionen, der Leistung und der Stabilität der beiden Versionen zu schließen und Oracle JDK in diesem Fall bezahlt zu machen. Zu diesem Zeitpunkt waren sowohl OpenJDK als auch Oracle JDK kostenlos als binäre Assemblys von Oracle verfügbar. Dies waren Java 9 und Java 10.

Nach der Veröffentlichung von Java 11 wurde dies gestoppt. OpenJDK ist weiterhin kostenlos verfügbar, aber Oracle JDK für Produktionssysteme wurde bezahlt. Es gibt keinen signifikanten Unterschied mehr zwischen den beiden Versionen. Die kommerzielle Version hat ein Installationsprogramm, während OpenJDK nur eine ZIP-Datei hat. Es gibt andere Unterschiede, aber Java-Benutzer sollten sie nicht beachten. Eine technisch detaillierte Liste der Unterschiede beschreibt Donald Smith, Senior Director für Produktmanagement bei Oracle, in diesem Artikel .

Darüber hinaus ist Oracle JDK für andere, sogar kommerzielle Benutzer weiterhin kostenlos. Oracle JDK kann frei verwendet werden für:

• Entwicklung
• Testen
• Prototyping
• Demonstrationen

Sie können OpenJDK für andere Zwecke verwenden oder Oracle bezahlen und Oracle JDK verwenden und Unterstützung erhalten. Die Unterstützung ist gut.

Langzeit-Support-Releases


Der Übergang zu einem neuen Versionszyklus alle sechs Monate warf eine Frage der Unterstützung auf. Niemand kann so viele Versionen zu seinem eigenen Vorteil unterstützen. Wenn Sie 2007 Java 6 für Ihre Anwendung installiert haben, können Sie in 11 Jahren Unterstützung von Oracle erhalten. Die Veröffentlichung neuer Versionen alle sechs Monate impliziert die gleichzeitige Unterstützung von 22 verschiedenen Versionen. Dies wäre eine schwere Belastung für Oracle oder jeden anderen Anbieter, der sich entscheidet, alle Releases zu unterstützen.

Die Strategie von Oracle besteht darin, alle drei Jahre eine Version zu identifizieren, die langfristig unterstützt wird. Die erste derartige Version war Java 11 und wird bis 2026 unterstützt. In dieser Zeit wird Java 17 auch im September 2021 veröffentlicht, das gemäß den aktuellen Plänen langfristig sieben Jahre lang unterstützt wird. Alle anderen sogenannten Funktionsversionen werden nur bis zur Veröffentlichung der nächsten Version unterstützt.

Bild

Bitte beachten Sie, dass der Support nur für Oracle JDK gilt und nur für diejenigen, die für JDK und Support bezahlt haben. Aber denken Sie nicht, dass Sie dem Schicksal ausgeliefert waren, wenn Sie OpenJDK verwenden möchten. Für uns hat sich nichts geändert. Wenn Sie den Support vorher nicht bezahlt haben, haben Sie ihn trotzdem nicht erhalten. Wenn Sie bezahlt haben, zahlen Sie weiterhin und erhalten diese Unterstützung.

Hier ist ein Link zu einem Oracle-Artikel mit Prognosen zum Lebensende für verschiedene Versionen.

Wird es neue Versionen für OpenJDK geben? Natürlich. Zuvor wurden Java Open Source-Updates veröffentlicht, mit denen Fehler behoben wurden, obwohl nicht garantiert wurde, dass sie veröffentlicht werden. Dies geschah einfach, weil alle Teilnehmer daran interessiert waren. In Zukunft bleibt alles wie bisher, Java erhält neue Versionen, neue Assemblys.

Ich sehe drei Hauptstrategien für die Auswahl der am besten zu installierenden Java-Version:

  1. Bezahlen Sie Oracle für Oracle JDK und Abonnement und verwenden Sie Releases mit langfristiger Unterstützung. Dies sollten große kommerzielle Unternehmen tun, die die Java-Infrastruktur verwenden, um die Zuverlässigkeitsanforderungen zu erfüllen.
  2. Wechseln Sie zu OpenJDK, verwenden Sie nur Releases mit langfristiger Unterstützung und installieren Sie für OpenJDK verfügbare Bugfix-Versionen. Dies ist eine praktikable Lösung für Unternehmen, die die Kosten der Java-Infrastruktur nicht ändern können oder wollen, in der Vergangenheit auf kommerzielle Unterstützung verzichten konnten und glauben, dass sie dies auch langfristig tun können.
  3. Wechseln Sie zu OpenJDK und installieren Sie nachfolgende Releases alle sechs Monate, sobald sie angezeigt werden. Dies ist eine Option für Unternehmen, die die neuesten Technologielösungen benötigen.

Strategien können auch kombiniert werden, indem verschiedene Java-Versionen auf verschiedenen Computern installiert werden. Unabhängig von Ihrer Auswahl können Sie Binärversionen des Pre-Builds von folgenden Websites herunterladen:

  • Binäre Versionen des vorgefertigten OpenJDK adoptopenjdk.net
  • Oracle JDK ist unter java.oracle.com verfügbar. Hier können Sie auf Java SE 11 klicken, um zur Download-Seite zu gelangen und zum Download-Button zu gelangen. Auf der Seite befindet sich eine große gelbe Warnung. Sie müssen auch auf die Vereinbarung mit den Lizenzbedingungen klicken, bevor der Download-Link verfügbar wird. Und dieses Mal ist es besser, die Bedingungen wirklich zu lesen und nicht automatisch zuzustimmen.

Obwohl dies kein binärer Download ist, hängt er eng mit dem Herunterladen des Oracle JDK zusammen. Sie können auch www.oracle.com/java/java-se-subscription.html besuchen, um Oracle JDK und Support in einem Paket zu erhalten. Detaillierte Preisinformationen finden Sie unter www.oracle.com/us/corporate/pricing/price-lists/java-se-subscription-pricelist-5028356.pdf . Für die Ungeduldigen habe ich hier die Preisinformationen aus den offiziellen Oracle-FAQ kopiert:

„Die Kosten für die Desktop-Version betragen 2,50 USD pro Benutzer und Monat oder weniger, wenn es mehrstufige Mengenrabatte gibt. Weitere Informationen finden Sie in der Oracle Java SE-Abonnement-Preistabelle. “

Zusammenfassung


Was machst du OpenJDK verwenden oder für Oracle JDK bezahlen? Es ist eine Frage der Rentabilität und wie wichtig Oracle-Support für Sie ist. Wenn sich Ihr Unternehmen keinen Oracle JDK-Support leisten kann, weil Sie ein Startup sind, ein aufstrebender Stern mit einer brillanten Produktidee, aber einem Loch in der Tasche, dann erfüllt OpenJDK Ihre Anforderungen. Sie müssen nicht dafür bezahlen. Außerdem ist es für Sie als Startup nicht so wichtig, wenn Ihre Server mehrere Stunden lang nicht funktionieren, bis die technischen Experten das Problem gelöst haben. Wenn Sie sich Ausfallzeiten nicht leisten können, arbeiten Sie höchstwahrscheinlich in einem ausgereiften Unternehmen und sollten daher Oracle JDK verwenden und sich für den Support anmelden. Sie können auch verschiedene Modelle kombinieren und auf einigen Produktservern installieren, die rund um die Uhr verfügbar sein sollten, Oracle JDK und OpenJDK in internen Anwendungen, die für das Geschäft nicht so wichtig sind.

In jedem Fall können Sie Java weiter verwenden.

Über den Autor:

Peter Verhas arbeitet im Schweizer Büro von EPAM. Peter entwickelt Software für Kunden, bietet Schulungen für Programmierer und Mentoring innerhalb des Unternehmens an.

Sie können Peter auf Twitter , LinkedIn und GitHub folgen. Der Autor hat auch einen Blog, "Java deep": javax0.wordpress.com

Source: https://habr.com/ru/post/de430084/


All Articles