La recursivité, c’est utile !

Dans un article récent, j’ai choqué pas mal de monde en disant que la récursivité est un concept assez peu utilisé. Je me focalisais sur mon expérience personnelle récente. Il est vrai que ces derniers mois, je n’ai pas eu besoin d’utiliser de fonctions récursives, sans doute car les projets sur lesquels j’ai travaillé ne s’y prêtaient pas.

A vrai dire, la question m’a un peu hanté alors j’ai décidé de faire des recherches et j’ai finalement retrouvé un vieux site où j’avais du utiliser la récursivité pour arriver à mes fins.

Il s’agit d’un problème tout bête sur lequel vous êtes déjà certainement tombé : j’avais un simple système de catégorisation au nombre de sous-niveaux arbitraires (donc, potentiellement infini) et je voulais afficher un sitemap tout ce qu’il y a de plus classique via des listes et sous-listes (tags ul et li).

Ma table category ressemblait à ceci :

+-----------+
| category  |
+-----------+
| id        |
| name      |
| parent_id |
+-----------+
  • id est l’identifiant unique de la catégorie
  • name est le nom de la catégorie
  • parent_id est l’id de la catégorie parente (0 si c’est une catégorie qui se trouve à la racine)

L’algorithme pour afficher mon sitemap est on ne peut plus simple. Je vous épargne volontairement les lignes de code concernant la connexion à la base de données…

http://pastie.org/650725.js

<?php

function displaySitemap($n) {
	$query = mysql_query("SELECT * FROM category WHERE parent_id = '$n' ORDER BY name");
	if (mysql_num_rows($query)) {
		echo '<ul>';
		while ($category = mysql_fetch_assoc($query)) {
			echo '<li><a href="category.php?id='.$category['id'].'">'.$category['name'].'</a>';
			displaySitemap($category['id']);
			echo '</li>';
		}
		echo '</ul>';
	}
}

displaySitemap(0);

Ce n’est absolument pas la façon la plus propre de procéder mais cela prouve que la récursivité est une notion indispensable et utile !

Mea culpa, donc.

Prenez part au challenge Cherry et remportez un Nokia E75 !

Depuis aujourd’hui et jusqu’au 2 novembre, Cherry vous offre la possibilité de remporter un splendide Nokia E75 flambant neuf avant trois ans d’abonnement gratuit à la formule illimitée à 42€ de Cherry.

Le deuxième prix est un Nokia E66 avec un an d’abonnement. Une troisième personne tirée au sort parmi tous les participants remportera également un Nokia E66 + l’abonnement d’un an.

Cherry Challenge

Pour remporter ces magnifiques cadeaux, rien de plus simple : il suffit de vous rendre sur la page http://www.becherry.be/en/challenge, de vous inscrire et de partager le plus possible votre URL personnelle. Chaque click équivaut à un point mais si vous voulez augmenter vos chances de gagner, utilisez la technique suivante : en venant de votre URL personnelle (par exemple : http://chry.be/1), cliquez sur « subcribe now » en haut à droite de la page et ensuite sur « proceed right now » au milieu à gauche de la page. Vous marquerez 10 points d’un seul coup !

Bonne chance !

Le grand retour des séries

La semaine prochaine est une semaine très attendue par tous les fans de séries TV. En effet, les nouvelles saisons de plusieurs séries importantes démarrent, dont quatre que j’apprécie particulièrement !

Dexter

Dexter (épisode 1 de la saison 4 le 27 septembre 2009 sur Showtime)

Expert en analyse de traces de sang dans la police le jour, tueur en série la nuit, Dexter Morgan n’est pas exactement un citoyen américain comme les autres. Il porte, en effet, un lourd secret. Traumatisé dans sa plus tendre enfance puis recueilli par un officier de police de Miami, il se dit incapable de ressentir la moindre émotion. Incapable… si ce n’est lorsqu’il satisfait les pulsions meurtrières que son père adoptif lui a appris à canaliser : de fait, Dexter ne tue que les autres tueurs qui sont parvenus à échapper au système judiciaire, afin de protéger les innocents. Dexter se pose donc comme un véritable justicier de l’ombre, et bien que sa soif de tuer lui pèse, il parvient à mener une existence relativement normale et à sauver les apparences auprès de ses collègues, amis et petite amie. Source : Wikipédia

