© ChoChe/Shutterstock.com, © S&S Media/Bianca Röder
Eine Programmiersprache zelebriert ihr Jubiläum

25 Jahre Java


Java wird 25, ein Vierteljahrhundert Java. Ein guter Grund, die heute tief in allen IT-Systemen verwurzelte Programmiersprache zu feiern und einen Blick auf ihre vergangene, gegenwärtige und zukünftige Entwicklung zu werfen.

Es war der 23. Mai 1995, ein Dienstag, als Sun Microsystems, Inc. das erste Java-Release unter dem Namen Java Development Kit 1.0 (JDK 1.0) veröffentlichte. Die Programmiersprache Java umfasste schon damals die Softwareentwicklungsumgebung zur Erstellung von Java-Anwendungen (JDK) und eine Java Virtual Machine (JVM) zur Ausführung von Java-Programmen auf beliebigen Geräten und Betriebssystemen. Damit war der Slogan „Write once, run anywhere“ geboren. Die Java Standard Edition (Java SE) besteht bis heute aus der Kombination von JDK und JVM und wird allgemein als „Java“ bezeichnet.

Plattformunabhängigkeit und Abwärtskompatibilität

Was mit den bekannten Fähigkeiten einer objektorientierten Programmiersprache begann, wurde durch sukzessives Hinzufügen von neuen Merkmalen zu den Java APIs mit ihren Klassenbibliotheken kontinuierlich erweitert. Java läuft nach dem Ansatz einer interpretierten Sprache: Der Java Compiler erzeugt den Bytecode für die JVM, der Java Interpreter führt den kompilierten Bytecode einer Java-Anwendung aus. Durch die Plattformunabhängigkeit vom Java-Bytecode lassen sich die entsprechenden Anwendungen auf jedem unterstützten Betriebssystem ausführen, für das eine JVM existiert.

Förderlich für die Verbreitung der verteilten Programmiersprache Java waren die damalige heterogene Systemlandschaft und die aufkommende Vernetzung. Um tatsächlich portable Anwendungen zu schreiben, wurden sämtliche API-Plattformabhängigkeiten vermieden, indem 100 Prozent reine Java-Programme entwickelt wurden. Ihnen wurde durch die „Pure Java“-Programmzertifizierung durch Sun ihre Portabilität dann auch offiziell bescheinigt. Die ständige Erneuerung der Java APIs mit gleichzeitig gewährleisteter Abwärtskompatibilität ermöglichte Java die direkte Ausführung von älteren, nicht kompilierten Programmen auf einer aktuellen Java-Version. Erst unter Verwendung neuer Sprachfeatures wurde der Compiler angeworfen und existierende Programme wurden schrittweise modernisiert.

Die 25-jährige Reise in eine moderne Java-Anwendungslandschaft war geprägt von intensiven Code-Reviews mit einer gründlichen Evaluierung neuer Features für die jeweiligen Hauptversionen. Einige Meilensteine sind mir dabei in besonderer Erinnerung geblieben.

25 Jahre Java: Meilensteine

weigend_25jahrejava_01.png

1995 Java wird geboren

Nach fünf Jahren interner Entwicklungsarbeit und mehreren Namensänderungen erscheint Java in Version 1.0a2 mit dem HotJava-Browser am 23. Mai 1995 im Hause Sun Microsystems.

1997 Swing löst AWT ab

Als deutliche Modernisierung der GUI-Bibliothek von Java wird Swing zunächst gefeiert. Im weiteren Verlauf stellt sich jedoch heraus, dass es in den meisten Fällen sehr langsam ist und keine gute Optik hat. Grafische Oberflächen bleiben lange ein Schwachpunkt Javas.

weigend_25jahrejava_02.png

1998 JCP wird installiert

Java wurde von Anbeginn an von einer Vielzahl von Unternehmen mitgetragen. Um der gemeinsamen Weiterentwicklung einen ordentlichen Rahmen zu verleihen, wurde der Java Community Process gegründet.

1996 – 1999 EJB, Servlets, JSP standardisieren serverseitige Entwicklung

Ursprünglich für Kaffeemaschinen, Kühlschränke und intelligente Ringe konzipiert, entwickelt sich Java rasch zur serverseitigen Technologie. Zahlreiche proprietäre Ansätze und Workarounds für den Server werden Schritt für Schritt standardisiert.

weigend_25jahrejava_03.png

1999 HotSpot-Compiler bringt JIT/AOT Compiling

