JavaFX mérite-t-il son statut de remplaçant de Swing ?
Son utilisation semble peiner à se démocratiser
Comme le précise la FAQ officielle de JavaFX, cette bibliothèque remplace officiellement Swing comme bibliothèque graphique Desktop dans le monde Java. Sa première version stable (JavaFX 1.0) date du 4 décembre 2008 et avec elle marque l'arrêt des évolutions de Swing. Des corrections de bogues ponctuelles peuvent tout de même être réalisées côté Swing qui fait toujours partie des spécifications de Java SE. JavaFX 2.0 est arrivée le 10 octobre 2011 améliorant son intégration dans le monde Java et son utilisation (abandon du JavaFX Script, mise en place du FXML, etc.). Il forme la base de l'actuelle JavaFX 8. JavaFX 8 quant à elle est disponible depuis le 18 mars 2014 et fait désormais partie du JRE/JDK de Java 8.
Cependant, après presque trois ans de mise en place (et même six ans si l'on se réfère à JavaFX 2.0), JavaFX ne semble pas autant implanté que Swing lors de ses beaux jours. Rares sont les projets professionnels réalisés en JavaFX. Nous avons tenté d'expliquer les raisons poussant à ce constat :
- JavaFX comme Swing auparavant nécessite l'installation de l'applicatif sur le poste client. Dans un parc important, cette opération peut s'avérer fastidieuse surtout lors de montées en version ;
- JavaFX n'est pas intégré au sein de Java SE Embedded. Oracle laisse la communauté se charger de cette partie elle-même ;
- JavaFX comme Swing auparavant nécessite Java sur le poste client. L'introduction de javapackager permet d'empaqueter la JVM au sein de l'application et de s'abstraire ainsi des besoins d'installation de la JRE. Cependant l'applicatif embarque ainsi toute la JRE qui gonfle considérablement la taille de l'applicatif en lui-même. On peut espérer que la modularisation intégrée au sein du JDK 9 via le projet Jigsaw améliore la donne ;
- dans un écosystème où tout devient interconnecté, les applications Desktop n'ont tout simplement plus la cote. Une application Web fournit l'avantage de la portabilité (accessible partout et sur de nombreux supports mobiles) tout en simplifiant les mécanismes d'installation et de déploiement.
Toutes ces raisons permettent de fournir un début d'explication sur les débuts timides de JavaFX. À travers cette spécification, est-ce vraiment JavaFX qui est en cause ? Ou finalement, cela ne met-il pas encore plus en évidence l'hégémonie que prend le monde des applications Web sur le Desktop.
Et vous ?
Pensez-vous que JavaFX peine à s'implanter ?
Pensez-vous que le monde Desktop n'a pas d'avenir contrairement aux applications Web ?
Qu'est-ce qu'il manque à JavaFX pour réellement s'imposer ?
Partager