Mercredi 2 septembre 2009
3
02
/09
/Sep
/2009
17:35
Bonjour à tous,
En surfant aujourd'hui, suite à un article du Journal du Net sur HTML5, la question suivante m'a traversé l'esprit: HTML5 va-t-il tuer Flash-Actionscript/Silverlight?
Avant de vous laisser prendre en main le débat, posons un peu le problème.
Avec HTML5 + JS, grâce aux balises canvas, audio et video, on peut s'attendre à ce que le duo flash/actionscript et silverlight deviennent obsolescentes. Seulement, en regardant de plus près, le
doute est permis. Faisons un peu le tour des technologies actuelles.
Que trouve-t-on?
XHTML (strict et transitional)
HTML 4.0
Javascript
Flash/Actionscript
Silverlight
...
Java
C++
La liste n'est pas exhaustive mais elle me semble résumer l'essentiel du web actuel.
Pour les pages "simples", nous avons généralement le HTML et le XHTML, pour les interactions simples, nous avons l'ajout de Javascript. Pour les animations, nous avons majoritairement
Flash/Actionscript mais Silverlight et surtout les API de RIA Javascript comme Mootools, Jquery et autres Prototype présentent une alternative plus que significative et crédible à un forma
propriétaire.... Propriétaire? Relativisons tout de suite, en utilisant des technologies comme Haxe ou des outils comme Flash Develop, il devient tout à fait possible de créer des animation flash
sans passer par les produits Adobe. Nous pouvons d'ailleurs remarquer que de plus en plus d'acteurs "propriétaires" du web rendent opensource leurs technologies ou tout au moins accessible sans
passer par leurs produits. Pour les animations 3D, les acteurs, pour peu que l'on prenne la peine de les chercher, sont très (trop?) nombreux. J'évoquais flash, avec away3D, papervision3D,
sandy3D et Alternativa3D (peut-être en manque-t-il), nous avons pas moins de quatre possibilités pour créer de la 3D sous flash avec actionscript. Silverlight s'y frotte, de même que des acteurs
plus inattendus comme Dassault System qui via sa propre interface 3DVia. Venus du jeu vidéo, nous avons des exécutables écris en C++ ou Java pour interpréter la 3D et fournir des interface
interactives.
Avec Canvas, il semble que le HTML5 ne fait que rajouter un acteur de plus. Est-ce que cela va être bénéfique, neutre ou problématique? L'avenir le dira, seulement, croire, comme certains, que
HTML5 va tuer flash me semble faire fi des réalités économiques et technologiques des différents intervenants.
Prenons la 3D, si vous prenez la peine de chercher, vous trouverez plusieurs dizaines de solutions pour intégrer de la 3D au web, de flash à java en passant par 3DVia. Vous me direz que je
mélange des langages de programmation et des interfaces riches, voir des logiciels mais au final, cette variété des acteurs démontre s'il ne est que chaque
système a des avantages et des défauts conduisant chacun à -potentiellement- créer sa propre interface. Est-ce-que les développeurs ayant à mettre des vidéos de la 3D ou de la musique vont
forcement utiliser canvas, video ou audio? Rien n'est moins sûr.
Prenons une entreprise faisant appel à des développeurs actionscript pour ses swf, va-t-elle leur demander de se mettre à l'HTML5+JS pour développer les futurs animations? J'en doute, d'une part
cela risque de lui coûter cher, de plus la balise canvas manque d'un élément unique offert par le duo photoshop/flash : la possibilité, à venir, de quasiment créer les animations directement
en transférant les calques de Photoshop vers Flash (partiellement intégré sous CS4, on peut s'attendre à ce que cela soit opérationnel dans CS5). Les balises canvas, audio ou video n'ont de sens
que pour des éléments finis. Autrement dit, des video (flv, wmv ou encore mpg...) des musiques et sons (OOG, mp3)... Pour les animations, en particulier la 3D canvas risque de souffrir d'un
défaut déjà rencontré sous les différents navigateurs : les différences d'interprétation de javascript qui obligent à coder différemment pour les différents navigateurs, ou au minimum à
adapter le code. Le problème est rare sous Flash. De plus le moteur d'interprétation de Flash, dans sa dixième mouture offre des performances tout à fait appréciables.
Un exemple, venu d'un autre domaine, les ERP ou progiciels de gestion, Java et Cobol n'ont pas réussi à tuer le langage RPG ou GAP d'IBM pour les applications Mainframe, tout simplement à cause
de la lourdeur d'une telle transition technologique et de son coût. Imaginez-vous une entreprise devoir former ses anciens développeur flash pour qu'ils passent à canvas+js juste parce que la
balise existe? Pour les graphistes, dans les petites structures, qui créent des animation via photoshop puis la timeline de Flash, pensez-vous qu'ils vont de mettre au javascript pour faire
plaisir au W3C. Actionscript et javascript reposent tous deux sur ECMA script, la transition est donc envisageable mais de la possibilité à la réalisation, il y a souvent une marge, voir un
gouffre. Alors, non, canvas ne va pas tuer flash. Quant à Silverlight, je doute fort que Microsoft jette un bébé, qui lui a demandé par mal de temps et d'effort (sans compter l'intérêt
stratégique) avec l'eau du bain.
Mais vous, qu'en pensez-vous?