vendredi 16 novembre 2012

Riche Internet Application (RIA) HTML5 vs JavaFX 2

Dernièrement je me documente un peu sur JavaFX2.
A l'epoque de sa sortie j'ai été étonné de voir l'investissement d'oracle sur JavaFX dont la version 1 avait fait un flop.
La deuxieme mouture à l'air de suciter pas mal d’intérêt, et je dois avouer que ce que j'ai vu m'a plu.
La page de démo de JavaFX :
http://www.oracle.com/technetwork/java/javafx/samples/index.html

Je vais donc garder un oeil sur le sujet, attendre quelques retour et probablement l'essayer histoire de me faire mon idée sur ce futur remplaçant de Swing, car JavaFX est bien présenté comme le remplaçant de Swing.

Avant de tester JavaFX, j'ai fais le tour du net pour voir ce qu'on en dit.

Et j'ai trouvé par hasard une entré de blog dont le titre a suscité ma curiosité:

When to use JavaFX 2 instead of HTML5 for a Rich Internet Application (RIA)?

L'auteur précise que pour lui une application internet riche est un application très centré sur le client, avec un chargement initial permettant d'offrir une interaction fluide avec l'utilisateur.
C'est pour cette raison qu'il ne considère pas les framework (orienté serveur) tel que Vaadin,JSF, Wicket ...etc comme des solutions pour des applications internet riche.
Dans ce domaine HTML5 à de l'avenir c'est inévitable et l'auteur est d'accord avec ça  par contre on est en droit de se poser la question sur JavaFX, mais le fait qu'il soit comparé à HTML5 est  plutôt flatteur pour JavaFX.

A noter que pour l'auteur, flash et silverlight sont mort, meme Adobe et Microsoft sont passé au HTML5.

voici les pour et les contres de HTML5 selon l'auteur du blog :

Les pour
 -Standard W3C
-C'est le futur, c'est indéniable !
-Aucun plugin n'est necessaire, peut etre utilisé sur tous les navigateurs (compatibles)
-Déja de nombreux composant et nombreuse fonctionnalités disponnible.
Les contres
-Développement HTML/Javascript au lieu de java => gros inconvénient pour des développeurs JAVA -Spécification pas encore finalisé (d’après la roadmap ça sera pas avant 2014!) -Les navigateur ne sont pas (encore) tous compatible -Demande un effort de développement supplémentaire pour être compatible multi-navigateurs (Même si certains framework javascript résolvent ce problème c'est un effort supplémentaire.
JAVAFX :
Les pour

-Offre une API java  => permet de tirer parti de vos compétences java et d'utiliser les librairies et fonctionnalités existantes.
-Offre la possibilité d'utiliser des Domain Specific Language (DSL) type Groovy (GroovyFX) ou Scala (ScalaFX)
-Un language optionnel de définition de "layout" (FXML) permettant de séparer la définition de l'interface du comportement => A vous de choisir codage d'interface en java ou en FXML.
-Meme environnement de developpement pour le coté serveur et le coté client (utile pour le debugging, refactoring ... etc.)
-Pas de problème de compatibilité de navigateurs
-Support de CSS comme en HTML
-HTML et Javascript peuvent etre integré dans une application JavaFX
-Swing et JavaFX peuvent être utilisé dans la meme application, donc les application swing existante peuvent évoluer vers JavaFX.
-JavaFX 2 propose une architecture unifié permettant de deployer un projet dans divers contexte (application standalone, application web ou java web start) .En attendant la possibilité de déployer sur téléphones mobiles.

Les contres

-Une JRE est nécessaire chez le client.
-L'auteur precise que JavaFX n'est pas open source, mais je pense que ca à évolué depuis.
-JavaFX n'est pour le moment autorisé sur mac qu'en version "developer preview"), ce n'est plus le cas depuis la version 2.1
-Idem pour Linux ce n'est plus le cas depuis la version 2.2
-Pas encore d'information sur JavaFX Mobile du moins je n'ai rien trouvé !
-Offre moins de composant et fonctionnalités que HTML5
-JavaFX est le futur remplacant de Swing, le developpement est différent à cause des nouveaux concept comme les animations. Mais ceci n'est pas vraiment un désavantage, cela reste plus facile d'apprendre à utiliser JavaFX pour un développeur java que d'apprendre le HTML et le javascript nécessaire pour faire quelque chose d’équivalent.

En résumé la conclusion de l'auteur c'est que HTML5 et JavaFX sont deux excellent moyen de développer une RIA.
Selon lui pour les applications web publique il parait difficile d'imposer JavaFX et l'installation de java chez tous les utilisateurs.
Mais pour les applications internes à une entreprise JavaFX a sans doute sa carte à jouer.

Dans l'ensemble, pour le moment je suis assez d'accord, d'autant qu'il souligne qu'une autre alternative pourrait venir de GWT et un éventuel support de HTML 5 qui pourrait bien mettre tout le monde d'accord :
http://www.google.com/events/io/2011/sessions/gwt-html5-a-web-developers-dream.html

GWT ou JAVAFX ?
Quoi qu'il en soit il semble que les développeurs Java attendent une solution "full JAVA", et ne souhaitent pas particulièrement acquérir des compétences pointu en HTML5 pour développer des RIA.

Aucun commentaire:

Enregistrer un commentaire