Wofür brauchen wir JavaFX 2.0?

Kommentar: JavaFX 2.0 und die Popularität von Java auf dem Desktop

Aljoscha Rittner

Die Diskussion darüber, ob man Client-Anwendungen in Java populär machen muss, ist ungefähr so, also würde man darüber reden, ob ein robotergestützter Automobilbau populär gemacht werden muss.

Für den Automobilbau ist der Einsatz von Montagerobotern in vielen Bereichen genau richtig und würde niemals in Frage gestellt werden. So auch bei robusten großen Rich Client Anwendungen, die explizit für bestimmte Branchen essentiell notwendig sind. Nur weil es der Adobe-Flash verwöhnte Office User mit seinen klassischen Heimanwendungen wohl nie zu sehen bekommt, setzen trotzdem sehr große Unternehmen für ihre Problembereiche RCP Software ein. Und dann auch gerne Java.

Die Gründe für RCP sind verschieden: Hohe zu verarbeitende Datenmengen, schnelle Interaktion mit dem Anwender, komplexe Visualisierungen, fehlende Verfügbarkeit oder Bandbreite von Online-Verbindungen. So sind die Branchen auch immer wieder ähnlich: Flugzeugindustrie, Geologie und Geographie, Öl- und Gasbranche, Militär, Architektur, CAD, CAM, Genanalyse, Netzwerkmanagement usw. usf..

Auch der universitäre und wissenschaftliche Bereich greift immer wieder auf RCP zurück. Viele Universitäten und Fachhochschulen buchen gerne meine Schulungen zu modularer Softwareentwicklung im Rahmen des NetBeans Platform Certified Trainings. Die wenigsten Eigenentwicklungen an Universitäten werden per Serverarchitektur mit Browserinterface gelöst (und wenn, dann ist es auch wieder Java).

Warum nun Java im Desktop-Bereich? Es gibt faktisch die größte Framework- und API-Sammlung für das Java VM System. Ich kenne kein Sprach-Ökosystem, das mehr Bibliotheken für die oben angesprochenen Funktionsbereiche und Branchen anbietet – vieles davon robust und über viele Jahre stabilisiert. Eine Menge der Frameworks stehen als Open Source und sogar kostenlos zur Verfügung. Als Beispiele kann man JPA- und XML-Bibliotheken angeben. Visualisierungs-Frameworks wie die Visual Library, JFreeChart und JasperReport sind nur die eingängigen Lösungen. Viele Branchengrößen setzen auch auf OpenGL und Java3D. Wo manch einer nur an Spiele Engines denken mag, werden diese Bibliotheken genutzt, um umfangreiche Datenmengen performant darzustellen. Um diese Mengen zu bewältigen, kann man auf Projekte wie Apache Hadoop und MapReduce zurückgreifen.

Im IDE-Bereich gibt es keine Programmiersprache, die mehr Entwicklungsumgebungen mit führenden modernen Eigenschaften anbietet. Man kann sich komfortabel mit Eclipse, IDEA IntelliJ oder NetBeans IDE eindecken, um auf den unterschiedlichsten Plattformen und Programmiersprachen entwickeln zu können. Dabei handelt es sich auch letztendlich um RCP-Anwendungen.

Was in der öffentlichen Wahrnehmung aber immer nur ankommt, sind die Anwendungen und Spiele auf dem privaten Desktop-PC-Bereich. Da werden kommerzielle Spiele mit Java3D verglichen. Da werden bunte Smartphone Apps (Android, iPhone, Windows Mobile 7) als 100% ausreichende Anwendungen für den Normalanwender angepriesen, zugleich aber den (vermeintlich schwerfälligen) Desktop-Anwendungen gegenübergestellt. Der klassische Äpfel-Birnen-Vergleich.

Wenn Java auf dem Desktop für die großen kommerziellen Anwendungen nun keinen Push durch JavaFX benötigt, wofür brauchen wir dann die Version 2.0?

Im Prinzip sollte es egal sein, wie das UI von Java modernisiert wird. Es hätte über eine Erweiterung von Swing erfolgen können. Man hätte sich etwas komplett Neues ausdenken können – oder man nutzt, wie jetzt mit JavaFX, schon vorhandene Entwicklungen. JavaFX mit seiner Basisbibliothek ist nun mal da. Wie es sich in das Swing Toolkit einbindet, gilt es jetzt zu testen. Ob man komplett ohne AWT und Swing rein mit JavaFX 2.0 UIs entwickeln kann, wird die Praxis zeigen. Aber JavaFX 2.0 als die Rettung für Java auf dem Desktop anzusehen, verfehlt das Thema. Java-Desktop-Anwendungen müssen nicht gerettet werden, sie haben einen festen Bestandteil in der Softwarelandschaft – nur nicht so präsent auf dem privaten PC.

Das einzig bedauerliche an der JavaFX-Entwicklung ist, dass nur die Bibliothek übrig geblieben ist. Die Script-Sprache bot faszinierende einfache Möglichkeiten, schnell Anwendungen zu erstellen. Das Binding war unübertroffen einfach im Sprachstandard integriert. Mit Java ist das leider nicht so eingängig.

Trotzdem ist die JavaFX 2.0 Bibliothek mit den ganzen Features ein echter Gewinn. Ich freue mich besonders auf die Video- und Audio-Features, das WebView Pane, Hardware-unterstützte Grafik und Animation sowie die Binding-API. Und wer dabei wieder nur an bunte Anwendungen denkt, die auf dem privaten Desktop möglichst aufwändige Werbeblöcke einblenden sollen, dem sei dringlich der Blick über den Tellerrand empfohlen: zu den großen Anwendungen in den Firmen, die das alles nutzen können, um die hochkomplexe Arbeitswelt in noch komfortablere Tools zu verpacken.

Aljoscha Rittner ist Gesellschafter und Geschäftsführer der Sepix GmbH in Hann, Münden. Zu den Aufgaben der Sepix GmbH gehört die Entwicklung von CRM und Groupware Anwendungen für den Desktop Bereich. Aljoscha Rittner beschäftigt sich mit der professionellen Softwareentwicklung seit knapp 18 Jahren. Seine primäre Programmiersprache ist Java insbesondere für Desktopapplikationen basierend auf das GUI Toolkit Swing. Seit drei Jahren wird von ihm die NetBeans-Plattform als umfassendes Swing-Framework in der Softwareentwicklung eingesetzt. Im Oktober 2008 wurde Aljoscha Rittner in das NetBeans Dream Team berufen, wo er die Community als Trainer im NetBeans Platform Certified Training und Unternehmen beim Auf- und Umbau von NetBeans-Plattform-Anwendungen, sowie bei der Migration von Legacy-Anwendungen auf die NetBeans-Plattform unterstützt.
Geschrieben von
Aljoscha Rittner
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.