JavaFX
Auf der diesjährigen JavaOne (im Mai), stellte Sun JavaFX Mobile und JavaFX Script vor. Das Alpha Release von JFX baut direkt auf der API der Schnittstelle Swing auf, allerdings mit einer vereinfachten Syntax. Auf lange Sicht soll JFX, Flex/Flash und Silverlight jedoch ernsthafte Konkurrenz machen. Was die neue Technologie bringt habe ich mir mal genauer angesehen…
Aus der Sicht des Enbenutzers – Die gewöhnliche Hürde: Das Plugin.
Spätestens seit Flash/Flex und Silverlight wissen wir: Wer Interaktion, geile Effekte und jede Menge anspruchsvolle RIA will, braucht ein Plugin, egal ob On- oder Offline. Für JFX benötigt man Java 6. Da ich eine ältere Version des JRE installiert habe, muss ich für mein System (Windows) 12.56 Megabytes laden. Für mich als Entwickler kein Problem, für den normalen Benutzer sicherlich eine sehr große Hürde. Nach der Installation will ich JFX in Aktion sehen und schaue mir die Code Samples auf der SUN Homepage an. Was sofort auffällt ist die Dateigröße die, trotz völlig unspektakulärer Applikationen, sofort mehrere Megabytes annimmt. Vom Klick auf den Download Link bis zum Start der eigentlichen Applikation vergehen bei mir im Durschnitt 3 Minuten. Ernüchterung macht sich breit.
Aus Sicht des Entwicklers
Wer die Schnittstelle Swing kennt, lernt die Syntax von JFX zu schätzen: Mit deutlich weniger Code als bei Swing lässt sich mehr erreichen, wie dieses einfache “Hello World” Beispiel zeigt:

Die von mir viel gepriesene “Schnittstelle” zwischen Designer und Entwickler, die ich in meinen vorherigen Artikeln zu Flash/Flex und Silverlight bereits erwähnte, sucht man bei JFX jedoch vergeblich. Ohne fundierte Grundkenntnisse in Java, lässt sich ein GUI nicht ohne weiteres anpassen oder erweitern.
Mike Mannion, Senior IT-Consultant bei der Canoo Engineering AG schrieb nicht nur einen tollen Artikel über JFX in der Oktober Ausgabe des iX Magazins, sondern hat unter http://www.musicpinboard.com/ eine ziemlich beeindruckende Demo für die Leistungsfähigkeit von JFX bereitgestellt. Mike Mannion ist der Meinung, dass man die imens großen Downloads durch schlankere APIs deutlich reduzieren könnte.
Besonders interessant für Entwickler ist die Trennung in Modell- und Sichtklasse genau wie bei Flex. Dank bind-Anweisungen würde sich die Sichtklasse beliebig austauschen lassen.
Mike Mannion schreibt zu dieser Option:
Ändern sich die Attribute im Modell, aktualisiert die Laufzeitumgebung daran gebundene Eigenschaften des GUI automatisch. So bleibt die Trennung von Modell- und Sicht-Code in JFX elegant und übersichtlich. Die Produktivität steigt, und das Programm lässt sich besser warten.
Fazit
Noch ein Plugin, noch eine neue Technologie. Na vielen Dank! Zwar bringt JFX zukünftig sicherlich noch mehr Schwung in die RIA Entwicklergemeinde, doch momentan wirkt das Ganze noch eher holprig, langsam und viel zu wuchtig. Reduzierte API, ein schlankeres Plugin und eine plattformübergreifende Lösung wären der perfekte Anfang um auf dem RIA Markt mitmischen zu können. Auf mobilen Endgeräten kann ich mir die Technologie momentan sehr gut vorstellen, weil hier die die entsprechende Software schon vorinstalliert sein könnte, im Web aber momentan undenkbar.


