La bibliothèque JavaScript jQuery fête actuellement ses dix ans. Simple projet d’étude au départ, il est devenu presque omniprésent dans le développement web. À cette occasion, une première bêta de la version 3.0 est apparue, et avec elle plusieurs évolutions importantes.
Créé par John Resig en 2006 quand il était à l’université, jQuery avait initialement deux missions simples : permettre une exploration du DOM (Document Object Model) via une interface simple, et réduire les problèmes qui apparaissaient lors du développement sur plusieurs navigateurs. Depuis, le projet a pris une toute autre ampleur.
jQuery, créé pour faciliter l'écriture du JavaScript...
Comme le site officiel aime à l’expliquer, le but premier de jQuery est aujourd’hui de simplifier au maximum l’ensemble des manipulations qu’un développeur JavaScript trouverait « pénibles ». Supprimer autant que possible les routines rébarbatives pour se concentrer sur les actions et interactions. Et le résultat plait, le fondateur du projet rappelant ainsi que sur le million de sites les plus visités, 77,8 % se servent de cette bibliothèque (W3Techs indique 68,5 % pour sa part).
John Resig ne travaille plus sur jQuery depuis 2011 (il travaille pour la Khan Academy), le projet étant géré depuis par toute une équipe. Son développement est très actif (le dépôt GitHub indique que plus de 6 000 commits ont été réalisés) et se fait au sein d’une fondation spécifiquement créée en 2012 pour en assurer les évolutions futures.
... mais parfois remis en cause
Son existence est cependant parfois remise en cause. Une partie des développeurs estime en effet qu’il ne sert plus à rien puisque toutes les opérations effectuées peuvent très bien se faire en JavaScript directement. Un point de vue qui se base sur l’évolution des navigateurs et sur la raison pour laquelle jQuery a été créé. Car s’il existait des différences énormes lorsque l’on voulait faire exécuter du JavaScript à Internet Explorer 6 et Firefox, le contexte a changé avec la guerre des navigateurs et l’explosion du HTML5, la formation via l’ECMAScript et ainsi de suite.
L’explication pourrait cependant se trouver, justement, dans le support des anciens navigateurs. Sur la page consacrée au jQuery sur W3Tech, on remarque que presque 96 % des sites l’utilisant ont en fait une version 1.X, alors que la dernière révision stable est 2.2.0.
jQuery 3.0 : la première bêta est disponible
Et quitte à fêter ses dix ans, jQuery en profite pour être disponible dans une première bêta de sa mouture majeure 3.0. L’occasion pour l’équipe d’annoncer tout de suite un premier changement important : l’abandon de jQuery Compat. Cette version spécifique de la bibliothèque existait essentiellement pour les vieilles versions d’Internet Explorer, surtout la 8. Or, depuis le 12 janvier, chaque Windows depuis Vista n’a plus droit qu’à une seule version d’IE supportée, soit la dernière disponible. Sur Vista, il s’agit d’Internet Explorer 9, mais avec Windows 7 et les suivants, il n’y a plus que la version 11. Internet Explorer 8 a donc disparu, et jQuery Compat n’a plus de raison d’être. Comme l’annonce fièrement l’équipe, il n’y a donc plus qu’un seul jQuery.
L’équipe indique également avoir fait demi-tour sur les modifications apportées aux méthodes show et hide dans la version alpha car ils provoquaient des erreurs, mais précise que les performances ont quand même été nettement améliorées. Parmi les autres changements, on notera que les jQuery.Deferred sont désormais compatibles avec Promises/A+ et ES2015 Promises, le retrait de certains alias devenus obsolètes (.load, .unload, and .error), l’utilisation par défaut de l’API requestAnimationFrame (sauf dans IE9 et dans les versions d’Android antérieures à la 4.4), la possibilité d’ajouter des arguments dans la méthode unwrap ou encore des accélérations significatives de performances sur certains sélecteurs personnalisés.
De l’aveu même de l’équipe de développement, il s’agit d’une évolution en douceur. Cependant, puisque certains changements cassent la compatibilité avec le code utilisé jusqu’à dans la branche 2.X, elle n’avait d’autre choix que de faire un bond dans la nomenclature. Cela étant, la plupart de ces modifications attendent les retours des développeurs et la plupart des éléments sont encore susceptibles d’évoluer d’ici à la version finale.
La récupération de cette première bêta peut se faire depuis cette page.