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.