Africa Studio - stock.adobe.com
Warum ist Java eine plattformunabhängige Programmiersprache?
Die Entwickler von Sun Microsystems haben Java so konzipiert, dass es plattformübergreifend ist. Aber warum? Und wie erreicht Java seine Plattformunabhängigkeit?
Warum ist Java eine plattformunabhängige Sprache? Man kann diese Frage in zwei Teile aufteilen:
- Warum hat Sun Microsystems Java plattformunabhängig gemacht?
- Wie wird die Plattformunabhängigkeit von Java erreicht?
Die plattformübergreifenden Ursprünge von Java
Zunächst einmal: Warum ist Java plattformübergreifend? Lassen Sie uns zuerst in die Geschichte der Programmiersprache eintauchen.
Sun Microsystems, der Erfinder von Java, war in den 1990er Jahren ein beliebter Anbieter auf dem Markt für Computer-Workstations. Als Sun wuchs, übernahm es eine Reihe von Konkurrenten, darunter Trancept Systems, Praxsys Technologies und Silicon Graphics Cray Business Systems Division.
Sun selbst wurde im Jahr 2009 von Oracle übernommen. Durch die ständige Übernahme von unterschiedlichen Computerarchitekturen sah sich Sun gezwungen, eine Vielzahl von Programmiersprachen zu unterstützen, die auf verschiedenen Betriebssystemen unterschiedlich funktionierten.
Um dieser Situation zu begegnen, investierte Sun in die Entwicklung einer einzigen Programmiersprache, die auf einer Vielzahl von Betriebssystemen und Computerarchitekturen funktioniert. Dies wurde als das Green Projectbekannt. Aus dem Green Project ging die Oak-Entwicklungs-API hervor, aus der sich dann die plattformunabhängige Programmiersprache Java entwickelte.
Die Richtung, die die Java-Programmiersprache einschlug, als das Green Project über die Plattformunabhängigkeit hinauswuchs, führte zu Visionen von vernetzten TV-Set-Top-Boxen und schließlich zu plattformübergreifender Unterstützung für vernetzte Computer, die über das World Wide Web verbunden sind.
Aber unabhängig davon, wie sich das Green Project entwickelte, waren es die Probleme, die mit der Verwaltung der eigenen, disparaten, internen Architekturen verbunden waren, die Sun dazu motivierten, die plattformunabhängige Programmiersprache Java zu entwickeln.
Wie wird die Plattformunabhängigkeit von Java erreicht?
Die meisten Programmiersprachen, wie zum Beispiel C++ oder Visual Basic, werden direkt in ausführbare Dateien oder Binärdateien kompiliert, die nur auf einem bestimmten Betriebssystem oder einer bestimmten Hardwarearchitektur laufen. Das ist der Grund, warum so viele Programme, die auf einem Mac laufen, auf einem PC nicht kompatibel sind.
Java-Quellcode wird nicht direkt in nativen Maschinencode kompiliert. Stattdessen wird bei der Java-Kompilierung Bytecode erzeugt, der einen Satz von High-Level-Maschinenanweisungen enthält, die allgemein genug sind, um nicht plattformspezifisch zu sein. Um diesen Bytecode auszuführen, muss auf einem Computer eine Java Virtual Machine(JVM) installiert sein. Wenn ein Java-Programm ausgeführt wird, interpretiert die JVM den Bytecode und generiert dann nativen Maschinencode, der von der CPU verarbeitet werden kann.
Dabei ist es erwähnenswert, dass die JVM selbst keine plattformübergreifende Technologie ist. Jede Architektur und jedes Betriebssystem muss über eine speziell entwickelte und gebaute JVM verfügen, damit plattformunabhängige Java-Programme ausgeführt werden können. Da jedoch die Notwendigkeit einer JVM allgemein als vorrangig angesehen wird, bietet jedes moderne Betriebssystem eine solche. Das ist der Grund, warum der Werbeslogan von Java immer lautete: „Write once, run anywhere“.