3.4 Lingo vs. Java: ein Vergleich

Aufgrund ihrer unterschiedlichen Produktphilosophie sind das Autorentool Diector und die Hochsprache Java nur schwer zu vergleichen. Director ist ein Autorentool, dass die Erstellung von Animationen,die Montage von Bildschirmelementen mit ihre Programmierung unter einer Oberfläche vereint und somit auch Nicht-Programmierern ermöglicht, eigene Programme zu erstellen. Java hingegen ist selbst mit einer integrierten Entwicklungsoberfläche eine Sprache, die sich dem Laien zunächst schwer erschließt. Das Erstellen der grafischen Komponenten ist von der Programmierung völlig entkoppelt, was meist zu einer strengen Aufgabenteilung im Produktionsablauf führt.

Beide Konzepte haben jedoch ein Ziel gemeinsam: sie ermöglichen beide das Erstellen von Programmen auf unterschiedlichen Plattformen mit nur geringen oder gar keinen Modifikationen am Quellcode. Java erzeugt aus diesem Grund einen Bytecode, der noch keine Maschinensprache, sondern einen Zwischencode darstellt, welcher auf den unterschiedlichen Systemen von der sogenannten Java Virtual Machine interpretiert wird, einem plattformabhängigen Programm zur Ausführung von Java-Programmen. Dieses ist für fast alle gängigen Systeme verfügbar, neben Windows und MacOS also auch für Linux und andere Mitglieder der UNIX-Familie.

Director-Filme sind ebenfalls plattformunabhängig und werden von einem vom Programmierer angepassten Programm, Projektor genannt, auf den Plattformen Windows und MacOS ausgeführt. Im Gegensatz zum Java-Code enthält ein Film auch Medien-Elemente wie Bilder und Ton, die Java aus externen Dateien einlesen muss.

Sowohl Java-, als auch Director-Programme können in einem Internetbrowser-Fenster laufen. Die Anwendung wird dabei in eine HTML-Seite eingebettet. Ein Java-Programm das innerhalb eines Browsers oder einer anderen Anwendung läuft, wird Applet genannt. Dazu muss das Programm jedoch einer definierten Schnittstelle genügen, die unter anderem die Initialisierung, das Starten und Pausieren des Applets sowie das abschließende Freigeben des Speichers vereinheitlicht. Director-Anwendungen hingegen müssen im sogenannten Shockwave-Format abgespeichert werden, um Internettauglich zu sein. Wie bei Java fallen jedoch einige Funktionen weg, vor allem, um die Sicherheit des Anwenders zu gewährleisten. So ist das Schreiben auf die Festplatte des Benutzers nur mit Einschränkungen möglich. Während die meisten Browser Java von Haus aus unterstützen, benötigt Shockwave ein zusätzliches Plug-In. Diese Interneterweiterung muss von der Macromedia-Website heruntergeladen werden und ist ziemlich umfangreich. Aus diesem Grund sind Shockwave-Anwendungen im Internet ausgesprochen selten.

Die große Stärke von Java ist seine Flexibilität. Es sind für fast alle denkbaren Anwendungsmöglichkeiten schon vorgefertigte Klassen verfügbar, die meist selbst in Java geschrieben wurden und teilweise sogar als offener Quellcode verfügbar sind. Die Flexibilität hat jedoch den Nachteil, dass ein Java-Programm in der Regel von Null an geschrieben werden muss. Gerade bei Spielen dauert das Erstellen einer Engine oft mehrere Monate. Dagegen kann Director meist mit schnellen Ergebnissen aufwarten, da Programme auf einem vorgegebenen Programmmodell aufsetzten. Zu diesem gehört zum Beispiel die Verwaltung von Bildern und Tönen und das einfache Ereignismodell, das speziell definierte Skripte auf bestimmte Benutzereingaben hin automatisch ausführt. Die Director-Engine ist auf Multimediaanwendungen spezialisiert und optimiert. Viele Aufgaben, die über diesen Bereich hinausgehen, sind oft nur mit relativ hohem Aufwand zu realisieren, manche können mit dem Director-eigenen Sprachschatz überhaupt nicht zu gelöst werden. Soll in so einem Fall trotzdem nicht auf Director verzichtet werden, müssen aufwändig in C++ geschriebene oder teuer eingekaufte Erweiterungen, sogenannte Xtras, eingesetzt werden. Nachteilig wirkt sich außerdem der überproportional starke Anstieg des Programmieraufwands von Director-Projekten mit dem Umfang der Aufgabenstellung aus. Die folgende Grafik versucht dies stark vereinfacht darzustellen.

Allgemein liegen die Stärken von Java in seiner Netzwerkfähigkeit. Eine Client-Server-Anwendung ist mit ein Paar Dutzend Zeilen geschrieben. Außerdem hat Java durch Konzepte wie starke Typisierung und Arrays fester Größe bei Anwendungen, die viel von mathematischen Operationen und Speicherzugriffen Gebrauch machen, einen Geschwindigkeitsvorteil. Lingo hingegen ist ein Spezialist in Sachen Bilddarstellung und Medienverwaltung. Die Geschwindigkeit des Bildaufbaus bei komplexen Animationen ist der von reinen C- und C++-Programmen immer noch weit unterlegen, von einem reinen Java-Programm aber kaum zu erreichen.

3.3 Prinzipien der objektorientierten Programmierung 3.5 Ist Lingo eine objektorientierte Programmiersprache?