Open-Source-Java: Details und Reaktionen

Test & Kaufberatung | Test

Mit seiner Ankündigung, Java unter der GPL freizugeben, hat Sun monatelange Spekulationen beendet. Das Unternehmen hat detaillierte Vorstellungen, wie die Java-Entwicklung weitergehen soll.

Java-Erfinder Sun hat seine Java-Implementierung unter der GPL als open Source freigegeben. Mittlerweile klären sich auch die Details: Sun hat auf seinen Open Source Java-Seiten eine umfangreiche FAQ veröffentlicht, die viele Fragen beantwortet, die die ursprüngliche Ankündigung offen ließ.

Sun veröffentlicht zunächst die Quellen von Teilen der Java Standard Edition (Java SE) unter der GPL: den Java-Compiler javac, Kernbestandteil des Java Deleopment Kit (JDK); die Java Virtual Machine (JVM) HotSpot, Kern des Java Runtime Environment (JRE); und das Dokumentationssystem JavaHelp.

Was noch fehlt, ist im wesentlichen die umfangreiche Klassenbibliothek, die das JDK erst komplett macht. Hier sind noch einige Hindernisse – sprich: Code, dessen Rechte nicht vollständig bei Sun liegen – auszuräumen. Die Klassenbibliothek soll daher erst im ersten Quartal 2007 folgen und wird dann unter der Classpath-Lizenz stehen. Die freie Java-Klassenblibliothek des GNU-Projekts ist unter der GPL lizenziert mit der Ausnahme, dass sie auch in proprietärer Software verwendet werden darf. Damit ist sichergestellt, dass sich auch mit einem JDK unter GPL proprietäre Java-Software erstellen lässt.

Bit Mitte 2007, so Sun, sollen im OpenJDK-Projekt die wesentlichen Quelltexte des Java SE JDK als Open Source verfügbar sein – alles, was nötig ist, um das JDK selbst zu kompilieren. Die einzelnen Bestandteile will Sun als vorbereite Projekte für Suns IDE NetBeans veröffentlichen. Wer die unter der Suns Common Development and Distribution License (CDDL) freigegebe Entwicklungsumgebung benutzt, kann auf Knopfdruck ein eigenes JDK bauen. (Eclipse-Anwender dürften etwas mehr Mühe investieren müssen...) NetBeans wird nach den derzeit vorliegenden Informationen übrigens nicht unter GPL verfügbar werden.

Der freigegebene Code basiert auf einer frühen Version des JDK 7. Aktuell ist JDK 5; die Version 6 ist gerade als Release Candidate erschienen und soll Anfang Dezember das JDK 5 ablösen.

Ebenfalls schon jetzt unter GPL freigegeben sind die Quellen von phoneME, der Java-Plattform für Handys. Sie enthält Kernbestandteile der Java Mobile Edition (Java ME) wie die JVM CLDC und MIDP (Mobile Information Device Profile). Letztlich soll der gesamte Java-ME-Code unter GPL veröffentlicht werden.

Die Java Enterprise Edition (Java EE) zur Erstellung serverseitiger Anwendungen ist schon seit einem guten Jahr im Rahmen des GlassFish-Projekts als Open Source unter Suns CDDL verfügbar. Ab jetzt ist Java EE wahlweise unter CDDL oder GPL mit Classpath-Ausnahme lizenziert.

Ist das das Ende von Suns kommerziellen Java-Produkten? Keineswegs: Das Unternehmen wird weiterhin kommerzielle Versionen des JDK und des JRE vermarkten. Der Schwerpunkt liegt dabei auf Supportangeboten. Die kommerzielle JDK-Version wird zu großen Teilen auf OpenJDK basieren, aber zumindest vorerst noch einige zusätzliche Komponenten umfassen: JDK-Code, dessen Rechte nicht bei Sun liegen, muss noch durch Open-Source-Code ersetzt werden. Das betrifft vor allem Komponenten zur Darstellung von Schriften und 2D-Grafik. Auch die Mobile Edition wird weiterhin alternativ unter einer kommerziellen Lizenz erhältlich sein.

Der Schwerpunkt der kommerziellen Angebote liegt auf Training, Support und Maintenance. Käufer der kommerziellen Variante können Binaries aus modifiziertem Code als Java-komtatibel ohne Zwang zur Offenlegung der Quelltexte vertreiben. Sun bietet Unterstützung bei Tests mit dem TCK (Technology Compatibility Kit), Voraussetzung zur Erlangung des Java-Kompatibilitäts-Logos.

Als weitere Vorteile der kommerziellen Varianten nennt Sun getestete und performance-optimierte Binaries, für die das Unternehmen Updates, Patches und Security Fixes anbietet – inklusive Fixes für Bugs, die beim Kunden auftreten. Und, nicht zu vergessen: Bei Sun ist (zumindest noch) die meiste Kompetenz in Sachen Java versammelt, auf die man als Käufer zurückgreifen kann.

