Gary Illyes ironise sur les frameworks Javascript

Mathieu Chartier Développement 0 commentaire

Frameworks Javascript (full JS ou non)

Gary Illyes, le googler bien connu, a quelque peu ironisé sur les frameworks Javascript sur Twitter. Ce dernier s'est notamment moqué de la génération de balises HTML faussées ou mal placés dans le code source après restructuration du DOM. Si cela peut prêter à rire, le tweet ne manque pas de sens car nous savons désormais que placer certaines balises HTML au mauvais endroit peut impacter négativement le référencement...

Le Google Trends Analyst a évoqué le problème des balises HTML placées au mauvais endroit dans le DOM, et notamment dans la section <head> des pages web. En effet, peu de balises ont l'honneur de pouvoir être placées dans le <head> sans être une faute de développement : <title>, <base>, <link />, <meta />, <style> et <script> (et <noscript>). Voilà, le tour est fait à ce jour et tout autre balise est proscrite, mais il arrive parfois que des développeurs ou frameworks peu précautionneux tombe dans le piège. C'est pourquoi Gary Illyes a écrit ceci (traduit par mes soins) :

Chers frameworks et plugins JavaScript, si vous pouviez arrêter d'insérer des balises invalides dans l'entête HTML, comme img et div, ce serait génial.

Visuellement, le rendu des balises ajoutées dans le <head> sera effectif, donc totalement transparent pour l'utilisateur. En revanche, côté navigateur et crawler, c'est une catastrophe dans certains cas, comme l'expliquait encore tout récemment John Mueller. D'ailleurs, la documentation de Google à propos du hreflang a été mise à jour récemment et précise bien qu'il faut un "head bien construit".

C'est tout le problème du côté extrêmement permissif d'HTML, qui peut accepter des erreurs béantes sans rien dire. Dans le cas du SEO notamment, avoir des balises HTML invalides dans le <head> peut tout simplement bloquer l'indexation ou empêcher la compréhension de ce qui suit ces balises dans le code source. C'est donc un problème important et si les frameworks Javascript génèrent de telles erreurs, il va falloir prendre garde...

Étant plutôt passionné par l'informatique, le Web et le référencement, je m'intéresse à énormément de langages de programmation et aux technologies "en vogue". Parmi tout ce qui existe, les frameworks Javascript (souvent Full JS) représentent certainement la solution la plus tendance du marché, mais avant de se lancer dans le marché infini de ces outils, il faudrait déjà pensé à tout ce qui peut en découler. Mon expérience m'impose de ne pas me fier uniquement aux modes du moment et à réfléchir en amont à l'intérêt de telle ou telle solution, et je suis au regret d'admettre que j'ai beaucoup de mal avec les frameworks Javascript, et il semblerait que Gary Illyes aussi... ^^

Voici quelques points qui peuvent être dérangeants avec les frameworks JS notamment :

  • Les modes passent et certains frameworks ne connaissent que 2/3 ans de gloire avant d'être remplacés par les nouveaux "must-have", et ainsi de suite. De ce fait, j'ai connu en quelques années plusieurs outils qu'il fallait absolument connaître et qui finalement ont périclité ou disparu des radars naturellement et rapidement. Il faut donc se tourner vers des solutions viables et fiables, même si tout a une fin (par exemple, le framework Bootstrap connait une chute de popularité depuis quelques mois, après avoir été l'incontournable des webdesigners et intégrateurs...).
  • Le référencement est le pire ennemi des frameworks JS, donc se lancer dans ces technologies revient à accepter d'être moins bien positionnés. Certes, nous pouvons lire ci-et-là qu'il existe des solutions mirables mais constatons les faits un instant. Tapez des dizaines de requêtes et analysés les 10 premiers résultats. Faites le compte des sites utilisant des frameworks JS et vous aurez votre conclusion, ils ne seront même pas 10% des sites bien classés...
  • Les frameworks JS génèrent du code à la volée, et comme l'a si bien rappelé Gary Illyes, ils font parfois de grossières erreurs de code. Je sais bien que la majorité des développeurs se moquent des quelques fautes qui traînent, comme la plupart des élèves se moquent des fautes d'orthographe. Mais si nous sommes un tant soit peu professionnels et sérieux, il est bien de pouvoir limiter les erreurs au maximum (l'erreur est humaine, mais quand je regarde le code source de Cdiscount par exemple, j'ai envie de chialer... ^^).
  • Maîtriser un framework Javascript ne revient pas à maîtriser Javascript, il ne faut pas confondre langage et dialecte. En effet, il y a parfois des différences notables entre les langages "Vanilla" (originaux) et les réécritures apportées par certains frameworks. Pourtant, moult développeurs vous donnent des leçons de programmation en pompant des techniques et écritures de frameworks qui sont des dérivés du langage. Si nous prenons l'exemple du reconnu jQuery, ça a bien la forme du Javascript, mais sa syntaxe et son écriture est plus approfondie, et il peut être difficile de passer de l'un à l'autre à cause des différences de fonctions, etc. Pour ma part, je prône l'apprentissage des langages natifs qui restent le socle de base, puis on peut s'ouvrir à des dialectes créés par des frameworks ou libraires (ce même raisonnement peut s'appliquer avec la langage PHP aussi, etc.).

Les frameworks JS ne sont pas l'eldorado comme certains veulent le faire croire, ils sont juste une solution éphémère de passage qui peut rendre service pour certains sites. Ils sont intéressants pour créer des applications web ou mobiles notamment, mais pas pour créer des sites dont le référencement est le maître mot. Pensez donc à bien choisir votre framework, et à vérifier que le code généré (en prerender ou non) est propre et valide HTML !