Depuis que j’utilise Mac OS X, j’ai enfin compris pourquoi certains détestent tant flash : le lecteur n’est pas vraiment optimisé pour cet environnement.
Depuis ses débuts, Flash a toujours eu ses détracteurs. Au départ, certains trouvaient que c’était une techno jeune qui ne permettait pas grand chose. Par la suite, on a vu l’apparition de « faux » développeurs : des débutants ou des graphistes qui ont profité de l’accessibilité d’actionscript pour s’y mettre. Mais voilà, ils avaient plus tendance à coder avec leurs pieds qu’avec leurs mains (et je mentirais si j’disais ne jamais en avoir fait partie). Cependant, avec AS3 ce côté langage accessible aux « faux » développeurs est en train de disparaitre, il me semble…
Enfin, il y a toujours eu des personnes associant uniquement flash aux sites full flash et à la publicité. Puis certains se sont rappelé qu’il avait la gestion des médias (vidéos, images et sons), d’autres se sont souvenus des jeux, et ainsi de suite…
Pourquoi Apple ne veut pas de flash sur ses plateformes
Et c’est sur ce point qu’entre en jeu notre Cher Steeve Jobs. Celui-ci avait au départ officiellement expliqué que flash ne pouvait pas être lisible sur Iphone pour « raison technique ». On aurait donc pu espérer le voir sur Ipad… mais ce n’est toujours pas le cas.
Officieusement, Apple ne veut pas de flash sur sa plateforme mobile pour des raisons valables : la non optimisation du lecteur, le fait que flash bouffe de la batterie (quand même), mais aussi et surtout parce qu’avec flash on peut créer des jeux ! Et donc, si le PDG d’Apple ne protège pas l’écosystème de l’Appstore des « mauvais » développeurs flash, il risque de perdre beaucoup d’argent. Il a donc tout intérêt à ce que l’Appstore soit la seule et unique porte d’entrée des nouvelles applications sur les terminaux Apple.
Officiellement et plus récemment, « Apple croit fortement que tous les standards concernant le web doivent être ouverts », d’où l’adoption de HTML 5, css et javascript. Et comme flash est le premier facteur de plantage des mac, pour des raisons de techniques (de nouveau), de stabilité, de performance et d’autonomie, le plugin ne sera toujours pas intégré sur ses plateformes mobiles.
Bref, on l’aura compris : il n’est pas question d’installer le plugin pour les versions ultra mobile de la firme à la pomme. Et il n’est pas non plus question pour Apple de prendre en compte flash 10.1, une version apparemment revue et corrigée en fonction des critiques.
Apple n’en veut donc pas sur sa plateforme et cela peut se comprendre. Mais là ou l’explication devient bancale, c’est lorsqu’on apprend que Jobs prône le format H.264 pour le HTML 5 (HTML 5 n’est pas un format vidéo contrairement à ce que pensent beaucoup d’internautes, mais il a une balise video). Le H.264 est un format fermé, qui, soit dit en passant, peut être lu par flash. Et à chaque fois qu’on utilise ce format, on donne des royalties à Apple. Et oui ! Le H.264 est basé sur un certain nombre de brevets logiciels, appartenant à diverses sociétés, dont Apple. Toutes ont décidé de s’unir pour en faire un « patent tool » confié à la MPEG LA (organisme qui gère les droits sur ces brevets logiciels). Les sociétés propriétaires du H.264 peuvent ainsi demander des royalties à ceux qui l’utilisent (à l’exception des membres du comité, bien entendu).
C’est sûrement à ces fins commerciales qu’Apple souhaite l’adoption rapide du HTML 5.
Autre information, le H.264 est le seul codec qui peut être accéléré par le hardware pour Apple.
Steeve Jobs nous apprend aussi que le flash n’est pas adapté au format mobile et aux écrans tactile. Les raisons ? Le flash ne gèrerait que les actions de la souris (survol). Mais la nouvelle version de flash apporte une meilleure prise en charge du tactile. De plus, Adobe CS5 aurait pu permettre de compiler directement au format Iphone.
Aparté : il est possible de faire du flash sans Adobe flash cs et donc de générer un swf. Pour y parvenir, il existe des logiciels gratuits ou payants (bien moins cher que flash cs) : Swish, MTASC, Haxe, Eclipse…
Pourquoi interdire l’utilisation de logiciels tiers pour créer du contenu Iphone ou Ipad alors ?
Avec son article 3.3.1, Apple a récemment changé les conditions d’utilisation destinées aux développeurs. Ceux-ci doivent impérativement écrire leurs applications, dès l’origine, en C, C++, Objective C ou en javascript.
Il sera donc impossible de créer des contenus Iphone ou Ipad depuis flash CS5, iSpectrum, MonoTouch, Titanium ou Unity. Une raison tout à fait légitime puisque cela permettrait d’avoir des applications optimisées et « mieux » codées.
3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).
Mais il pourrait bien y avoir une autre raison… commerciale bien sûr !!! Avec flash CS5 on peut créer du contenu multiplateforme et apparemment ce n’est pas du goût d’Apple. On pourrait aussi se dire que ce n’est pas que pour fermer la porte aux développeur flash mais aussi pour empêcher les développeurs sous Cocoa ou autre d’aller voir ailleurs…
Quand Microsoft s’en mêle…
Microsoft, quant à lui, ne veut pas non plus du plugin d’Adobe sous Windows mobile 7. En revanche, il aimerait pousser sa techno Silverlight. En cas d’échec, pas de souci : il pourra toujours toucher des royalties avec le H.264 puisqu’il est lui aussi détenteur du brevet (et ne s’en cache pas).
Ce qu’on ne vous a pas dit sur le HTML 5
A force de lire les commentaires sur certains sites, je tenais juste à rappeler que, HTML 5 n’est pas un plugin, ni un format vidéo. HTML 5 est la « suite » de HTML, qui est, pour rappel, un langage de description de page et un conteneur. Le langage a évolué et embarque à présent des API, de nouvelles balises dont la fameuse balise <video> ou encore <canvas> (permettant la création d’éléments graphiques) et de nouveaux attributs.
Successeur de html 4.01, HTML 5 n’est toutefois pas encore finalisé. A l’heure actuelle il n’est pas prudent de l’utiliser car tous les navigateurs ne l’interprètent pas correctement (suivez-mon regard…)
La manière dont se profile l’avenir de la vidéo avec le HTML5 (si on ne garde pas qu’un seul codec) prend des airs de régression. En effet, si on se projette plusieurs années en arrière, on se rappellera de notre manière de regarder les vidéos en ligne : Quick time player, windows media player, real one player… pas très pratique tout ca.
Actuellement, si je ne dis pas de bêtise en ce qui concerne le HTML 5 on a cette « fragmentation ». Il y a plusieurs codecs pour la lecture des vidéos : le H.264, Ogg Vorbis, Theora (on2 vp3), on2 vp8 et sûrement d’autres.
Faire des animations avec HTML 5, ce sera toujours moins « bien » qu’avec du flash ou d’autres outils spécialisés. Mais ne réduisons pas le HTML 5 à la vidéo et aux animations.
En tant que Webdesigner, tout ce qui peut permettre une meilleur adoption d’HTML 5 ne peut être qu’encouragé.
Mais en tant qu’internaute qui peut bloquer facilement les pubs (car, en flash), je me dis que je serai dans la m#ù*% quand il faudra bloquer les pubs en HTML 5.
Flash c’est lourd quand même, mais ca peut servir
Flash est à la base prévu pour créer des animations vectorielles. Mais il a, avec le temps, été « amélioré » pour être utilisé à d’autres fins. Il y a quelques années on voyait en « AJAX » la solution miracle, le flash Killer… Mais, les animations en javascript ne sont pas aussi fluide et complexe que celle en flash. La récupération des données en restant sur la même page a les mêmes désavantages que le flash en termes de référencement et de navigation (possibilité comme pour flash d’utiliser swf adress pour palier cela).
Pour l’heure les animations en 2D et 3D ne valent pas celles de flash mais ce n’est certainement qu’une question de temps.
D’un côté, certaines personnes (le grand public) réduisent l’utilisation de flash à la vidéo, les jeux et les pubs alors qu’on peut s’en servir pour des applications exécutables (ne nécessitant pas de plugin), des animations, des BD en ligne, applications multimédia, des module web interagissant avec une base de données.
D’un autre coté le flash player n’est pas optimisé et son développement est assez lent. De plus, il à tendance à faire planter le navigateur quand on a plusieurs onglets contenant du flash (le mélange firefox/safari + flash est pas mal). Adobe améliore les choses avec son système de mise en pause des applications flash contenues dans un onglet masqué. Par ailleurs, il s’associe avec différents producteurs de hardware pour optimiser le flash player pour ces hardware. En termes de référencement, il ne faut pas utiliser flash pour du contenu purement textuel. En termes de mobilité, pour l’instant, le flash player n’est clairement pas adapté aux appareils mobiles. Mais n’est-ce qu’une question de temps ?
Flash est la plaie de beaucoup d’internautes mais on oublie souvent qu’avant, on avait droit aux gifs animés et que flash a quand même fait changer les choses. Oui oui on a tous eu droit au site avec une animation d’intro qu’on a voulu sauter !-)
Enfin moi ce que j’en dis hein !
Pour finir je dirais que j’ai un Ipod touch et que le fait de ne pas avoir flash ne m’a pas dérangé. Maintenant, sous Android, avec un HTC Desire, j’ai flash mais je ne vais pas sur les sites en flash car inadapté.
Cette histoire de flash ou pas flash sur le mobile est je pense la partie visible de l’iceberg. Le véritable enjeu est économique et de ce côté, Apple n’est pas très clair et Adobe ne veut surement pas être mis de coté non plus.
De toute manière je pense qu’on va encore bouffer du flash pendant au moins 5 ans si ce n’est plus… mais Adobe devrait réagir s’il veut rester un acteur important du net.