Dans cette quatrième saison, Dexter devient papa. Il aura encore moins le temps pour assouvir ses pulsions…

Allez jeter un oeil au jeu « Where is Dexter » et à la bande-annonce du premier épisode.

How I Met Your Mother

How I Met Your Mother (épisode 1 de la saison 5 le 21 septembre 2009 sur CBS)

En 2030, Ted Mosby raconte à ses deux enfants comment il a rencontré leur mère. Cette narration renvoie le spectateur à notre époque où il suit les aventures de Ted et de ses amis Barney (le dragueur), Robin (la jolie journaliste), Marshall et Lily (le vieux couple).

Ted trouvera t-il le grand amour dans cette saison 5 ? Rien n’est moins sûr…

The Big Bang Theory

The Big Bang Theory (épisode 1 de la saison 3 le 21 septembre 2009 sur CBS)

Leonard Hofstadter et Sheldon Cooper vivent en colocation à Pasadena, une ville de Californie. Ce sont tous deux des physiciens surdoués, “geeks” de surcroît. C’est d’ailleurs autour de cela qu’est axée la majeure partie comique de la série. Ils partagent quasiment tout leur temps libre avec leurs deux amis Howard Wolowitz et Rajesh Koothrappali pour, par exemple, jouer à Halo ou organiser un marathon des films Superman. Leur univers routinier est perturbé lorsqu’une jolie jeune femme, Penny, s’installe dans l’appartement d’en face. Source : Wikipédia

Découverte il y a peu, je suis littéralement devenu fan de cette série bourrée d’humour et de clins d’œil scientifiques ! Le personnage de Sheldon est très drôle, sans doute le plus drôle de toutes les séries que j’ai pu voir jusqu’à maintenant.

Allez voir la bande-annonce de la saison 3 par ici.

Desperate Housewives

Desperate Housewives (épisode 1 de la saison 6 le 27 septembre 2009 sur ABC)

Je pense qu’il est inutile de vous présenter Susan, Gabrielle, Bree et Lynette, les quatre héroïnes de Desperate Housewives. Elles reviennent pour de nouvelles aventures dans cette sixième saison dont le premier épisode est très attendu car il dévoilera un suspense laissé à la fin de la saison 5 !

Je sais, c’est une série de fille mais moi, j’aime bien 🙂

Bref, une chouette semaine en prévision !

Le grand décalage entre université et réalité

Il y a peu, j’ai eu l’occasion de voir à quoi ressemblait l’examen d’informatique d’étudiants en deuxième année de la Faculté des Sciences appliquées (école polytechnique) de l’ULB.

Le langage qui a été choisi pour enseigner la programmation à ces étudiants est le C++. Quand j’étais moi même à l’université de Mons-Hainaut (désormais UMons), j’ai appris la programmation avec le langage C. Je sais que pour les étudiants de l’UMons aujourd’hui, c’est le langage Java Python qui a été choisi.

Cette disparité n’est pas encore tellement dérangeante. Le langage doit être considéré comme un outil. Au départ, ce sont les principes fondamentaux de la programmation (types, variables, conditions, boucles, fonctions, etc.) qui sont enseignés. Que ce soit en C, C++ ou Java, cela fonctionne (à peu de choses près) de la même façon. Je me rappelle d’ailleurs avoir reçu beaucoup de cours où les algorithmes étaient écrits dans ce que nous appelions un « métalangage », c’est-à-dire dans une notation indépendante de tout langage de programmation.

En deuxième année polytech, j’ai pu apercevoir que les étudiants commencent à découvrir les concepts de la programmation object (jusque là, tout va bien) mais également des trucs un peu plus folkloriques comme la recursivité et les listes chaînées.

Et c’est là que je commence à percevoir un problème.

D’une part, les listes chaînées sont pour moi un concept typiquement scolaire destiné à appliquer de façon concrète une notion faisant désormais partie du passé : les pointeurs. Je ne sais pas vous, mais moi, et c’est peut-être un aveu de faiblesse, je n’ai jamais pu maîtriser les yeux fermés cette notion de pointeurs… J’ai réussi mes examens mais quand je m’y replonge (principalement pour l’expliquer à des étudiants comme ce fut le cas ici), j’ai toujours besoin de relire attentivement un article explicatif pour m’en rappeler le fonctionnement exact. Les principaux langages utilisant les pointeurs sont le C, le C++ et le Pascal. Je ne programme plus dans ces langages. Ceci explique sans doute cela. Les langages dits « modernes » ont laissé tomber les pointeurs et l’allocation manuelle de mémoire au profit de références et de mécanismes automatiques tels que le garbage collector (comme c’est le cas pour Java, pour ne citer que lui). Le développeur ne doit (quasiment) plus se soucier de rien. Pourquoi encore enseigner les pointeurs dans ce cas ?

