Java gehört zu den wenigen Programmiersprachen, deren Geschichte mehrere große Umbrüche der Informatik durchquert: Unterhaltungselektronik, den Aufstieg des Webs, Unternehmensanwendungen, Open Source, Smartphones und die Cloud.
Als Java 1995 öffentlich vorgestellt wurde, fasste ein berühmter Slogan sein Versprechen zusammen: „Write Once, Run Anywhere“ - einmal schreiben, überall ausführen. Java gab dieser Idee mit einer langlebigen Kombination praktische Gestalt: einer relativ zugänglichen Sprache, Bytecode, der Java Virtual Machine (JVM), automatischer Speicherverwaltung und einer gemeinsamen Bibliothek.
Dabei wurde Java ursprünglich gar nicht für das Web entwickelt. Seine Geschichte begann einige Jahre zuvor in einem Projekt über die Zukunft elektronischer Geräte.
1991: das Green Project
Anfang der 1990er-Jahre war Sun Microsystems vor allem für Unix-Workstations und vernetzte Rechner bekannt. Einige Ingenieure erwarteten jedoch, dass die nächste Welle auch intelligente Verbrauchergeräte wie interaktive Fernseher, Set-Top-Boxen und Haushaltselektronik erfassen würde.
1991 startete Sun das Green Project. Zum Team gehörte James Gosling, der eine zentrale Rolle beim Entwurf der neuen Sprache spielen sollte.
Das Problem war klar: Solche Geräte konnten sehr unterschiedliche Prozessoren und Laufzeitumgebungen verwenden. Für jede Architektur eine eigene Softwareversion zu pflegen, wäre teuer und fehleranfällig gewesen. Portabilität wurde deshalb von Anfang an zu einer Entwurfsanforderung.
Oak: Java vor Java
Gosling experimentierte zunächst mit C und C++. C++ bot leistungsfähige Abstraktionen und genaue Kontrolle über Ressourcen, doch das Team suchte eine Umgebung, die sich einfacher auf heterogener Hardware einsetzen ließ.
Gosling entwickelte Oak, benannt nach einer Eiche vor seinem Büro. Die Sprache behielt eine für C- und C++-Programmierer vertraute Syntax, verzichtete aber auf mehrere schwer beherrschbare Mechanismen. Ein Garbage Collector übernahm die Speicherfreigabe, explizite Zeigerarithmetik entfiel.
Das Ziel war also nicht nur, dieselbe Software auf anderen Geräten auszuführen, sondern komplexe Programme zugleich sicherer und vorhersehbarer zu machen.
Bytecode und JVM: Portabilität in die Plattform verlagern
Javas entscheidende Architekturentscheidung ist das Ausführungsmodell. Quellcode wird normalerweise nicht direkt für einen bestimmten Prozessor kompiliert, sondern in Java-Bytecode, der anschließend von einer Java Virtual Machine ausgeführt wird.
Besitzt eine Plattform eine kompatible JVM, kann sie grundsätzlich denselben Bytecode ausführen. Statt jede Anwendung an jede Maschine anzupassen, wird die JVM an die verschiedenen Plattformen angepasst.
Darauf beruht Write Once, Run Anywhere. Vollständige Portabilität hängt weiterhin von Bibliotheken, Systemintegration und Implementierungen ab, doch die Architektur reduziert plattformspezifische Arbeit erheblich.
Vom Green Project ins Web
Das Green Project erzielte im interaktiven Fernsehen nicht den erhofften kommerziellen Erfolg. Gleichzeitig begann der World Wide Web-Boom. Sun erkannte, dass eine für heterogene Geräte entworfene Sprache auch in einem Netzwerk sehr unterschiedlicher Computer nützlich sein konnte.
Oak musste aus markenrechtlichen Gründen umbenannt werden; die Wahl fiel auf Java. 1995 stellte Sun die Sprache öffentlich vor.
Mit HotJava entwickelte Sun außerdem einen Browser, der kleine in Webseiten eingebettete Java-Programme ausführen konnte: Applets. Animationen, Benutzeroberflächen und kleine Spiele ließen das Web plötzlich viel dynamischer erscheinen. Netscape unterstützte Java rasch und verschaffte der Sprache enorme Sichtbarkeit.
Diese Bühne sollte allerdings nur vorübergehend bestehen.
Java ist nicht JavaScript
Die ähnlichen Namen sorgen bis heute für Verwirrung, doch Java und JavaScript sind unterschiedliche Sprachen.
JavaScript wurde 1995 von Brendan Eich bei Netscape als leichtgewichtige Skriptsprache für Browser entwickelt. Seine Entwicklung behandeln wir in unserem Artikel zur Geschichte von JavaScript.
Java etablierte sich vor allem bei Anwendungen, Servern und Unternehmenssystemen. JavaScript wurde zur nativen Programmiersprache des Browsers und breitete sich später ebenfalls auf Server und zahlreiche weitere Umgebungen aus.
Java 1.0: eine Plattform, nicht nur eine Sprache
Im Januar 1996 veröffentlichte Sun das Java Development Kit 1.0. Java war bereits mehr als Syntax: Sprache, Compiler, JVM, Standardbibliothek, Entwicklungswerkzeuge, Sicherheitsmechanismen und dynamisches Laden von Klassen bildeten eine gemeinsame Plattform.
Entwickler konnten einheitliche APIs für Collections, Ein-/Ausgabe, Netzwerke, grafische Oberflächen und Nebenläufigkeit nutzen. Diese gemeinsame Basis wurde ebenso wichtig wie die Sprache selbst.
Java übernahm zudem viele Prinzipien der objektorientierten Programmierung: Klassen, Objekte, Kapselung, Vererbung und Polymorphie. Gegenüber C++ automatisierte es mehr Speicherverwaltung und vermied mehrere Low-Level-Operationen - Entscheidungen, die die langfristige Wartung großer Anwendungen erleichterten.
Java 2 und die Unternehmenswelt
Java 1.2 erschien 1998 unter der Bezeichnung Java 2 und gliederte die Plattform in mehrere Editionen: J2SE für allgemeine Anwendungen, J2EE für Unternehmenssoftware und J2ME für ressourcenbeschränkte Geräte.
J2EE spielte eine zentrale Rolle. Servlets, JavaServer Pages, Enterprise JavaBeans, Datenbankzugriff, Messaging und Application Server boten eine standardisierte Umgebung für große verteilte Systeme.
Java verbreitete sich in Banken, Versicherungen, Telekommunikation, Verwaltung und Großunternehmen. Portabilität, statische Typisierung, Garbage Collection, eine reife JVM und zahlreiche Bibliotheken passten gut zu Organisationen, die Software zehn oder zwanzig Jahre betreiben müssen.
Die JVM wird schnell
Frühe JVMs galten als langsam. Mit Just-In-Time-Compilern (JIT) änderte sich das: Sie erkennen häufig ausgeführten Code und übersetzen ihn während der Laufzeit in optimierte Maschinenbefehle.
Die JVM kann dadurch reales Programmverhalten beobachten und tatsächlich verwendete Pfade optimieren. HotSpot, von Sun übernommen und integriert, wurde zu einer Schlüsseltechnologie der Plattform.
Java entwickelte sich so von einer als zu langsam kritisierten Sprache zu einer Plattform für sehr große Serversysteme.
Warum Applets verschwanden
Während Java auf Servern florierte, verloren Applets an Bedeutung. Sie benötigten Browser-Plugins oder lokale Java-Installationen, brachten Sicherheits- und Deploymentprobleme mit sich und starteten teils langsam.
Gleichzeitig wurden HTML, CSS, JavaScript und Web-APIs leistungsfähig genug, um reichhaltige Oberflächen ohne Plugins zu bauen. Browser stellten die alten Plugin-Technologien schließlich ein.
Das Ende der Applets bedeutete nicht das Ende von Java: Die Sprache hatte längst wesentlich langlebigere Einsatzgebiete auf Servern und in Unternehmen gefunden.
Java 5: modernisieren, ohne zu brechen
2004 führte Java 5 unter anderem Generics, Annotationen, Enumerationen, Autoboxing und erweiterte for-Schleifen ein.
Generics verbesserten die Typsicherheit von Collections. Annotationen wurden für Frameworks wichtig, die Metadaten direkt an Klassen, Methoden und Felder binden.
Die Version zeigt eine Herausforderung, die Java seither begleitet: genug verändern, um modern zu bleiben, ohne die wertvolle Kompatibilität aufzugeben.
Das Ökosystem wird so wichtig wie die Sprache
Ein großer Teil der Java-Geschichte spielt sich außerhalb der Syntax ab. Apache Tomcat, Hibernate und besonders Spring veränderten die Serverentwicklung. Spring verbreitete Dependency Injection, Spring Boot vereinfachte später eigenständige Anwendungen und Webdienste.
Build-Werkzeuge wie Maven und Gradle, Testbibliotheken und IDEs wie Eclipse, IntelliJ IDEA oder NetBeans ermöglichten die Arbeit an sehr großen Codebasen. Dieses industrielle Tooling trug wesentlich zu Javas Langlebigkeit bei.
OpenJDK: eine Plattform jenseits eines einzelnen Anbieters
2006 kündigte Sun an, große Teile von Java zu öffnen. OpenJDK wurde zur Open-Source-Referenzimplementierung der Plattform.
Als Oracle Sun 2010 übernahm, begann eine neue institutionelle Phase mit Diskussionen über Lizenzen und Governance. OpenJDK gewann jedoch zunehmend an Bedeutung.
Oracle, Red Hat, IBM, Amazon, Microsoft und weitere Organisationen tragen heute zum Ökosystem bei oder vertreiben eigene Builds. Java wurde dadurch zu einer gemeinschaftlichen Infrastruktur, die weit weniger von einer einzigen kommerziellen Distribution abhängt.
Android: ein weiteres Leben für Java
Frühe Android-SDKs verwendeten Java als wichtigste Anwendungssprache. Android führte Apps allerdings nicht einfach auf einer klassischen Java-SE-JVM aus: Google entwickelte eine eigene Laufzeit, zunächst Dalvik und später ART.
Diese Besonderheit und die Verwendung von Java-APIs trugen zu einem langen Rechtsstreit zwischen Oracle und Google bei. Java blieb dennoch jahrelang die prägende Sprache der Android-Entwicklung.
Kotlin erhielt später offizielle Unterstützung und wird für viele neue Projekte bevorzugt, doch große Mengen Java-Code bleiben Teil des Android-Ökosystems.
Java 8: Lambdas und Streams
2014 brachte Java 8 eine der wichtigsten modernen Weiterentwicklungen. Lambda-Ausdrücke machten Verhalten kompakter ausdrückbar, die Stream API führte ein deklaratives Modell zum Filtern, Transformieren und Aggregieren von Daten ein.
Java übernahm damit stärker funktionale Ideen, ohne seine objektorientierten Grundlagen aufzugeben. Java 8 blieb viele Jahre eine dominierende Produktionsversion.
Die JVM wird mehrsprachig
Die JVM ist längst nicht mehr Java vorbehalten. Scala verbindet objektorientierte und funktionale Programmierung, Clojure bringt Lisp-Ideen ein, Groovy ist dynamisch und Kotlin kombiniert moderne Syntax mit enger Java-Interoperabilität.
Diese Vielfalt zeigt, dass die virtuelle Maschine selbst zu Javas dauerhaftesten Erfolgen gehört. Entwickler können Garbage Collector, JIT, Diagnosewerkzeuge und das JVM-Ökosystem nutzen, ohne direkt Java zu schreiben.
Modernes Java: regelmäßige Entwicklung und Virtual Threads
Seit 2017 folgt Java einem regelmäßigeren Veröffentlichungsrhythmus. Moderne Versionen brachten Module, var, Records, Text Blocks, Pattern Matching, Sealed Classes und Virtual Threads.
Virtual Threads aus Project Loom ermöglichen sehr viele leichtgewichtige nebenläufige Aufgaben bei einem vertrauten Programmiermodell. Sie eignen sich besonders für Dienste, die häufig auf Netzwerk, Datenbanken oder andere Ein-/Ausgabe warten.
Diese Entwicklung fasst Javas moderne Strategie gut zusammen: historische Reibung reduzieren und die JVM an neue Workloads anpassen, bestehende Anwendungen aber möglichst bewahren.
Warum Java weiterhin wichtig ist
Java bildet einen besonderen Kompromiss aus Leistung, Portabilität, Laufzeitsicherheit, Produktivität und langfristiger Stabilität. Python setzt stärker auf Kürze und schnelle Entwicklung; JavaScript dominiert historisch den Browser; C++ bietet direktere Ressourcenkontrolle. Java ist tief in Systemen verankert, die lange bestehen sollen.
Seine Langlebigkeit beruht auf hoher Kompatibilität, einer reifen JVM, ausgefeilten Garbage Collectors und JITs, einem riesigen Ökosystem, guten Diagnosewerkzeugen und einer enormen installierten Codebasis.
Kritisiert werden weiterhin Verbosität, Speicherbedarf und Startkosten. Records, Pattern Matching, neue Garbage Collectors, Frameworks wie Quarkus oder Micronaut und Technologien wie GraalVM reagieren zunehmend auf diese Anforderungen, insbesondere in Cloud- und Containerumgebungen.
Java entwickelt sich daher eher durch kontinuierliche Anpassung als durch radikale Neuerfindung.
Von Oak zur globalen Infrastruktur
Interaktives Fernsehen wurde nicht zum Durchbruch. Applets verschwanden. Sun Microsystems existiert nicht mehr als unabhängiges Unternehmen. Java blieb dennoch bestehen.
Seine Grundlagen - Portabilität, virtuelle Maschine, automatische Speicherverwaltung, gemeinsame Bibliotheken und Kompatibilität - erwiesen sich weit über den ursprünglichen Kontext hinaus als nützlich.
Java wurde von einer Sprache für elektronische Geräte zu einer globalen Ausführungsplattform, die sowohl Java selbst als auch eine breitere Familie von JVM-Sprachen und -Werkzeugen trägt.
Das Wichtigste
Java entstand 1991 im Green Project von Sun Microsystems unter dem Namen Oak. Die Architektur aus Bytecode und JVM sollte Portabilität zwischen heterogenen Geräten ermöglichen.
Das Web gab Java mit Applets seine erste große Bühne, doch der dauerhafte Erfolg entstand vor allem auf Servern und in Unternehmenssystemen. Java 2, Java 5 und Java 8 entwickelten die Plattform weiter, während Frameworks und Werkzeuge immer wichtiger wurden.
Die Öffnung von OpenJDK, die Vielfalt der JVM-Sprachen und moderne Entwicklungen wie Virtual Threads machten Java zu einer Infrastruktur, die weit über die ursprüngliche Sprache hinausgeht.
Häufig gestellte Fragen
Wer hat Java entwickelt?
Java wurde Anfang der 1990er-Jahre bei Sun Microsystems entworfen. James Gosling gilt allgemein als Hauptentwickler.
Wie hieß Java ursprünglich?
Die Sprache hieß zunächst Oak und wurde vor ihrer öffentlichen Vorstellung 1995 in Java umbenannt.
Warum ist Java portabel?
Java-Code wird normalerweise in Bytecode kompiliert, der von einer auf verschiedenen Plattformen verfügbaren JVM ausgeführt wird. Dasselbe kompilierte Programm kann dadurch in mehreren kompatiblen Umgebungen laufen.
Sind Java und JavaScript miteinander verwandt?
Nein. Trotz ihrer Namen sind es unterschiedliche Sprachen mit verschiedenen Geschichten, Entwürfen und Ausführungsmodellen.
Gibt es Java-Applets noch?
Praktisch nicht mehr. Moderne Browser entfernten die benötigten Plugins, während Webstandards ihre wichtigsten Aufgaben übernahmen.
Was ist OpenJDK?
OpenJDK ist das Open-Source-Projekt der Referenzimplementierung der Java-Plattform. Mehrere Unternehmen und Communities tragen dazu bei und vertreiben eigene Builds.
Was ist der Unterschied zwischen Java und der JVM?
Java ist eine Programmiersprache. Die JVM ist eine virtuelle Maschine, die Bytecode ausführt. Auch Kotlin, Scala oder Clojure können die JVM als Zielplattform verwenden.
Warum hat Java so lange überlebt?
Portabilität, Kompatibilität, die reife JVM, das enorme Ökosystem und die breite Verankerung in Organisationen haben eine besonders langlebige Basis geschaffen.