James Gosling wird oft als „Vater von Java“ bezeichnet. Interessanter ist jedoch die Frage hinter seiner Arbeit: Wie kann dieselbe Software auf sehr unterschiedlichen Maschinen laufen, ohne auf die für vernetzte Geräte nötige Robustheit zu verzichten?
Anfang der 1990er suchte Gosling mit einem kleinen Team bei Sun Microsystems nach einer Antwort. Oak, das spätere Java, entstand zunächst im Green-Projekt für eingebettete Systeme und nicht als Websprache. Erst das Web verschaffte ihm weltweite Sichtbarkeit.
Programmieren jenseits der Workstation
James Arthur Gosling wurde 1955 nahe Calgary in Kanada geboren. Nach dem Studium an der University of Calgary promovierte er 1983 an Carnegie Mellon. 1984 kam er zu Sun Microsystems, einem Unternehmen, das auf Unix-Workstations und Netzwerke setzte.
Sun erwartete, dass Computertechnik in Verbrauchergeräte mit sehr unterschiedlichen Prozessoren einziehen würde. Direkt für einen Prozessor kompilierte Programme mussten jedoch für andere Plattformen angepasst werden, und hardwarenahe Sprachen konnten schwer erkennbare Speicherfehler verursachen.
Vom Green-Projekt zu Oak
1991 starteten Patrick Naughton, Mike Sheridan und Gosling das Green-Projekt. Gosling erwog zunächst C++, hielt es aber für schwierig, damit die gewünschte Einfachheit, Portabilität und Robustheit zu garantieren. Er entwarf Oak.
Oak behielt eine C/C++-ähnliche Syntax, entfernte aber mehrere Komplexitätsquellen. Automatische Speicherverwaltung, keine allgemeine Zeigerarithmetik und ein klassenbasiertes Modell sollten Fehler reduzieren. Der Compiler erzeugte Bytecode statt Code für einen bestimmten Prozessor.
Eine virtuelle Maschine führte diesen Bytecode auf jeder Plattform aus. Der Compiler konnte so ein gemeinsames Programm erzeugen, während die VM Plattformdetails übernahm. Bytecode-Prüfungen und kontrollierte Laufzeitumgebungen sollten zudem heruntergeladenen Code begrenzen.
Das Web verändert die Laufbahn
1993 und 1994 verbreitete sich das Web auf sehr unterschiedlichen Computern – genau das heterogene Umfeld, für das Oak gedacht war. Wegen eines Namenskonflikts wurde Oak in Java umbenannt und 1995 zusammen mit HotJava öffentlich vorgestellt.
Applets demonstrierten, dass derselbe Bytecode auf mehreren Systemen laufen konnte. „Write once, run anywhere“ fasste das Ziel zusammen. Es bedeutete nie, dass Bibliotheken, grafische Oberflächen, VM-Versionen oder Leistung überall identisch wären.
Applets verschwanden später wegen Sicherheits-, Leistungs- und Interoperabilitätsproblemen. Java selbst fand jedoch dauerhafte Einsatzfelder in Unternehmensanwendungen, Servern, Entwicklungswerkzeugen und indirekt im Android-Ökosystem.
Eine Sprache der Kompromisse
Java erfand weder objektorientierte Programmierung noch Garbage Collection oder virtuelle Maschinen einzeln. Sein Erfolg lag in der Kombination dieser Ideen zu einem kohärenten System.
Statische Typisierung findet bestimmte Fehler vor der Ausführung. Automatische Speicherverwaltung verhindert manuelle Freigabefehler, beseitigt aber nicht jedes Ressourcenproblem. Exceptions strukturieren Fehlerbehandlung, und die Standardbibliothek bot früh gemeinsame Abstraktionen für Netzwerke, Dateien, Oberflächen und Nebenläufigkeit.
Diese Entscheidungen kosten etwas: Eine VM fügt eine Laufzeitschicht hinzu, Garbage Collection kann Pausen verursachen, und langfristige Kompatibilität erschwert radikale Vereinfachungen. JIT-Compiler und modernere Speicherbereinigung reduzierten viele dieser Nachteile.
Frühe Bytecode-Interpretation konnte langsamer sein als nativer Code. Virtuelle Maschinen entwickelten deshalb Just-in-Time-Kompilierung: Häufig ausgeführte Bereiche werden während der Laufzeit in optimierten Maschinencode übersetzt.
Eine VM kann dabei Informationen nutzen, die einem statischen Compiler fehlen: tatsächlich ausgeführte Pfade, beobachtete Typen und reale Last. Sie kann optimieren und Entscheidungen später wieder zurücknehmen.
Auch das Sicherheitsmodell entwickelte sich weiter. Applets nutzten eine Sandbox, doch Schwachstellen zeigten, dass komplexe Softwaregrenzen keine absolute Garantie bieten. Der Browser verlor schließlich seine Rolle als primäre Java-Umgebung.
Ab 2006 veröffentlichte Sun große Teile von Java als freie Software rund um OpenJDK. Damit wurde Java zunehmend zu einer Plattform, die von mehreren Unternehmen und Gemeinschaften getragen wird.
Goslings Rolle in einer Gemeinschaftsleistung
Gosling war Hauptentwickler der Sprache und einer ihrer sichtbarsten Sprecher. Spezifikation, Bibliotheken, VM und Ökosystem sind jedoch das Werk vieler Menschen. Patrick Naughton, Mike Sheridan, Bill Joy, Guy Steele und zahlreiche Sun-Teams spielten eigene Rollen.
Nach der Übernahme von Sun durch Oracle verließ Gosling 2010 das Unternehmen. Er arbeitete später unter anderem bei Google, Liquid Robotics und Amazon Web Services. Java entwickelte sich unabhängig von einer einzelnen Person weiter.
Warum James Gosling weiterhin zählt
Goslings Erbe liegt auch in einer heute vertrauten Idee: Software in einer Zwischenform verteilen und Portabilität, Optimierung und einen Teil der Sicherheit einer gemeinsamen Laufzeit überlassen.
Die JVM führt heute auch Kotlin, Scala und Clojure aus. Das zeigt, dass die Infrastruktur um Java die ursprüngliche Sprache überdauert hat und dass Werkzeuge, Spezifikationen, Bibliotheken, Kompatibilität und Gemeinschaft für die Lebensdauer einer Sprache ebenso wichtig sind wie ihre Syntax.
Chronologie
- 1955: Geburt nahe Calgary.
- 1983: Promotion an Carnegie Mellon.
- 1984: Eintritt bei Sun Microsystems.
- 1991: Green-Projekt und Entwurf von Oak.
- 1992: Demonstration des Star7-Prototyps.
- 1994: Neuausrichtung auf das Web.
- 1995: öffentliche Vorstellung von Java und HotJava.
- 1996: JDK 1.0.
- 2002: ACM Software System Award für Gosling und das Java-Team.
- 2006: Sun kündigt die freie Veröffentlichung von Java an; OpenJDK entsteht.
- 2010: Gosling verlässt Oracle.
- Heute: Java und die JVM bleiben zentrale Plattformen für langlebige Software.
Häufige Fragen
Hat James Gosling Java allein entwickelt?
Nein. Er war Hauptentwickler, aber Java entstand aus dem Green-Team und später aus der Arbeit vieler Sun-Teams und externer Mitwirkender.
Warum wurde Oak in Java umbenannt?
Der Name Oak war bereits markenrechtlich belegt. Vor der öffentlichen Vorstellung 1995 wurde daher ein neuer Name gewählt.
Sind Java und JavaScript verwandt?
Nein. Java wird in Bytecode für eine VM kompiliert; JavaScript entstand bei Netscape als Skriptsprache für Browser. Der Name JavaScript profitierte lediglich von Javas damaliger Bekanntheit.
Was bedeutet „Write once, run anywhere“?
Dass dasselbe kompilierte Programm auf jeder Plattform mit kompatibler VM laufen soll. Es ist ein Portabilitätsziel, keine Garantie identischer Details oder Leistung.
Wird Java ohne Applets noch verwendet?
Ja. Java ist weiterhin in Serverdiensten, Unternehmenssystemen, Werkzeugen und Infrastrukturen verbreitet. Die JVM führt zudem weitere Sprachen aus.
Was ist Goslings dauerhaftester Beitrag?
Sprach- und Laufzeitentscheidungen zu einem glaubwürdigen Portabilitätsmodell verbunden zu haben. Die Langlebigkeit der JVM zeigt, dass diese Architektur mindestens so wichtig ist wie die Java-Syntax.