You are here

Les RIA sont morts vive HTML5

 Il y a deux ans (2009), on m'a posé la question suivante : "Quel RIA (Rich Internet application) dois-je utiliser ?".
Ma réponse a été celle-ci :
"C'est une mauvaise question, prend ce qui t'arrange, fait du quick and dirty de toutes les façons, dès que HTML5 sort, les RIA, au sens où nous l'entendons (Flex, Silverlight etc...), sont morts."
Pourquoi cette réponse ? En 1995, un ami, administrateur au C.E.R.N, m'a posé sur mon bureau de thésard les spécifications d'un langage qui permettrait d'exécuter du code sur le poste client via une machine virtuelle embarqué dans le navigateur (Mosaic et Netscape 1 à l'époque), premier contact avec le fameux "Effet Waou" : JAVA 1.0 et ses applets.
Et c'est parti, jusqu'en 1999, j'ai développé plusieurs Applet's Java, premier véritable RIA multi-os "Write once, run everywhere...". J'ai fait des modeleurs 2D et 3D, intégré avec VRML, des applets sans représentation uniquement pour gérer les communications entre le navigateur et le serveur. J'ai participé activement à la promotion de l'approche sur "fr.comp.java.lang". Bref, cela fonctionne et même plûtot très bien.
Et puis, Microsoft en tête a posé un contrat sur les "Applet" et plus particulièrement Java et a commencé à faire son travail de sape. Morceaux choisis "C'est pas sûr", "ça plante tout le temps", "c'est lent à charger", "c'est lent à exécuter","C'est dangereux et plein de virus". Et c'est certainement ce dernier aspect qui a entamé la JVM de Sun où même les professionnels me répondaient : "regarde, j'ai une applet, si tu l'actives, elle formate le disque dur." pffffut.
Il avait raison, elle était signée avec tous les privilèges, mais, derrière cela se cache une méconnaissance de la plateforme Java, du cycle de vie d'un objet graphique Java exécuté dans une sandbox sécurisée, des threads... Bref, tout ce qui fait que l'on utilise un langage moderne où le réseau est au centre. Java, souvent mis en comparaison avec JavaScript pour les 4 premières lettres (véridique), a été considéré aussi simple que HTML l'était, erreur et donc désillusion ... Trop jeune, trop visionnaire mais les bases sont bien là. Et sa pertinence a été démontrée par la présence d'une JVM dans la majorité des terminaux mobiles ou non, aspect plus méconnu du langage.
2004, arrivé de Flex puis en Microsoft Silverlight en 2007 avec une version 1.0 pas vraiment au top et il faudra attendre la v2.0 pour voir quelque chose de crédible. Et pendant ce temps là, Sun dormait et a tenté avec JavaFX de faire quelque chose mais en vain, le mal était fait, RIA n'est et ne sera pas Java !!!
Et enfin, le 14 Septembre 2011, les prémices de ma réponse : Silverlight a du plomb dans l'aile, le billet initial. Puis, le 09 Novembre 2011, au tour de Flex sur les terminaux mobiles. Fin de ces technos et tous en direction de HTML5 avec, pour tous les éditeurs, la chasse aux plugins comme slogan. force est de reconnaitre que de remonter les "bonnes idées" vers le socle commun qu'est une norme/recommandation est une excellente chose.
Certains louent des talents de visionnaire du regretté Steve Jobs et sa volonté inaltérable de ne pas supporter Flash sur les iDevices mais c'est plûtot l'histoire normale d'une industrie, qui, en temps de crise, n'a plus les moyens de développer dans son coin des solutions spécifiques, la mise en commun d'effort est moins onéreuse.
Au final, Java est toujours là et les applets aussi sur la partie "Signature de documents" que je ne retrouve pas dans HTML5. En HTML5, <applet>, bien qu'obsolète est toujours là et <embed> pourra être utilisé comme pour les applications Flex. La place est libre pour les frameworks Javascript et les compilateurs Javascript comme Google Web Toolkit (GWT). Peut-être que le projet Microsoft Volta ressortira
Bref, je tiens à saluer Mr Jobs, qui grâce à lui, a donné raison à la norme et cela, venant d'Apple, c'est beau :-)
Mention spéciale à ceux qui m'avaient posé cette question...