30 Jahre Java: Es gehört noch lange nicht zum alten Eisen
Vor dreißig Jahren vorgestellt, ist Java eine der bekanntesten und bedeutendsten Programmiersprachen. Viele der eingeführten Grundsätze sind immer noch gültig.
- Falk Sippach
Die Sprache Java wird im Mai 2025 dreißig Jahre alt. Häufig totgesagt, hat sie sich immer wieder ein Stück weit neu erfunden. Derzeit berichten auf vielen Konferenzen altgediente Vertreter der Community über ihre Erfahrungen mit Java, sogar ganze Veranstaltungen (JavaOne) werden wieder zum Leben erweckt. Meine gemeinsame Zeit mit Java reicht nicht ganz dreißig Jahre zurück. Im Jahre 1995 habe ich mich am Ende meiner Schulzeit im Informatikgrundkurs noch mit Turbo Pascal beschäftigt. Im zweiten Studienjahr kam ich 1998 in der Bauinformatikvorlesung dann mit Java in Berührung. Vermutlich war das noch die Version 1.1. Die Sprache hat mich da schon fasziniert, zu diesem Zeitpunkt konnte ich aber nicht ahnen, wie sehr Java mich in den folgenden Jahren prägen würde.
Die Geschichte von Java beginnt in den frühen 1990er-Jahren bei Sun Microsystems. James Gosling und sein Team entwickelten ein neues Projekt namens Oak mit dem Ziel, eine Programmiersprache zu schaffen, die unabhängig von Hardware und Betriebssystem funktioniert. Diese Vision sollte die aufkommende Ära der vernetzten Geräte unterstützen. 1995, als das Projekt in Java umbenannt wurde, war das Versprechen "Write once, run anywhere" (schreiben und auf jeder Plattform ausführen) die treibende Idee. Java ist nicht nur die Programmiersprache, sondern auch die sehr umfangreiche Klassenbibliothek JDK (Java Development Kit) und die Java Virtual Machine (JVM).
- Die Programmiersprache Java feiert im Mai ihren dreiĂźigsten Geburtstag. Viele der damals entworfenen Konzepte gelten noch.
- Ein Meilenstein war Version 8, bei der der funktionale Sprachstil mit Lambdas und Stream API Einzug hielt.
- Zukünftig stehen Value Objects (Project Valhalla) im Blickpunkt, mit denen sich datengetriebene Objekte ohne Objektidentität modellieren lassen.
Erstmals ins große Rampenlicht trat Java mit der Einführung von Applets, die es ermöglichten, interaktive Inhalte direkt im Webbrowser auszuführen. In einer Zeit, als das Web 1.0 noch eher statisch war, brachten Applets etwas Leben ins World Wide Web. Doch Java hatte noch mehr zu bieten: Die automatische Speicherbereinigung durch den Garbage Collector befreite Entwickelnde von der lästigen Aufgabe der Speicherverwaltung und trug so zur Stabilität bei. Multithreading und robuste Netzwerktechnologien machten Java besonders attraktiv für die Entwicklung verteilter Anwendungen. All das kam schon im Sprachumfang oder der Klassenbibliothek mit und man brauchte nicht auf externe Bibliotheken zurückzugreifen. Allein JDBC (Java Database Connectivity), das bis heute unter der Haube von Frameworks wie Hibernate arbeitet, ermöglicht seit 1997 mit der Einführung von Java 1.1 den einfachen Zugriff auf relationale Datenbanken.
Java auf dem Server
Ab den frühen 2000er-Jahren wurde Java zunehmend für serverseitige Entwicklung und Enterprise-Anwendungen genutzt, und das aus gutem Grund. Mit der Einführung von J2EE (Java 2 Platform, Enterprise Edition) etablierte sich Java als ernst zu nehmende Plattform für unternehmenskritische Software. J2EE bot standardisierte Lösungen für zentrale Herausforderungen: Transaktionen, Persistenz, Messaging, Sicherheit und Skalierbarkeit. Enterprise JavaBeans (EJBs), Servlets und JavaServer Pages (JSP) bildeten die technische Grundlage.
In der Praxis jedoch erwiesen sich viele dieser Konzepte als zu schwergewichtig und komplex. Konfigurationswust, Deployment Descriptors und enge Abhängigkeiten zu Application Servers führten dazu, dass sich Entwickler nach alternativen Ansätzen sehnten. Diese fanden sie ab etwa 2003 in Projekten wie Spring und Hibernate. Spring brachte ein leichtgewichtiges, testbares Programmiermodell mit – zunächst mit Dependency Injection, später mit einem umfassenden Ökosystem. Hibernate etablierte sich als De-facto-Standard für objektrelationales Mapping und beseitigte viele Schwächen der damaligen EJBs.
Diese "Open-Source-Revolution" im Java-Umfeld führte zu einem Paradigmenwechsel: weg von starren, schwerfälligen Application Servers, hin zu modularen Frameworks, die sich flexibel in bestehende Architekturen integrieren ließen. Unterstützt durch Architekturansätze wie Microservices und Modulithen nutzen Entwickler heute leichtgewichtige Enterprise-Frameworks wie Quarkus, Spring Boot und Micronaut. Daneben entwickelte sich auch die offizielle Plattform weiter: J2EE wurde 2006 in Java EE umbenannt, und mit jeder Version nahm der Ballast ab: CDI (Contexts and Dependency Injection), JAX-RS und vereinfachte EJBs machten die Plattform alltagstauglicher.
Dennoch verlor Java EE zunehmend an Bedeutung im Vergleich zu den genannten Frameworks. Daher folgte 2017 der nächste Umbruch: Oracle übergab die Weiterentwicklung von Java EE an die Eclipse Foundation, wo die Plattform seitdem unter dem Namen Jakarta EE weitergeführt wird – offen, herstellerunabhängig und communitygetrieben. Die technische Basis blieb erhalten, aber mit neuem Governance-Modell und klarerem Bekenntnis zu Innovation und Offenheit. Heute steht Jakarta EE für eine standardisierte Plattform für moderne Cloud-Anwendungen, während Spring und Co. als pragmatische Toolkits den Alltag vieler Entwickler bestimmen. Beide Ansätze existieren nebeneinander, oft sogar in denselben Projekten.
Videos by heise