D’autre part, cela fait maintenant plusieurs années que je programme, développe, scripte, bidouille du code (appeler ça comme vous voulez) dans le monde réel et je ne me rappelle plus avoir eu besoin d’utiliser une fonction récursive pour résoudre un problème. De plus, je sais que les algorithmes récursifs bouffent la mémoire de façon impressionnante. Pour m’assurer ne pas être le seul dans le cas, je vous le demande : utilisez-vous souvent la récursivité dans vos algorithmes ?

Là où je veux en venir avec toutes ces interrogations, c’est que je trouve purement et simplement qu’il y a un trop grand décalage entre ce qu’on apprend à l’université et le monde du business et du travail.

Pour des polytechniciens, je sais qu’un cours d’informatique n’est pas forcément destiné à former de parfaits petits développeurs PHP mais plutôt à leur ouvrir l’esprit et à leur proposer une façon différente de penser et d’aborder un problème. Malheureusement, cet état des lieux s’applique également aux personnes qui étudient l’informatique à l’université, comme ce fut mon cas.

A la décharge des universités, il est vrai que celles-ci doivent garder leur aspect « lieu de recherche scientifique » car c’est ce qui fait leur attrait mais est-ce que cela doit se faire au dépend de l’avenir des étudiants ?

J’y vais sans doute un peu fort mais les deux questions suivantes me taraudent et j’aimerais avoir votre avis à ce propos :

  • Est-ce que les gens qui étudient l’informatique à l’université sont moins bien préparés au marché du travail que les étudiants qui font des graduats en informatique (ou d’autres formations) ?
  • Est-ce que les universités doivent changer leur fusil d’épaule ou continuer de prôner la science pour la science comme c’est le cas actuellement ?

Merci d’avance pour vos réponses !

Cherry, le nouvel opérateur mobile qui combine GSM et WiFi !

Vous devez certainement avoir entendu parler depuis plusieurs semaines de l’arrivée imminente d’un nouvel opérateur télécom, faisant des merveilles avec le WiFi et répondant au doux nom de Cherry. Le lancement officiel du produit a eu lieu aujourd’hui à 10h45, via une conférence de presse assurée par Bernard Noël de Burlin, CEO de Mondial Telecom, la société responsable de Cherry.

Cherry

Qu’est ce que Cherry ?

Comme je l’ai déjà dit, Cherry est un nouvel opérateur de téléphonie mobile s’auto-proclamant comme la quatrième opérateur belge après Proximus, Mobistar et BASE. A vrai dire, Cherry se situe plutôt dans la catégorie des opérateurs alternatifs, au même titre que Mobile Vikings. La particularité de Cherry est de disposer d’une technologie permettant de téléphoner via le réseau WiFi, ce qui permet de réduire le coûts des appels et d’obtenir une facture beaucoup plus acceptable pour votre portefeuille !

Quoi de neuf par rapport à Skype ?

Oui, c’est vrai, Skype le fait déjà, rien de nouveau… Cherry est déjà has-been le jour de sa sortie !

En fait… non.

Cherry va plus loin que Skype. En effet, il permet de combiner les réseaux GSM et WiFi de façon totalement transparente ! Imaginez que vous captiez le réseau WiFi et que vous commencez une communication. Vous vous mettez à marcher et à vous éloigner tout doucement du point d’accès WiFi. La grande prouesse technologique de Cherry réside dans le fait qu’à partir du moment où vous perdez la couverture WiFi, l’appel passe directement sur le réseau GSM classique, sans la moindre coupure ! Cerise sur le gâteau, votre communication reste au tarif WiFi, car vous l’avez initiée en WiFi ! Pas de mauvaises surprises donc !

De plus, Cherry permet de garder votre numéro de téléphone (impossible avec Skype) et de recevoir des appels en WiFi (impossible avec Skype).

Le beta-test

