ein Blick auf Vergangenheit, Gegenwart und Zukunft
In den letzten drei Jahrzehnten hat sich die Technologie in rasantem Tempo weiterentwickelt, wobei Innovationen jeden Aspekt der Entwicklung von Anwendungen ständig neu definieren. In einer so schnelllebigen und dynamischen Landschaft gibt es nur wenige Technologien, die sich bewähren; vor allem im Bereich Informatik. Doch Java hat genau das getan. Während wir 30 Jahre Java und 25 Jahre Enterprise Java feiern, ist es klar, dass diese Lösungen nicht nur überlebt haben, sondern sich weiterentwickelt und ihren dauerhaften Wert für Software-Ingenieure weltweit bewiesen haben.
Die breite Verwendung von PCs verwandelte Technologie von einem Nischenwerkzeug in etwas, das Millionen von Menschen zugänglich ist. Diese weit verbreitete Nutzung führte zu Kooperation und Innovation, insbesondere durch Open-Source-Projekte, und prägte so die digitale Welt, wie wir sie heute kennen. In dieser kurzen, aber produktiven Zeit des technologischen Fortschritts kann man leicht vermuten, dass frühe Entwicklungen längst ersetzt worden sind. Dennoch sind einige Technologien, nämlich Java und Enterprise Java, nicht nur relevant, sondern auch unverzichtbar geblieben. Deren Langlebigkeit ist jedoch nicht nur eine Frage der Beständigkeit. Sie ist das Ergebnis der Lösung grundlegender Herausforderungen, denen sich Entwickler und Entwicklerinnen seit Jahrzehnten stellen.
Table of Contents
Duke wird geboren: Java
Die erste dieser Herausforderungen wurde in den frühen 1990er Jahren besonders deutlich. Damals tauchte in der Softwarebranche ein allgemeiner Schmerzpunkt auf: Ingenieure, die sich mit kommerzieller Programmierung befassten und in der Regel C/C++ verwendeten, hatten Probleme mit Zuverlässigkeit und Portabilität. Infolgedessen war die Softwareentwicklung zersplittert, und die Programme mussten häufig umfassend geändert werden, um auf verschiedenen Plattformen zu laufen. Das „Green Team“ von Sun Microsystems – unter der Leitung von James Gosling – erkannte diese Lücke und machte sich daran, eine Lösung zu entwickeln, die die praktischen Probleme der Ingenieure löst und den Softwareentwicklungsprozess plattformunabhängiger macht.
Die Antwort war Java, die 1995 als prozessorunabhängige, objektorientierte Programmiersprache für dynamische, über das Internet bereitgestellte Inhalte, auf den Markt kam. Dank ihres wichtigsten Merkmals, „Write Once, Run Anywhere“ (WORA), war sie ein sofortiger Erfolg und verbreitete sich rasant, da Entwickler ihren Code nur einmal schreiben und ihn ohne Änderungen auf mehreren Systemen einsetzen konnten.
Insbesondere bot die Technologie eine vielseitige, übertragbare, einfach zu bedienende und dennoch leistungsstarke Allzwecklösung für das neu entstandene World Wide Web, das 1989 erfunden wurde und allmählich an Bedeutung gewann. Die Popularität von Java stieg sprunghaft an, als der erste beliebte Internet-Browser, Netscape Navigator, Java-Unterstützung einbaute.
Die Verfügbarkeit, die Zugänglichkeit und die Fähigkeit von Java, relevant zu bleiben, wurden (und werden) durch den Java Community Process (JCP) gefördert, der die Entwicklung von Java unterstützen soll. Das 1998 eingerichtete JCP-Verfahren bietet einen formalen Mechanismus für Interessierte, um neue Funktionen für die Java-Plattform vorzuschlagen (Java Specification Requests, JSRs) und technische Standardspezifikationen zu entwickeln. Diese bis heute andauernde Zusammenarbeit hat dazu beigetragen, dass sich Java an die sich ändernden Benutzer- und Marktanforderungen anpassen und die Programmiersprache zu einer umfassenden Plattform ausbauen konnte.
Dank all dieser Elemente vergrößerte sich die Reichweite von Java schnell und begann, alle Aspekte der Softwareentwicklung über Webanwendungen hinaus zu durchdringen und sogar Unternehmenslösungen zu umfassen. Obwohl das Potenzial des Internets für Firmen noch weitgehend unerschlossen war und es noch keine Web-Strategien für Unternehmen gab, begannen Pionierunternehmen damit, Java zu nutzen.
Der Aufstieg eines weiteren Stars: J2EE
Als Sun Microsystems das Potenzial von Java für das Enterprise Computing erkannte und es eine Nachfrage nach einer solchen Lösung gab, führte das Unternehmen 1999 die Java 2 Platform, Enterprise Edition (J2EE) ein. Diese stützt sich weiterhin auf den WORA-Ansatz der Java-Programmiersprache, enthält aber auch Spezifikationen, die auf die Bedürfnisse von Unternehmens-Frameworks zugeschnitten sind, nämlich auf die Entwicklung von Großanwendungen und verteilten Systemen.
Gleichzeitig gewann die Anwendungsservertechnologie als wertvolle Middleware-Lösung für die Erstellung effektiver verteilter Anwendungen an Bedeutung, was die Verbreitung und Plattformunabhängigkeit von Java weiter förderte. Aufgrund der Natur von sowohl Anwendungsservern als auch Java ergänzten sich die beiden Technologien und boten den Benutzern eine gemeinsame, allgegenwärtige und plattformunabhängige Basis, auf dem Unternehmensanwendungen aufgebaut werden konnten. Diese Kombination trug zur Standardisierung der Entwicklung von Unternehmensanwendungen bei, indem sie Entwicklern Tools für Skalierbarkeit, Sicherheit und Robustheit an die Hand gab und gleichzeitig die Art und Weise, wie Unternehmen das Web wahrnehmen und mit ihm interagieren, neu definierte.
In den folgenden Jahren gab es kontinuierliche Innovationen im Bereich Java und Anwendungsserver, und die Sprache wurde um eine Vielzahl neuer APIs erweitert. Im Jahr 2006 kam es zu einer Reihe wichtiger Ereignisse, die die Zukunft der Technologien beeinflussten.
Erstens wurde J2EE nach der Einführung von Java Version 5 und 6 in Java Enterprise Edition (Java EE) umbenannt. Dann erwarb Red Hat den Open-Source-Middleware-Anbieter JBoss, was als eine Expansion der Anwendungsserver-Branche angesehen wurde, um den wachsenden Marktanforderungen gerecht zu werden. Und schließlich hat Sun mit der Freigabe der Java-Kerntechnologien unter der GNU General Public License 2.0 (GPLv2) und dem offiziellen Open-Sourcing der Technologie einen wichtigen Schritt unternommen, um Java zu einer gemeinschaftlich genutzten, von der Gemeinschaft getragenen Sprache zu machen.
Im Jahr 2008 wuchs das Interesse an Java weiter, als eine neue, beliebte Plattform veröffentlicht wurde, die Java für ihren UI-Code und die Entwicklung von Apps nutzt: Android. Im darauffolgenden Jahr förderte die erste Version des Videospiels Minecraft die Verbreitung von Java und inspirierte viele junge Entwickler dazu, die Sprache zu erlernen, um dem Spiel neue Inhalte wie Skins und Mods hinzuzufügen.
Eine Vergangenheit voller Ungewissheiten und tiefgreifender Veränderungen
Die Geschichte von Java und Enterprise Java wäre ohne eine echte Heldenreise sehr langweilig. Man kann sogar sagen, dass wir heute hier nicht feiern würden, wenn es unseren geliebten Technologien nicht gelungen wäre, nach einer Krise einen entscheidenden Sieg zu erringen. Dies geschah in den 2010er Jahren.
Trotz ihres Erfolges und ihrer breiten Akzeptanz standen Java und ihrem Pendant für Unternehmen turbulente Zeiten bevor, die viele Entwickler und Branchenführer über die Zukunft dieser Technologien im Unklaren ließen. Faktisch ging die Verbreitung von Java zurück. Auf den immer beliebter werdenden Mobiltelefonen wurde Java beispielsweise von Apple verdrängt, und obwohl Google Java als primäre Sprache für die App-Entwicklung für Android verwendete, entwickelte es auch seine eigene Laufzeit, Dalvik.
Enterprise Java sah sich mit den gleichen Herausforderungen konfrontiert. 2015, als die Beiträge zum Java EE-Projekt eingestellt wurden, erreichten eine Reihe von Übernahmen, Lizenzänderungen, Verlangsamung der Entwicklung und Beendigung des kommerziellen Supports für wichtige Produkte ihren Höhepunkt. Dies führte zu einer Stagnation und branchenweiten Spekulationen hinsichtlich der Überlebensfähigkeit, Unterstützung und Nachhaltigkeit der Plattform.
Es wurden wichtige Initiativen ins Leben gerufen, um die Langlebigkeit von Java EE zu gewährleisten. Im Jahr 2016 bildete eine Gruppe von Branchenführern die „Java EE Guardians“. Dieser Gruppe gehörten führende Branchenexperten wie James Gosling und der Java EE-Experte Reza Rahman an, deren Aufgabe es war, sich für die weitere Entwicklung von Java EE einzusetzen und deren Relevanz in der Unternehmenslandschaft sicherzustellen.
Obwohl die Arbeit dieser Organisationen erfolgreich war und dazu beitrug, dass Java und Enterprise Java diese schwierige Zeit überstanden, herrschte in der Branche immer noch Unsicherheit. Diese, zusammen mit dem gleichzeitigen Aufkommen von Microservices (anstelle von Monolithen), Cloud Computing und DevOps, bildeten einen fruchtbaren Boden für die Entwicklung und Übernahme wichtiger Alternativen, wie z. B. des Spring-Frameworks.
Java und Jakarta EE heute: Stabilität und Wachstum
Die Probleme in den 2010er Jahren machten mehr als deutlich, dass sich etwas ändern musste, wenn Java und Enterprise Java in der Tech-Welt überleben sollten. Sie mussten sich den aktuellen Herausforderungen stellen und neue, geeignetere Wege finden, um Entwickler und die breitere Tech-Community zu unterstützen.
Der erste große Schritt war die Umstellung des Freigabemodells von Java. Anstatt jahrelang auf eine Aktualisierung zu warten, wurde (und wird) alle sechs Monate eine neue Java-Version veröffentlicht. Diese bahnbrechende Änderung trug zur schrittweisen und konsequenten Weiterentwicklung der Technologie bei, die auf diese Weise relevant blieb. Mit der Einführung von Java 9 im Jahr 2017 mit seinem modularen System (Java Platform Module System, JPMS) begann die Transformation von Java in eine modernere, flexiblere Sprache.
In der Zwischenzeit wurde Java EE im Jahr 2017 als Jakarta EE an die Eclipse Foundation gespendet. Jakarta EE 8 wurde 2019 veröffentlicht und gewährleistete Abwärtskompatibilität mit Java EE 8. Diese beiden Ereignisse waren ein entscheidender Schritt zur Modernisierung von Enterprise Java und so zum Erhalt der Wettbewerbsfähigkeit.
Gleichzeitig musste Java seinen größten Nachteil in der Cloud-Native-Ära in Angriff nehmen: Leistung. Im Vergleich zu neueren Sprachen waren Java-Anwendungen oft langsam und verbrauchten viel zu viel Speicherkapazität, was sie für containerisierte Umgebungen weniger geeignet machte. Die Lösung kam in Form von GraalVM, wodurch Java-Anwendungen vorzeitig in native ausführbare Programme kompiliert werden konnten. Als Resultat wurden die Startzeiten drastisch verbessert und die Speichernutzung reduziert, und Java wurde für Cloud- und Kubernetes-Bereitstellungen nutzbar.
Darüber hinaus stützte sich Jakarta EE auf Microservices. Die MicroProfile-Initiative stellte leichtgewichtige APIs für die Cloud-basierte Entwicklung bereit. Das im Jahr 2022 veröffentlichte Jakarta EE 10 bot wertvolle Funktionen wie modulare Architektur und Microservices-first-Design.
Infolge dieser Maßnahmen konnten Java und Jakarta EE wieder eine starke Präsenz auf dem Markt erlangen. Die Nutzung von Jakarta EE nahm bemerkenswert zu: von 53% im Jahr 2023 auf 60% im Jahr 2024, laut dem 2024 Jakarta EE Developer Survey Report der Eclipse Foundation [1].
Der vor uns liegende Code: Was kommt auf Java und Enterprise Java zu?
Wie in den besten Heldengeschichten haben es unsere Protagonisten Java und Enterprise Java geschafft, sich zu verbessern und zu erholen, trotz der Herausforderungen in den 2010er Jahren. Wir sind hier, um ihr 30- und 25-jähriges Bestehen zu feiern und hoffen, noch weitere 30 Jahre feiern zu können.
Die jüngsten Entwicklungen bei den beiden Plattformen deuten auf eine positive Zukunft hin. Mehrere wichtige OpenJDK-Initiativen, wie z. B. Project Loom, tragen dazu bei, Java weiterzuentwickeln, so dass es eine robuste und moderne Sprache bleibt, die für die moderne Anwendungsentwicklung gut geeignet ist.
Die Jakarta EE Future Directions Interest Group der Eclipse Foundation soll dazu beitragen, dass die Technologie auf dem neuesten Stand bleibt, indem sie sich unter anderem mit neuen Technologien, neuen Anwendungsfällen in der Industrie sowie Integrationen beschäftigt.
Darüber hinaus wird die Open Regulatory Compliance Working Group (ebenfalls von der Eclipse Foundation) Open-Source-Teilnehmer bei der Einhaltung globaler gesetzlicher Vorschriften, wie der Cyberresilienz-Verordnung der EU, unterstützen.
Schlussfolgerungen
In unserem hochtechnisierten Zeitalter vergisst man nur allzu leicht die vielen Computertechnologien, die einst unsere Arbeit und unser Leben beherrschten, heute aber irrelevant sind. Nur diejenigen, die sich an die sich ändernden Bedürfnisse anpassen konnten, haben es geschafft, sich auf dem Markt zu behaupten. Java und Enterprise Java sind ein seltenes Beispiel für Langlebigkeit in der Branche, angetrieben durch ständige Innovation, umfangreiche technische Investitionen und starke Unterstützung durch die Gemeinschaft, wie zum Beispiel JCP.
Ihre Fähigkeit, sich weiterzuentwickeln, hat ihnen ihren Platz als grundlegende Technologien in der Anwendungsentwicklung gesichert. Mehr noch, ihr kontinuierliches Wachstum und ihre Relevanz deuten darauf hin, dass ihre Reise noch lange nicht zu Ende ist.