Ganz gibt Sun Java mit der heutigen Ankündigung nicht aus der Hand: Die Marke Java und die Kaffetasse als Logo bleiben geschützt. Um eine Software, die auf den Sun-Quellen basiert, "Java-kompatibel" oder "Java powered" nennen zu dürfen, muss die Software die Tests des Technology Compatibility Kits (TCK) bestehen. Sun will damit sicherstellen, dass die Einheitlichkeit der Java-Plattform nicht gefährdet wird.

Auch der Java Community Process (JCP), der die Weiterentwicklung der Programmiersprache steuert, bleibt erhalten. Hier wird Sun weiterhin eine wichtige Rolle spielen.

Ein genauer Modus, wie externe Entwickler Code zu OpenJDK und der anderen Open-Source-Software beisteuern können, muss noch entwickelt werden; aber Sun hat bereits deutlich gemacht, dass sicherlich nicht jeder nach Gutdünken Code einbringen kann. Letztlich dürfte die weitere Entwicklung der Java-Software ähnlich wie bei anderen großen Open-Source-Projekten ablaufen: Es wird lediglich eine kleine Gruppe von Personen geben, die tatsächlich Änderungen der Code-Basis vornehmen dürfen. Diese Maintainer dürften zunächst überwiegend Sun-Mitarbeiter sein; aber externe Maintainer sind ein erklärtes Ziel.

Entwickler, die an Suns Java-Software mitarbeiten wollen, müssen nach wie vor das Sun Contributor Agreement (SCA) unterschreiben, das Sun eine Reihe von Rechten an dem Code einräumt.

Ein erklärtes Ziel der Freigabe von Java unter der GPL ist es, der Sun-Software den Weg in die Linux-Distributionen zu ebnen. Immer mehr Distributionen enthalten nur noch Software, die unter der GPL oder einer kompatiblen Lizenz steht. Suns JDK und JRE blieben damit bislang außen vor; teilweise kamen andere Java-Implementierungen wie der Java-Compiler Jikes und die Java-Klassenbibliothek Classpath zum Zuge. Sun möchte jetzt alle Kräfte in seinem OpenJDK-Projekt bündeln – und, auch wenn man nicht so direkt darüber spricht, wohl der eigenen IDE NetBeans Vorteile gegenüber Eclipse verschaffen.

Zudem war Java von Anfang an mehr oder minder "offen": offen im Sinne von offenen Standards, offen auch im Sinne einer für die Mitsprache der Java-Community offenen Weiterentwicklung der Programmiersprache im Java Community Process. Zudem bietet Sun JDE und JRE schon seit langem kostenlos an, um die Verbreitung der Java-Plattform zu fördern.

Trotzdem sperrte sich das Unternehmen jahrelang dagegen, Java als Open Source freizugeben: Suns oberstes Ziel war immer ein einziger Java-Standard, dem alle Implementierungen zu gehorchen haben – das Java-Grundprinzip lautete schließlich "write once, run everywhere". (Deswegen prozessierte man Ende der 90er Jahre mit Microsoft, als die Redmonder versuchten, den Java-Standard durch eigene Erweiterungen zu unterlaufen.) Open Source, so Suns Argument über viele Jahre, würde nur zu inkompatiblen Forks führen und so die einheitliche Java-Plattformen zerstören.

Der Erfolg von Linux hat allerdings deutlich gemacht, dass Open Source die Lizenzierungsstrategie der Wahl für alles ist, was als Plattform weite Verbreitung finden soll. Sun folgt hier nur einem Trend, der derzeit in vielen Bereichen der Software-Entwicklung um sich greift. Der Entscheidung gegen die eigene, GPL-inkompatible CDDL und zugunsten einer dualen Lizenzierung mit GPL und einer kommerziellen Lizenz folgt dem Beispiel anderer erfolgreicher Open-Source-Software; ein besonders prominentes Beispiel ist MySQL (siehe Artikel MySQL: Die freie Wahl – wie das Dual-Licensing-Modell funktioniert).

So findet Suns Entscheidung für die GPL allgemeinen Zuspruch in der Open-Source-Community. FSF-Gründer und GPL-Erfinder Richard M. Stallman lobt Sun dafür, das "mehr Code als jedes andere Unternehmen" zum Open-Source-Fundus beigetragen zu haben. FSF-Anwalt Eben Moglen feiert Suns Entscheidung für die GPL als "vorteilhaft für Sun und den Rest der Welt".

Ubuntu-Gründer Mark Shuttleworth, der eng mit Sun kooperiert, sieht bei Sun einen neuen Weg des Umgangs mit intellectual property und glaubt, dass "etwas sehr Mächtiges dabei herauskommen wird". Der Open-Source-Verfechter Tim O'Reilly glaubt, dass Suns Schritt "eine großartige Chnace für Sun wie für die freie und Open-Source-Software" ist.

Anzeige