La raison pour laquelle vous avez certainement déjà entendu parler de Cherry est liée au fait que depuis le 1er juillet, 25 blogueurs belges, sélectionnées par nos soins, sont officiellement beta-testeurs du produit. Le but de cette action fut de recueillir le maximum de feedback de la part de personnes curieuses et au fait des technologies actuelles afin de fournir le meilleur produit possible le jour de la sortie. Ce fut très concluant !

Cherry a même eu droit à sa petite heure de gloire dans TechCrunch !

Le nouveau site Web

Le nouveau site de Cherry, disponible à l’URL www.becherry.be, est l’oeuvre de notre petite agence Web 1MD. Nous avons essayé de fournir quelque chose de frais, ergonomique et performant. Bref, quelque chose qui se situe a des années lumière des sites Web des autres opérateurs belges (du moins, les trois gros).

Selon moi, trois choses intéressantes à retenir :

  • Le calculateur totalement en JavaScript qui permet de vérifier quelle est l’offre qui vous correspond le mieux (42, 26 ou 14) ;
  • La page qui explique comment la technologie fonctionne et ses avantages, via de courtes animations ;
  • L’utilisation intensive des propriétés CSS3, notamment border-radius, box-shadow et @font-face qui permettent d’augmenter considérablement les performances du site, d’avoir un rendu optimal sur Safari 4 et Firefox 3.5 tout en restant parfaitement fonctionnel sur les autres navigateurs (principe de dégradation gracieuse).

Conclusion

On risque encore de parler beaucoup de Cherry. On est clairement à l’aube d’une révolution dans l’univers de la téléphonie. Même si Cherry ne sera peut-être pas l’opérateur qui permettra de changer les choses à l’échelle mondiale, il en est un tout cas un des précurseurs, et on ne pourra jamais lui enlever ça !

Love or Hate ?

Voilà un certain temps maintenant que je bosse dans le domaine du Web et que j’ai pu tester une quirielle d’outils en tous genres (langages de programmation, CMS, frameworks, etc.). Listés ci-dessous, vous trouverez ceux que j’ai appris à apprécier et ceux que j’ai appris à éviter !

Love

symfony

symfony est le framework PHP du moment ! Mon expérience grandissante de l’outil, couplée avec de nouvelles versions de plus en plus abouties, font que grâce à lui, j’arrive aujourd’hui à développer très rapidement des applications Web complexes. De plus, si vous voulez disposer de la puissance de symfony sans devoir installer tout le framework, vous pouvez toujours utiliser ses quelques composants disponibles depuis peu en version standalone !

Pas besoin d’en dire plus, l’essayer c’est l’adopter !

WordPress

Vous savez à quel point je déteste les CMS. WordPress est pour moi un des seuls (voire le seul) qui mérite qu’on s’y attarde… Cet outil, à la communauté gigantesque, est un très puissant moteur de blog mais aussi un très bon CMS, au sens plus général du terme.

jQuery

Après avoir débuté sur Prototype/script.aculo.us et avoir enchaîné avec MooTools, ma préférence s’est définitivement portée vers jQuery. C’est pour moi le meilleur framework JavaScript existant. La façon dont il a été pensé permet d’écrire de façon ultra concise des choses ultra complexes. De plus, il dispose d’une communauté collossale ce qui permet de trouver un plugin très bien écrit et performant pour quasiment n’importe quoi !

Mac OS X

Cela fait bientôt plus de deux ans que j’ai fait le grand switch et impossible à présent de faire machine arrière. Connu depuis longtemps pour être le meilleur ami des graphistes, Mac OS X s’avère également être le système d’exploitation parfait pour les développeurs Web, avec des logiciels aussi géniaux que TextMate, MAMP PRO, Sequel Pro, Versions, Coda, Espresso et beaucoup d’autres !

Firefox & Safari

Difficile de les départager. Mon idéal de navigateur irait vers un mélange des deux : le système d’extensions de Firefox couplé au moteur de rendu et à la rapidité de Safari. Il s’agit tout simplement des deux meilleurs navigateurs du marché. De loin !

Hate

Drupal

J’avais tweeté il y a peu l’article “Drupal is shit” et vu le succès dont il a fait part, je ne pense pas être le seul à trouver que Drupal est un tout petit peu pourri…

Pas besoin de vous répeter tout ce qui se trouve dans l’article car je suis totalement d’accord avec tous les mots qui s’y trouvent (et surtout avec les alternatives WordPress et symfony).

