Über Java

Previous  Next

 

 

 

Letzte Änderung 03.02.2010

Über Java

 

Java wurde im Jahr 1991 von Sun Microsystems ursprünglich unter dem Codnamen "Green" als Programmiersprache für Fernseh-Decoder entwickelt. Auf Grund der geringen Leistung und Speicherkapazität derartiger Geräte musste die Sprache sehr klein bleiben und zudem wegen der zahlreichen Decoder-Hersteller auf verschiedene Architekturen portierbar sein.

 

Die Portierbarkeit von Computerprogrammen stellt seit jeher ein großes Problem dar, denn Compiler-Sprachen wie C und C++ wandeln ein Programm in einen speziell für das jeweilige System optimierten Maschinencode um. Dieses Maschinenprogramm ist zwar sehr performant, jedoch auf keinem anderen System lauffähig. Um ein Programm auf eine andere Plattform zu portieren, musste es in der Praxis unter extrem hohem Aufwand nahezu komplett umgeschrieben werden. Aber auch klassische Interpreter-Sprachen wie Basic ließen sich nicht direkt portieren, da es früher selbst in Basic üblich war, den Hauptspeicher und Systemroutinen direkt anzusprechen. Zudem waren auf den unterschiedlichen Systemen keine einheitlichen Basic-Dialekte verfügbar. Um eine problemlose Portierung des Programmcodes zu ermöglichen, griffen die Sun Ingeneure das Konzept der Virtuellen Machine auf, das bereits in anderen Sprachen wie Pascal zum Einsatz kam. Dazu wird das eigentliche Computerprogramm beim Compilieren nicht in ein systemabhängiges Maschinenprogramm, sondern in einen speziell definierten, stark komprimierten Bytecode umgewandelt. Dieser Bytecode ist für jedes System exakt gleich und lässt sich somit problemlos von einer Plattform auf eine andere portieren. Für das Einlesen und Ausführung des Bytecodes ist dann ein Interpreter zuständig, der als Virtual Machine (VM) bezeichnet wird. Ein für dieses Konzept entwickeltes Computerprogramm ist somit auf jedem System lauffähig, für das eine VM zur Verfügung steht. Die Java VM ist mittlerweile für alle wichtigen Plattformen verfügbar, insbesondere für Windows, Linux, Mac OS-X, UNIX und sogar für sämtliche mobile Geräte wie Handys und Pocket-PCs.

 

Nachdem sich die ursprünglich als "Oak" bezeichnete und anschließend auf "Java" umbenannte Programmiersprache nicht wie ursprünglich geplant für die Unterhaltungselektronik vermarkten ließ, hatten die Sun Techniker um James Gosling 1994 die Idee, Java für das Internet zu nutzen. Sie entwickelten den vollständig in Java geschriebenen HotJava Browser, der neben HTML-Seiten auch Java Bytecode interpretieren und somit Java Applets ausführen konnte. Als Applet bezeichnet man ein Java Programm, das in einem Web-Browser ausgeführt wird.

 

Im Frühjahr 1996 gab Sun schließlich die erste Version von Java frei. Den Durchbruch schaffte Java mit der Integration in den Web-Browser Netscape. Nachdem sich mit Java 1.0 noch keine leistungsfähigen Anwendungen entwickeln ließen, kamen 1998 mit der Freigabe von Java 1.2 entscheidende Neuerungen dazu, insbesondere die Oberflächen-Bibliothek Swing, mit der sich endlich deutlich professionellere und tatsächlich Plattform-unabhängige Benutzeroberflächen programmieren ließen, eine neue 2D Grafik-API sowie die Drag&Drop Funktionalität. Ab diesem Zeitpunkt führte Sun die Bezeichnung Java 2 Standard Edition Software Development Kit Version 1.2 ein. Mit der Einführung von Java 1.5 änderte Sun die Versionsbezeichnung auf Java 5. Im November 2006 gab Sun bekannt, die komplette Java Technologie unter die Open Source Lizenz GPL 2 zu stellen. Der Source von Java ist jedoch bereits seit den Anfängen verfügbar und auch die die Community spielt seit jeher bei der Weiterentwicklungen von Java eine entscheidende Rolle, wenn auch Sun am meisten zu Java beisteuert. Die aktuelle Version Java 6 wurde im Dezember 2006 veröffentlicht und bietet u.a. eine, für XDEV 2 Anwendungen interessante, verbesserte Darstellung und Performance von Desktop-Anwendungen.

 

Java wurde von vornherein eng an die Programmiersprache C++ angelehnt, sollte jedoch auf zahlreiche Nachteile, Sicherheitsmängel und Problematiken von C und C++ verzichten, u.a. auf die systemnahe und somit in der Praxis recht kritische Zeiger-Programmierung, sowie komplexe Konstrukte wie Mehrfachvererbung. Genauso wie C++ ist Java eine objektorientierte und somit enorm leistungsfähige Programmiersprache. Die interne Speicherverwaltung wird dem Java Entwickler durch den sog. Garbage-Collector weitgehend abgenommen.