Plattformunabhängigkeit

Plattformunabhängigkeit ist die Eigenschaft eines Programms, mit unterschiedlichen Hard- und Software-Konstellationen kompatibel zu sein, z.B. unterschiedliche Betriebssysteme wie Windows, Unix oder Mac OS oder Rechnerarchitekturen wie Macintosh oder PC.

Dabei lässt sich der Grad der Plattformunabhängigkeit an der Quellcode -Portabilität messen, d.h. wie groß der Aufwand ist, ein Programm auf anderen Plattformen lauffähig zu machen. Ist dazu kein Aufwand nötig, so ist eine hundertprozentige Plattformunabhängigkeit gegeben.

Digitale Lerninhalte plattformunabhängig zu gestalten, dient folglich dem Zweck, sie jedem Nutzer unabhängig von verwendeter Hardware, verwendetem Betriebssystem und zusätzlicher Software zugänglich zu machen. Bei HTML basierten Lehrtexten kann dieses Ziel durch den Verzicht auf eine layoutorientierte Auszeichnung erreicht werden. Sollen dynamische Anwendungen erstellt werden, bieten sich browserbasierte Skriptsprachen wie JavaScript auf Seite des Benutzers oder Perl und PHP auf Seiten des Servers an. Bei nicht-browserbasierten Anwendungen können weit verbreitete Sprachen wie C oder Java verwendet werden, da diese von einem plattformunabhängigen Compiler bzw. Interpreter abhängen.

HTML

HTML, Grundlage der Textgestaltung im Internet, ist eine klassische Auszeichnungssprache : Text soll, unabhängig der verwendeten Plattform, strukturiert dargestellt werden können. Das einzige, was dazu an Software benötigt wird, ist ein Browser. Dieses Prinzip ermöglicht es, Dateien mit anderen zu teilen, unabhängig davon, ob mit UNIX, Windows, Mac OS etc. gearbeitet wird. Verwendet man dabei zusätzliche Layout unterstützende Auszeichnungssprachen wie Cascading Stylesheets (CSS), so kann der Grad der Plattformunabhängigkeit sinken, da einige CSS-Attribute von manchen Browsern anders, bzw. gar nicht interpretiert werden. Die neuesten Browsergenerationen reduzieren diese Inkompatibilitäten jedoch erheblich. So können sämtliche Auszeichnungen in externe CSS ausgelagert und der Quellcode der HTML-Datei möglichst kurz und übersichtlich gehalten werden. Diese externen CSS lassen sich in beliebig viele weiteren HTML-Dateien einbinden, wodurch sich der Aufwand z.B. zum Ändern der Schriftart, -farbe oder -größe der Gesamtpräsenz auf eine einzige Änderung in der externen CSS-Datei reduziert.

Mehr zu HTML finden sie im Bereich  Medientechnik.

Browserbasierte Skriptsprachen

Browserbasierte Skriptsprachen wie JavaScript, die auf Seiten des Nutzers direkt vom Browser ausgeführt werden, unterscheiden sich von sonstigen Programmiersprachen insbesondere dadurch, dass man nach dem Erstellen des Programmcodes keine Kompilierung vornehmen muss. Dies bedeutet, dass man keine spezielle Software zum Programmieren und Kompilieren benötigt. Die entsprechenden Skriptprogramme laufen deshalb jedoch auch nur in bestimmten Umgebungen, Skriptprogramme für Webseiten z.B. nur innerhalb des Browsers. Der Browser verfügt dazu über einen Runtime- Interpreter : Beim Aufruf des Skripts werden die programmierten Befehle während der Laufzeit umgesetzt. Dieser Runtime-Interpreter kann allerdings in den Voreinstellungen des Browsers auch deaktiviert sein oder von Benutzern nachträglich deaktiviert werden.

Mit serverseitigen Skriptsprachen wie PHP oder Perl kann ebenfalls ohne spezielle Software programmiert werden. Wir führen diese Sprachen ebenfalls unter „browserbasiert“, da der Nutzer einen Browser benötigt. Ausgeführt werden die Skripte jedoch auf dem Server von einem entsprechenden Interpreter. Vorteile dieser Sprachen sind, dass sich mit ihnen in Verbindung mit einer Datenbanksoftware wie MySQL eine Datenverarbeitung auf dem Server realisieren lässt und der ihnen zu Grunde liegende Quellcode von Anwendern nicht einsehbar ist.

Browserunabhängige Programmiersprachen

Für Anwendungen, die unabhängig von anderer Software wie z.B. einem Browser verwendet werden sollen, werden überwiegend die Programmiersprachen C (eher für Systemprogrammierung), C++ oder Java eingesetzt.

Die Plattformunabhängigkeit in Java wird durch das Zusammenspiel zweier Programme gelöst: dem Compiler, der den Quelltext (die Java-Dateien) in einen so genannten Bytecode (die .class-Dateien) übersetzt, und dem Interpreter, der Java Virtual Machine (JVM). Die JVM ist ein Programm, welches auf der Zielplattform installiert ist und den Java-Bytecode ausführt. Die JVM ist somit das einzige Element von Java, das von der Rechnerplattform abhängig ist. Die Plattformunabhängigkeit resultiert daraus, dass Sun Microsystems (www.sun.com) für nahezu alle Umgebungen eine JVM anbietet.

Beim Programmieren mit C++ wird ebenfalls ein Compiler (inklusive Linker) benötigt, der den Quellcode (die .cpp-Datei) in eine für den Rechner interpretierbare Objektdatei (.obj-Datei) und anschließend in eine ausführbare, plattformunabhängige Datei umwandelt (.exe-Datei). Für Programmierer ist für sämtliche Plattformen ein Compiler erhältlich.

Plattformunabhängige Anwendungen

Es gibt verschiedene Methoden, eine Anwendung plattformunabhängig zu gestalten. Zum einen kann der Quellcode durch eingebaute Anweisungen, die es erlauben, Unterschiede der Betriebssysteme auszugleichen, frei übertragbar gemacht werden. Derartige Programme liegen meist in vorgefertigten Versionen für verschiedene Plattformen vor. Zum anderen können Programme in Paketen vorliegen, die, basierend auf der Quellcode-Portabilität, mehrere lauffähige Versionen ein- und desselben Programms enthalten ("Fat Binaries"). Das Betriebssystem startet dabei automatisch die Installationsroutine der entsprechend kompatiblen Version des Programms.

Beispiele solcher Programme sind OpenOffice, Mozilla (, - Thunderbird oder -Firefox), Arachnophilia, ActiveSlide oder Gimp, außerdem die oben erwähnten Compiler und Interpreter wie die JVM.

Letzte Änderung: 28.07.2015