Mais pour résumer un peu, comme Nathan Whitworth, je trouve que Drupal est totalement bordelique, pas intuitif pour un sou et oblige le développeur à s’abaisser à un rang de bidouilleur pour faire fonctionner (fragilement) le bazar…

Cocorico ! (ben oui, c’est du belge)

Joomla!

Je le place au même niveau que tous ces outils d’un autre temps : PHP-Nuke, phpBB, osCommerce, etc. J’avoue ne pas l’avoir utilisé depuis un bout de temps mais quand j’avais eu l’occasion de le tester il y a quelques années, c’était un cauchemar total !

Tout comme Drupal, Joomla! une véritable usine à gaz complètement bordelique, totalement non respectueuse des standards du Web et de la sémantique (je n’ai jamais vu autant de tableaux imbriqués). Même si ça s’est sûrement amélioré depuis lors, ces mésaventures ont fait que j’ai vite oublié ce CMS…

.NET

Je hais au plus haut point tous les outils de développement de Microsoft, que ce soit .NET, SQL Server, Silverlight et tout le reste. J’avoue qu’ils permettent de faire des choses très sympathiques et que Visual Studio est sans doute un des meilleurs IDE existants mais le fait de travailler dans un environnement fermé, totalement propriétaire, dramatiquement non-intéropérable, destiné à un seul OS (le pire) et conçu pour rendre le développeur esclave de Microsoft me débecte !

Malheureusement, beaucoup d’entreprises ont fait le choix de ces technologies car Microsoft leur assurait un support sur la durée et sont maintenant totalement tributaires du géant de Redmond, ce qui permet à .NET (et tout ce qui gravite autour) d’avoir encore de beaux jours devant lui…

Conclusion (?)

Mes préférences vont évidemment vers les outils open source, innovants, légers et respectueux des standards du Web. J’ai essayé d’être objectif en écrivant cet article. Je pense avoir échoué. Veuillez m’en excuser…

HTML 5 compliant

Après le rafraichissement graphique que j’ai réalisé il y a quelques jours, j’ai décidé de réaliser un autre changement, certes moins visible, mais tout aussi important.

Après avoir réalisé quelques tests récemment, j’ai décidé de passer ce blog en HTML 5.

HTML 5 est la nouvelle version du langage HTML (succédant, de façon fort logique, à HTML 4). Elle est encore actuellement à l’état de draft, mais il devient de plus en plus pertinent de l’utiliser, car elle est désormais supportée par la majorité des navigateurs (à l’exception, bien évidemment, d’Internet Explorer).

Pour être totalement exact, ce blog est en XHTML 5. N’ayez pas peur, vous n’avez pas loupé XHTML 2, 3 et 4. Ces versions d’XHTML n’ont jamais existé et n’existeront jamais ! XHTML 2 a été envisagé mais abandonné récemment car il partait dans une très mauvaise direction, totalement en contradiction avec tout ce que nous avons connu jusqu’ici (le fameux sens du canard). XHTML 5 est simplement HTML 5 respectant les règles syntaxiques du langage XML (minuscules pour les noms des balises/attributs, fermeture obligatoire des balises vides comme img et br, etc.)

Pour transformer son blog XHTML 1 en HTML 5, une seule chose suffit… En effet, il suffit de remplacer votre long et compliqué DOCTYPE par ceci :

<!DOCTYPE html>

Ce n’est pas plus difficile que ça ! Ceci est rendu possible par la compatibilité ascendante du langage.

Malgré cette relative simplicité, j’ai décidé d’aller plus loin et d’utiliser les nouvelles balises introduites dans cette cinquième version de HTML : section, article, aside, header, footer, nav, etc. Ces balises ont été introduites pour amener plus de sémantique au langage et éviter de devoir refaire, encore et encore, ce genre de choses : <div id="sidebar">, <ul id="nav">, <div id="footer">, etc. (maladie connue sous le nom de divite)

Outre ces nouvelles balises structurelles, HTML 5 introduit le support natif de l’audio et de la vidéo via les balises <audio> et <video>. Ces balises sont déjà implémentées par Firefox et Safari. Cela permettra, à terme, de jouer de la musique et des vidéos sans avoir besoin d’un player en Flash ! Jeroen Wijering et Dew nous ont été d’une grande aide pendant toutes ces années mais leur remarquable travail deviendra bientôt obsolète !