Javas größter Schwachpunkt – die mangelhafte Performance bzw. der Ressourcenhunger – erfordert die Neuentwicklung des Runtime-Compilers. Mit einem ausgeklügelten Konzept des Ahead-of-Time-Kompilierens wird eine Technologie entwickelt, die heute noch für Javas Performance zuständig ist.

1999 NetBeans wird von Sun übernommen

In Prag wird seit 1996 an der Universität an einer Java IDE namens Xelphi gearbeitet (in Anlehnung an das damals populäre Borland Delphi), die später als Firma weitergeführt und schließlich von Sun gekauft wird.

weigend_25jahrejava_04.png

1999 Java wird in den drei Editionen ausgeliefert: J2SE, J2EE und J2ME

Auf der JavaOne verkündet Sun Microsystems eine Art „Neustart“ Javas, der von der ansonsten sinnlosen „2“ im Namen ausgedrückt werden sollte. Zukünftig erscheint Java in der „Standard Edition“, der „Enterprise Edition“ und der „Mobile Edition“.

1998 – 2000 Apache wird führende Java-Technologien-Plattform: Tomcat, Struts, Coocon, Maven etc.

Die Anzahl von Java-Projekten auf Apache steigt sprunghaft. Tomcat wird zur Referenzimplementierung für Java Servlets; erstmalig darf dies eine Organisation außerhalb von Sun Microsystems übernehmen.

weigend_25jahrejava_05.png

2000 Erste Mobiltelefone (noch keine Smartphones) mit J2ME-Unterstützung erscheinen auf dem Markt

Die J2ME vereint verschiedene Mobile APIs unter ihrem Dach, ist aber mit den Profilen CDC, CLDC, MIDP, PDAP usw. unübersichtlich, und es gelingt kaum, eine sinnvolle Vereinheitlichung des Programmiermodells zu erreichen.

2001 Eclipse 1.0 erscheint

Aus der „Visual Age Workbench“ macht IBM eine Open Source IDE namens Eclipse. Das Besondere: Es verfügt über einen Plug-in-Mechanismus, über den Toolerweiterungen ergänzt werden können. Die Eclipse-Oberfläche basiert nicht auf Swing, sondern auf dem proprietären SWT (Standard Widget Toolkit), das von IBM entwickelt wurde, um mehr betriebssystemspezifische Anpassungen vornehmen zu können.

weigend_25jahrejava_06.png

2004 Eclipse 3.0 macht OSGi populär

Eclipse basiert jetzt vollständig auf der Java-Modularisierungstechnologie OSGi nach dem Motto „Everything is a Plug-in“. Alle Features der Java IDE sind nichts weiter als Plug-ins, und Eclipse verwandelt sich zur universellen Plug-in-Plattform, auf deren Basis u. a. auch Desktopanwendungen (Eclipse RCP) als Alternative für das schwache Java Swing gebaut werden.

2004 Spring Framework

Mit EJB 3 gerät das serverseitige Java-Komponentenmodell von Sun in die Krise. Da erscheint das Spring Framework, das die Community durch seine Leichtgewichtigkeit und seine Fähigkeit, „Plain Old Java Objects“ (POJOs) auf dem Server zu organisieren, begeistert.

2001 – 2004 Scala, JRuby, Groovy kommen

Als alternative Sprachen für die Java-Plattform erscheinen Scala, JRuby, Groovy und weitere und entfachen einen Hype für Polyglot Programming. Selbst die drei genannten populären Sprachen verbleiben aber bis heute in der Nische.

weigend_25jahrejava_07.png

2004 Höhepunkt der Persistence Wars

Für den Java-Datenzugriff (Object-relational Mapping) existieren konkurrierende Ansätze, deren Vertreter sich teilweise scharfe öffentliche Auseinandersetzungen liefern. Container-managed Persistence, Bean-managed Persistence, Java Date Objects (JDO) und Hibernate stehen zueinander in Konkurrenz.

weigend_25jahrejava_08.png

2005 JPA als Friedensvertrag

Als eine Kompromissformel aus den Ansätzen von EJB (Container- und Bean-managed Persistence), JDO und Hibernate wird die Java Persistence Architecture (JPA) als Standard beschlossen; das Projekt EclipseLink wird zur Referenzimplementierung.

2006 Java soll Open Source werden

Java ist bis 2006 nicht Open Source, sondern basiert lediglich auf einem offenen und inklusiven Entwicklungsmodell, b...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang