Quelque chose de très important est en train de se produire. Pour la première fois depuis bien longtemps, l'avenir de Flash est remis en cause par divers événements. Nous sommes à un tournant majeur dans le domaine des interfaces graphiques et les prochains mois vont être riches en enseignements.
Suite:
Pour faire synthétique, jusqu'à présent, la hiérarchie et les usages des différentes technologies de présentation semblait bien respectée. Pour construire un site ou une application web HTML, nous n'avions d'autres choix que d'utiliser des framework traditionnels, que ce soit PHP, ASP, GWT ou d'autres. Dès que nous sortions des sentiers un peu battus avec des besoins accrus en ergonomie (médias, vidéo, ..), réactivité, multi-threading, il était indispensable de passer par un client à base de machine virtuelle (ou de plugin), Flash ou Silverlight, pour ne citer que les deux plus connus.
Aujourd'hui, un tiers larron s'est glissé dans la danse. Poussé par des firmes telles que Google ou Apple, il se nomme HTML 5 et est en train de voler la vedette aux plugins. A tel point que Flash a été prié de faire ses valises du site Youtube. Google a purement et simplement décidé de s'en passer pour le remplacer par la balise <vidéo> de HTML 5. On se souvient aussi qu'Apple avait déjà largement emboîté le pas à Google en négligeant le support de Flash dans l'iPhone tout comme Android avec webkit. Mais que se passe t-il au juste avec Flash ?
Flash est une technologie propriétaire. Soutenu par Adobe, une firme spécialiste du domaine, mais sans envergure d'un point de vue stratégico-économique pour prétendre représenter le socle RIA de demain. Faute de convergence et de consensus, Microsoft a d'ailleurs du développer sa propre technologie : Silverlight. Est-ce à dire qu'en dehors de ses deux acteurs de poids, point de salut ? Jusqu'à présent, tout portait à le croire.
HTML 5 a longtemps été considéré comme une spécification de laboratoire aux destinées incertaines. Trop complexe, trop ambitieux, pas assez pragmatique aux regards de certains.
Mais cette fois, il semble que les choses prennent une tournure différente. Les premiers navigateurs commencent à supporter HTML 5. Petit à petit, la contrainte principale qui rendait les sites dépendants de Flash (flux audio et vidéos) commence à être levée. Récemment, Steve Jobs se permettait même une boutade lors de la présentation de l'iPad en aparté :
About Adobe: They are lazy, Jobs says. They have all this potential to do interesting things but they just refuse to do it. They don't do anything with the approaches that Apple is taking, like Carbon. Apple does not support Flash because it is so buggy, he says. Whenever a Mac crashes more often than not it's because of Flash. No one will be using Flash, he says. The world is moving to HTML5.
Le monde d'Apple s'oriente vers HTML 5 avec une sorte de convergence mobile et desktop. Dans un de ses derniers billets, Scoble fustige les carences de Flash et s'interroge en ces termes « Flash peut-il être sauvé ? »
Pour ma part, j'ai toujours eu une opinion très tranchée sur la chose et j'avoue que les comparaisons entre Flash et HTML m'ont toujours un peu perturbé. Page 17 de Programmation GWT 2, j'écris la chose suivante
« (.) Les technologies web traditionnelles (comprendre « HTML ») n'ont pas été conçues à la base pour développer des applications client-serveur réactives, intégrant de nombreux graphiques et gourmandes en ressources. Il y a un monde entre les possibilités offertes par les technologies reposant sur les machines virtuelles à base de plug-in et celles reposant uniquement sur le couple HTML JavaScript. Dans le premier cas tout est possible ; dans l'autre, les limitations de HTML auront tendance à rappeler très vite que les frontières du navigateur restent imperméables ».
La question fondamentale à se poser est la suivante, est-ce que HTML 5 change cette donne ?
Oui et non. Oui car HTML 5 se rapproche un peu plus de ses concurrents et apporte un nombre incalculable d'intelligence par rapport à ses prédécesseurs. Que ce soit les DBStorage pour le mode Off-line, les WebWorkers ou l'élément Canvas, toutes ces briques sont un plus indéniable d'un point de vue ergonomique et fonctionnel. Et « Non » car malgré ces améliorations, HTML 5 a encore un peu de chemin à faire pour soutenir la comparaison avec Flash. La 2D ou la 3D passent nécessairement par une API au dessus de la brique de base, le Canvas. Une sorte de boîte à outil pour les opérations primaires de dessin. On attend des choses dans ce domaine avec la spécification Canvas 2D soutenue par Google et Apple. La 3D (couverte par Flash et Silverlight) reste peu supportée même si des initiatives isolées existent (O3D de Google). Et je passe les problématiques d'accès aux ressources locales, la gestion du placement intelligent que d'autres connaissent sous le terme "Layout Management" (non pas le standard CSS tel qu'il existe aujourd'hui) et les calculs mathématiques complexes (JavaScript ne sais pas gérer 64 bits). Plus que ces manques, les principales briques du langage HTML 5 s'appuient sur du code JavaScript. C'est peut-être là que le bas blesse finalement.
JavaScript est un langage interprété, mono-thread, avec un ramasse miettes généralement limité. Contrairement au format natif de Flash ou au bytecode .NET de Microsoft (pour Silverlight), HTML 5 ne peut prétendre rivaliser avec ses rivaux sans une « vraie » réflexion de fond sur ses caractéristiques d'exécution (le « runtime »). Je l'ai toujours dis et je le répète encore, une machine virtuelle reste plus puissante et riche fonctionnellement qu'un simple interpréteur. Il manque aussi un vrai Framework unifié. .NET c'est 4000 classes spécialisées, Flash tout autant. Et HTML 5 ? Il existe autant d'implémentations que de navigateur avec des API incompatibles entre-elles.
Il faut se souvenir que la première implémentation RIA de Silverlight s'appuyait sur JavaScript en mode interprété. L'éditeur a corrigé le tir avec les version suivantes pour les mêmes raisons invoquées dans ce billet.
Bref, tout cela pour dire que je reste le premier supporter de HTML 5 et des standards associés. Cela dit, il faut être conscient que des changements structurels plus profond sont nécessaires pour que HTML 5 égale le périmètre fonctionnel de Flash et Silverlight. Le jour où nous verrons cette application écrite en HTML 5 et maintenable d'un point de vue du code, Flash sera effectivement bien mort. Mais je vous rassure (ou pas ;-)), on en est encore loin.
En attendant, nul doute qu'un framework comme GWT va prospérer encore longtemps car il réunit finalement le meilleur des deux mondes.
je remarque un gros lobbying autour d'HTML5 .. accéléré ces derniers jours par la sortie de l'iPad.
Apple et Google poussent de plus en plus fort l'HTML5 et pas de concert. Il suffit de voir Google Voice sur iPhone ;-) et c'est une très bonne nouvelle pour tout le monde!
Néanmoins il est utopique de croire qu'HTML5 en l'état actuel des choses peut remplacer Flash (et Flex surtout) dans tous les domaines dés aujourd'hui .. un gros travail de maturité est nécessaire .. et GWT y jouera un rôle important!
Le plugin flash a le mérite d'avoir pu faire avancer les choses et ne pas se prendre la tête avec du code javascript pourri pour gérer les différences entre les différents browsers (version HTML, javacript, CSS) ... lamentablement caché dans des framework par des centaines de lignes de codes pénalisant les perfs avant même d'avoir commencé à coder l'appli elle même ...
C'est bien beau de cracher dans la soupe, mais le temps que le W3C sorte une spec HTML qui spécifie clairement les normes qui permettent de faire tous ce qu'on peut faire avec flash aujourd'hui et que tous ces messieurs (google, apple, microsoft, mozilla, etc) sortent des browsers qui respectent ces normes effectivement, il va se passer un sacré moment!
Juste un exemple pour illustrer vers quoi on va:
http://www.presence-pc.com/actualite/html5-youtube-37980/
Je vous conseille de méditer sur cet excellent billet:
http://richardleggett.co.uk/blog/index.php/2010/02/01/the-world-is-moving-to-html5
Alors messieurs, allons y, supprimons de but en blanc le plugin flash et vous comprendrez plus tard ce qu'il vous a apporté!
sauvé une technologie qui a révolutionné le web!!!!!!
je fais partie d'une équipe de développeurs qui ne son pas de cette havi
ben c'est aux développeurs de choisir, et la mort de flsh se n'est pas pour demain