Bref, tout ça pour dire que je voulais tester la technologie et que je n’ai pas trouvé meilleur terrain de jeu que ce blog. J’essaierai de faire évoluer cela au fur et à mesure des nouvelles implémentations dans les navigateurs. Désolé envers ceux qui ne peuvent pas voir ce blog correctement. Je vous invite à tout de suite télécharger et installer un des navigateurs suivants :

Il y a encore beaucoup de choses à dire sur HTML 5. Je suis loin d’avoir fait le tour de la question car le sujet est très vaste et sujet à de houleuses discussions.

Pour en savoir plus, je vous invite à aller lire ces quelques articles :

Bonne lecture et n’hésitez pas à suivre le mouvement…

Slow food

Récemment, lors de mes vacances, j’ai eu la chance de manger dans un restaurant de type Slow Food. Cette organisation a été fondée en 1986 par l’italien Carlo Petrini et a pour but de contrer le phénomène fast food très répandu partout dans le monde. Bien qu’à la base d’origine italienne, l’association est désormais présente dans une centaine de pays.

Slow Food logo

Les valeurs de Slow Food sont nombreuses :

  • S’opposer aux effets dégradants de l’industrie et de la culture du fast food qui standardisent les goûts ;
  • Promouvoir les effets bénéfiques de la consommation délibérée d’une alimentation locale et de nourriture indigène ;
  • Promouvoir une philosophie de plaisir ;
  • Encourager le tourisme attentif et respectueux de l’environnement et les initiatives de solidarité dans le domaine alimentaire ;
  • Aider les producteurs-artisans de l’agroalimentaire qui font des produits de qualité ;

Le restaurant que j’ai eu la chance de tester est La Locanda del Barone (live webcam), une très charmante auberge au pied des montagnes abruzzese. Je recommande vivement quiconque voulant découvrir cette région d’Italie à s’y rendre, d’autant plus que le tourisme y fonctionne au ralenti en ce moment à cause des tremblements de terre récents.

La Locanda del Barone

Je ne veux absolument pas faire la morale car je suis le premier à apprécier un bon hamburger accompagné de frites et de Coca-Cola (je suis même fan de Burger King sur Facebook, c’est dire). Je voulais juste montrer qu’il existe d’autres cuisines, d’autres goûts et que si nous continuons à privilégier trop souvent la malbouffe, la vraie bonne bouffe risque de disparaitre, et ce serait dommage…

Le mouvement existe en Belgique et en France et en cherchant un peu, je suis sûr que vous trouverez le resto qui fera le bonheur de vos papilles gustatives (les restaurants Slow Food sont reconnaissables grâce au logo en forme d’escargot).

Bon appétit !

New skin

Cela faisait un bail que je trainais ce vieux design réalisé à l’époque par mon ami Pierre V. (qui entre temps est devenu développeur PHP…)

Ce nouveau design (qu’on pourrait qualifier de minimaliste voire de simpliste) ressemble beaucoup plus au Vinch de 2009. Non pas que je sois devenu simplet mais j’ai toujours adoré la simplicité extrême dans les sites Web. Ne dit-on pas que la perfection est enfin atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à enlever ?

Le design n’est pas de 1MD mais d’Arnaud d’EPIgraphik qui l’avait réalisé il y a plus de six mois. J’ai seulement eu le temps de l’intégrer cette semaine !

J’ai essayé de jouer un peu avec quelques nouvelles propriétés CSS3. N’allez donc pas pleurer si le site ne fonctionne pas bien sur IE6 (de toute façon, pour être tout à fait honnête, je m’en fous comme de l’an 40 car les utilisateurs d’IE6 représente moins de 5% de mes visiteurs).

Le nouveau thème est encore en mode beta donc quelques bugs subsistent certainement. Je suis ouvert à toutes vos remarques/suggestions pour améliorer encore l’expérience magique que vous vivrez chaque fois que vous viendrez sur ce site.

A bientôt !

Flash, c’est de la merde !

Cette phrase, je pense que je dois l’entendre au moins trois fois par jour dans notre jeune société 1MD. Bien que nos derniers sites (Fear Tracker et The Prototype Experience) utilisent cette technologie à merveille, il serait vraiment idiot de penser que nous faisons partie d’un quelconque fan club d’Adobe ! En effet, Flash est une technologie propriétaire encore complètement imparfaite malgré ses 13 ans d’existence. L’IDE est une vraie plaie et le langage ActionScript doit quasiment être réappris à chaque nouvelle version (AS1, AS2, AS3). De plus, elle présente de profonds manquements au niveau de l’accessibilité et du référencement…

