JavaFX - Neue Hoffnung für Java auf dem Desktop?

Seite 3: Java auf dem Desktop, Fazit

Inhaltsverzeichnis

Mit der Java-kompatiblen Skriptsprache JavaFX zur Erstellung von interaktiven Benutzeroberflächen hat Sun ein mächtiges Tool für die Werkzeugkiste der Entwickler von Desktop-Software geschaffen. Die Geschichte von Java-Anwendungen auf dem Desktop führte bislang jedoch über diverse Stolpersteine. Die erste Einsatzform waren die berüchtigten Applets. Sie liefen wenig konsistent in den verschiedenen Web-Browsern und machten sich nicht selten als Performance-Bremser negativ bemerkbar. Zudem musste man zunächst das Java Runtime Environment aus dem Internet herunterladen und installieren. Diverse Java-Versionen konnten nebeneinander auf der Festplatte existieren, was es nicht einfach machte, den Durchblick zu behalten. Faktoren wie diese bescherten Java im Browser einen schlechten Ruf, auch wenn viele der Probleme im Laufe der Zeit behoben wurden.

Eine Lösung war zum Beispiel Java Web Start, womit Entwickler Java-Anwendungen für den Desktop erstellen konnten, die sich über das Internet automatisch aktualisierten. Web Start macht Gebrauch von JNLP-Dateien (Java Network Launching Protocol), die Aufruf-Anweisungen für das Programm enthalten. Die lokal installierte Laufzeitumgebung wertet diese aus, lädt die JAR-Dateien der Applikation herunter, erstellt eine Desktop-Verknüpfung und kümmert sich um den Start des Programms.

Viele Änderungen sind in dem im vergangenen Herbst erschienenen Java 6 Update 10 (Java6U10) zusammengeflossen. Die umfangreiche Laufzeitumgebung musste sich einer Schlankheitskur unterziehen und kommt jetzt im modularen Gewand daher. Statt dem kompletten JRE reicht es für Anwender, einen kleinen Java-"Kern" zu installieren, der sich selbständig um das Nachladen zusätzlicher Komponenten kümmert.

Die Grenzen zwischen Applets und Web-Start-Anwendungen sind mit den neueren Java-Versionen fließender geworden. Erstere beherrschen jetzt auch den Umgang mit JNLP-Files, statt nur auf JAR-Dateien zu verweisen. Applets der neueren Generation laufen außerhalb des Browsers in einem eigenen Prozess, sodass sie nicht mehr dessen Geschwindigkeit bremsen. Eine winzige JVM im Browser agiert als Miniserver, während eine separate virtuelle Maschine den eigentlichen Code des Applets ausführt.

Verbesserungen auf beiden Fronten – die einfachere Erstellung von UI-Code und die bequemeren Einsatzmöglichkeiten auf dem Desktop – machen JavaFX zu einer Plattform mit viel Potential. Sun hat seine Entwicklungsumgebung Netbeans 6.5 um einen Editor ergänzt, der JavaFX-Quellcode per Drag & Drop einbindet. Auch hat der Hard- und Software-Hersteller Plug-ins entwickelt, mit denen sich Photoshop- und Illustrator-Inhalte in JavaFX-Code umsetzen lassen, indem sie eine Grafikdatei als JavaFX-Klasse exportieren. Sie machen die Integration von qualitativ hochwertigen grafischen Inhalten um vieles einfacher.

Mit den Production Tools lassen sich Illustrator-Inhalte in JavaFX exportieren

Die neue Version 1.2 erweitert JavaFX unter anderem um anpassbare UI Controls, diverse neue Layout-Klassen, Unterstützung für RSS/Atom-Feeds und ein überarbeitetes Modell für asynchrone Ablaufprozesse. Benchmarks bescheinigen dem neuen Release zudem unter bestimmten Umständen einen erheblichen Geschwindigkeitszuwachs.

Suns Open-Source-Engagement zum Trotz stehen nur der Compiler, Teile der Grafikbibliothek und diverse Tools (darunter die JavaFX-Plug-ins für Photoshop CS3 und Illustrator CS3) unter der GNU General Public License (GPL, Version 2). Die Laufzeitumgebung steht jedoch unter einer proprietären Lizenz, was die Verbreitung der Software erschweren dürfte.

Ist JavaFX ein ernsthafter Konkurrent für Adobes Flash? Nein, denn Flash hat den Desktop schon längst erobert. Suns Angebot könnte sich aber als interessante Alternative zu AIR und Silverlight entwickeln. Die Voraussetzungen stimmen. Entwickler von Rich Content haben auf jeden Fall ein mächtiges neues Tool dazubekommen.

Die ursprüngliche Version dieses Artikels erschien im Dezember 2008 auf heise open UK: (akl)