Vor ein paar Monaten hatte ich einen Post über
JavaFX und die Konkurrenz zu HTML5 geschrieben. Und dabei das Fazit gezogen, dass JavaFX gut ist um vorhandene Swing-Anwendungen zu erweitern und in Zukunft zu modernisieren, aber für Neuentwicklungen ich eher eine andere Technologie nutzen würde.
Jetzt gab es bei JAXenter den Artikel
Ruhe in Frieden JavaFX, wo ähnliches Thematisiert wird.
Die dort angesprochenen Punkte kann ich meiner Erfahrung nach voll zustimmen. Die technischen Unzulänglichkeiten und Probleme sind nicht mal das eigentliche Problem, denn die Unterstützung von Oracle scheint wirklich kaum vorhanden zu sein. Mobile-Unterstützung gibt es nur dank der
RoboVM. Der
Scene Builder ist relativ instabil und durch händische Anpassungen schnell aus dem Tritt zu bringen. Updates und neue Versionen, die das Problem beheben, waren bis Sommer jedenfalls nicht verfügbar gewesen.
Die Programme von Oracle setzen auch jetzt meistens noch auf Swing und nicht auf JavaFX. Der große Wechsel wurde zwar an vielen Stellen beschworen, aber war nie sichtbar. Swing hat auch zum Großteil sehr ausgereifte Komponenten und die Anwendungen sind über viele Jahre gewachsen... da ist ein schneller Wechsel nicht möglich und eine einfache Migration ist auch nicht machbar. Anwendungen komplett auf JavaFX umzustellen ist viel Arbeit. Ich habe gesehen, dass man gut SWT und JavaFX in einer Anwendung verwenden kann, aber wenn man es nüchtern betrachtet, wird auch nur eine JavaFX GUI irgendwie in SWT rein gezeichnet. Eine echte Integration gibt es nicht. 2 Welten die in einer Anwendung existieren.
Es gibt also weniger Swing, aber nicht mehr JavaFX. Es gibt ein paar JavaFX Verfechter, die es aber wohl auch nur gibt, weil Swing ja irgendwie abgekündigt wurde. Ansonsten wären alle wohl einfach bei Swing geblieben. Ich habe auch seit meinen Anfängen in Java ein paar Swing-Programme geschrieben und empfand den ersten Kontakt mit JavaFX als sehr ernüchternd. Netbeans + Swing funktioniert einfach sehr gut und auch das skalieren der GUI-Element funktioniert relativ gut. JavaFX kann es zwar auch, aber die Bedienung ist hier weniger selbsterklärend und das CSS ist weit von dem entfernt, was man sich erhofft hatte und aus dem Web-Bereich gewohnt ist.
Das mit der Version 2 von JavaFX kein großer Anstieg der Nutzerzahlen kam, liegt meiner Meinung auch daran, dass JavaFX einen schon sehr schlechten Ruf hatte und Jahre auf der Kippe stand.
Als dann eine brauchbare Version kam, hatten die meistens sich schon anderweitig umgesehen und etwas mit Zukunft und größerer Unterstützung gewählt. Das Problem ist damit eben, dass JavaFX dadurch nicht mehr die Unterstützung bekommt, um weiter wachsen und sich entwickeln zu können. So wird alles auf einem minimal Level betrieben. Wenige Nutzer.. wenige Entwickler.
Betrachtet man dagegen JSF was mit der Version auch nicht das Gelbe vom Ei war, aber immer offizielle Unterstützung bekam (auch von Apache) und somit man auch Vertrauen in die Zukunft hatte, das sich gerade mit den neusten Versionen auch als gerecht fertig erwiesen hat. Vielleicht würde auch JavaFX mit breiterer Unterstützung sich genau so gut entwickeln können.
Ich kann mich dem Fazit voll und ganz anschließen: Sollte Oracle nicht plötzlich viel in JavaFX investieren, sollte man lieber sich etwas mit mehr Unterstützung suchen und auf eine ungewisse Zukunft vertrauen.
Die Angst dass der Java EE Markt dadurch gefährdet wird. Node.js ist vielleicht eine größere Gefahr als PHP, aber die letzten Jahre basierte der Wachstum und die Stabilität von Java EE nicht auf Swing oder dem Desktop-Markt. Microservices, Android-Apps, Frameworks für Reactive-Entwicklung oder gleichwertige Lösungen als Alternative zu Node.js. REST-Services, Portale und kleinere Container. Auch die WebSocket und Push-Services im Tomcat. DevOps Lösungen. Alles tolle Entwicklungen im Java-Bereich.. es gab viel Bewegung und Fortschritte, aber keiner davon hing groß mit der Entwicklung von Desktop-Clients zusammen. Ich glaube der Rückgang bei den Desktop-Clients ist normal und Dank Java Web-Frameworks, HTML5 und AngularJS oder ähnlichen Frameworks, muss sich die JEE-Welt keine Sorgen machen.
Aber ich fühle mich gerade sehr in meinen Ansichten und Äußerungen von vor einem halben Jahr sehr bestätigt :-)