Dans ce cas, pourquoi utilisons nous cette technologie ?

Tout simplement car ce que nous voulons faire est totalement impossible avec n’importe quelle autre technologie existante… Toutes les technologies dites “standard” comme JavaScript, SVG, Canvas, les animations CSS, etc. permettent de splendides choses mais sont encore trop limitées pour l’impitoyable monde réel, et pour certaines pas encore implémentées sur tous les navigateurs du marché. A ce jour, si vous voulez faire de la 3D ou afficher de la vidéo, seul Flash vous le permet…

Et Silverlight ?

Oui, c’est vrai, Silverlight permet, à peu de choses près, de faire la même chose qu’avec Flash… Cependant, Silverlight possède tous les défauts de Flash (propriétaire, IDE défaillant, accessibilité, référencement, etc.) sans disposer de ses principaux avantages (taux de pénétration, ressources disponibles, etc.). A part quelques fans de Microsoft, personne ne développe avec cette technologie morte-née… A oublier au plus vite donc ! (là, je vais me faire des ennemis)

Mais que faire pour le référencement et l’accessibilité ?

Certains types de sites doivent obligatoirement être en HTML. Je pense aux blogs, aux sites d’informations et aux sites proposant, de manière générale, une quantité relativement importante de contenu textuel. Dans ce genre de sites, le contenu est roi et doit être lisible par tous et facilement indexable. Sans ça, ces sites sont inutiles, tout simplement. Impossible donc de les imaginer en Flash.

Certains autres sites, quant à eux, sont ce qu’on appelle des expériences c’est-à-dire des campagnes marketing faisant la promotion d’un produit lambda et destinées à durer quelques mois. C’est le cas des deux sites que j’ai cité en début d’article. Ici, le plus important est d’en mettre plein la vue et de créer de la viralité. Pour en mettre plein la vue, la meilleure technologie à ce jour est Flash.

J’assistais il y a quelques semaines à une conférence de Michelle Blanc où celle-ci disait que seul le développeur, le client, la mère du développeur et la mère du client pourraient voir un site réalisé en Flash. Avec tout le respect que je lui dois et toute la sympathie que j’ai pour elle, je pense que Michelle n’a pas compris qu’il existait plusieurs types de sites et que chaque type de site était adapté à une certaine technologie. Pour info, Fear Tracker et Prototype ont réalisé respectivement 600000 et 1000000 visites lors de leurs quatre premières semaines de vie. Alors, soit le développeur et le client ont de gigantesques familles, soit il y a un truc.

C’est quoi le truc ?

Premièrement, ces sites ont été repris dans de nombreux tweets et dans de nombreux walls Facebook. Le référencement naturel n’est pas la seule source de trafic ! Deuxièmement, ces sites sont malgré tout référencés ! Certes, pas de manière directe, mais quand même… Tapez “Fear Tracker” ou “Prototype Experience” dans Google et vous aurez un nombre très importants de résultats. Il s’agit de tous les blogs qui parlent des sites en question. Donc, même si c’est totalement inutile pour ce genre de sites, ils sont quand même référencés, de manière indirecte.

Pour moi, penser que le Web se résume à une seule technologie (que ce soit HTML ou Flash), c’est comme être handicapé, comme utiliser ses bras et pas ses jambes et inversement. Une des grandes forces de 1MD est de pouvoir proposer la technologie adéquate aux attentes du client par rapport au type site qu’il veut construire. HTML est de loin le meilleur pour un site à contenu majoritairement textuel, Flash pour des sites promotionnels censés avoir une durée limitée dans le temps et pourquoi pas Flex pour des interfaces d’administration et des intranets…

Je tenais vraiment à écrire cet article pour dire que nous ne sommes vraiment pas fans de Flash mais que ce dernier a quand même sa raison d’exister et qu’il est idiot de vouloir à tout prix sa mort.

Que ce soit bien clair, si une technologie standard venait à sortir demain et permettait les mêmes choses que Flash, nous l’adopterions sur le champ. Mais je crains que ce ne soit pas demain la veille que cela arrivera !