jQuery fête ses dix ans : une première bêta pour la version 3.0
Adieu jQuery Compat
Le 15 janvier 2016 à 15h20
4 min
Internet
Internet
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.
jQuery fête ses dix ans : une première bêta pour la version 3.0
-
jQuery, créé pour faciliter l'écriture du JavaScript...
-
... mais parfois remis en cause
-
jQuery 3.0 : la première bêta est disponible
Commentaires (79)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 15/01/2016 à 15h26
> il ne sert plus à rien puisque toutes les opérations effectuées peuvent très bien se faire en JavaScript directement
Oui et non, c’est faisable mais souvent au prix d’un code beaucoup plus verbeux voir illisible.
Le 15/01/2016 à 15h31
D’une manière générale, il y a vraiment des trucs très sympa dans jquery.
Même aujourd’hui (avec les nav récents), développer avec jQuery / Less c’est autrement plus sympa qu’en JS / CSS pure.
Le 15/01/2016 à 15h34
La fonction dollar déjà les fonction hide et show ça évite pas mal de code et de réinventer la roue ss même parler des appels ajax
Le 15/01/2016 à 15h34
Oui et non là aussi avec quelques alias bien placés, et quand les perfs deviennent un peu critiques ça peut aider de partir sur la solution native. :)
Après, en dehors de la façade quant à la manipulation du DOM apportée par JQuery, y a encore d’autres composants que je trouve (personnellement) encore assez utiles :
Le 15/01/2016 à 15h52
Le 15/01/2016 à 15h56
Le 15/01/2016 à 15h57
Le 15/01/2016 à 16h01
Pourquoi jquery n’est pas intégré directement dans les nav ? Ca éviterais de se taper le dl.
Le 15/01/2016 à 16h05
Une librairie inventée pour combler les lacunes de java sous les browsers, ce langage qui est une vraie plaie, qui est toujours responsable des plantages, des popups, des pubs et tout ce qu’on déteste, vive les pages HTML pures.
Le 15/01/2016 à 16h10
Le 15/01/2016 à 16h10
Le 15/01/2016 à 16h10
Jquery va falloir le tuer aussi un jours ^^ et passer a des framework JS plus propres.
Le 15/01/2016 à 16h10
Le 15/01/2016 à 16h17
Roh c’est l’autre qui a commencé en parlant de hide() et show() comme un des atouts de jQuery :p
Le 15/01/2016 à 21h40
Le 15/01/2016 à 21h41
Le 15/01/2016 à 21h50
Merci, la plupart des sites n’ont pas besoin de faire gagné 10ms sur du code exécuté coté client.
Par contre, le temps de développement lui coute cher. Quand j’entends certains dire que jquery c’est lourd, ca ralenti etc …. c’est comme dire que Photoshop est un programme super lourd, qu’on peut tout faire via paint en pixel par pixel. Oui mais pour produire la MEME image, tu va prendre un temps fou.
Jquery c’est très bien, la manipulation du DOM en + d’être super simple est rapide, JqueryUI c’est encore mieux, on crée des interfaces client intéractive super clean, rapidement, sans se faire chier à gérer des merdes qu’on devrait gérer en vanilla.
Si vanilla peut très bien faire l’affaire pour beaucoup de chose, comme qq1 l’a dit + haut “Maintenant le même chose sur toutes les div qui ont une classe qui commence par un même libellé mais finissent différemment … À oui tu va juste écrire une tonne de JS pour gagner quelques ms la ou tu en a pas vraiment besoin. ;)”
Ca en vanilla, c’est BEAUCOUP BEAUCOUP + qu’une seule ligne en Jquery.
Merci Jquery d’avoir rendu le développement javascript aussi simple intra navigateur.
et j’ai même pas abordé l’ajax….
Le 15/01/2016 à 22h17
L’ajax, je connais pas grand monde qui en a fait et c’est pas si compliqué que ça.
J’aurais plutôt dit ça avec le drag’n drop : tuto pour en faire en JS sans Jquery.
Le 15/01/2016 à 22h47
A part que tu ne prend pas le problème par le bon coté, faire du vanilla ne veux pas dire se taper systématique le même code bien chiant a chaque fois (et encore bien chiant mais au moins on sait se que l’on fait), de mon coté j’utilise des helper pour allez plus vite.
ex bateau :
function getById(id){ return document.getElementById(id);}
Sans compter les IDE avec l’auto complete qui font que l’on a juste a tapé 3 lettre puis tab.
Dans le lien que j’ai donnée précédemment http://youmightnotneedjquery.com/) on nous donne les équivalent de nombreuse fonction jquery, rien n’interdit d’encapsuler les version vanilla dans des fonction pour allez plus vite (c’est justement le but d’une fonction).
Au passage dans le lien on peut constater que certain fonction sont plus rapide a écrire en vanilla qu’en jquery
Donc dire que jquery permet d’accélérer le dev, oui mais non, on peut allez aussi vite sans! ( en ajax avec le XHR 2, c’est vraiment pas bien méchant de faire des requet avec toute sorte de verbe).
Par contre, et c’est très important, il faut s’avoir que par exemple \(("#monId") (ou dans sa forme optimisé \)(document.getElementById(“monId”)) n’est pas égal document.getElementById(“monId”), jquery transforme l’objet dom en objet jquery (se qui prend du temps), tous sa pour facilité la compatibilité pour le reste du framework, or dans bien souvent cette transformation ne sert a rien si se n’est perdre du temps…
Et malheureusement, il n’y a pas que le sélecteur dom qui soit beaucoup trop lourd vis a vis de sont utilisation principal, se qui fait de jquery un framework non seulement sous exploité et bien trop lourd pour souvent pas grand chose…
Pour ton exemple avec photoshop, sa reviendrait a perdre 30 seconde a lancer photoshop pour au final seulement rogner une image, la ou paint se serait ouvert en 1 sec et avec lequel le boulot aurait été fini avant même que photoshop soit chargé.
Et quand on couple sa a des mauvais développeur qui veulent te foutre du jquery partout même la ou il n’y en a pas besoin, on se retrouve avec des daube dans se genre : http://codepen.io/karolpodlesny/pen/npKqu
ou en seulement 55 ligne de vanilla j”arrive exactement au même résultat sans aucune libs.
(le mec a du passé 10x fois plus de temps que moi a écrire sont code en jquery que moi en vanilla xD)
Le 15/01/2016 à 23h10
Reste plus ‘à faire la boucle pour appliquer le display none à chaque élément, c’est sur que ça vaut pas un :
$(‘div[classe^=“début”]’).hide()
Pour moi le jquery est loin d’être à utiliser 100% du temps, mais il apporte d’énormes avantages de lecture du code, gain de temps et peu de perte de perd si l’on ne fait pas n’importe quoi sur sa page (et là, ce ne sont pas les quelques % de différence entre JS et jquery qui ferons une grande différence pour l’utilisateur).
Le sélecteur ne fait pas beaucoup mieux qu’un getElementBy… Mais il le fait simplement et de manière très lisible.
Le 15/01/2016 à 23h32
$(‘div[class^=“début”]’).hide() << marchera pas si t’as plusieurs classes
Le 16/01/2016 à 01h30
Windows, me semble-t-il, voudrait encourager le javascript dans les écoles. N’est-ce pas trop poreux ? (pour la sécurité ?)
Le 16/01/2016 à 01h33
Et pourtant ça fonctionne!
Je te laisse tester!
Par contre si tu ne souhaite que les div n’ont que cette classe spécifique
$(“span[class=‘début’]”).not(‘[class=” “]’).hide()
Le 16/01/2016 à 01h47
J’aime beaucoup lire les devs.
Dès qu’un soft tiers, un OS, etc., deconne un tant soit peu, rame un tant soit peu, on a des cris d’orfraie.
Par contre, quand ce sont eux qui codent leur site, on lit des aberrations comme “optimiser le code ca sert à rien, c’est pas quelques % qui font la différence, etc. “le end user ne le verra pas”, etc.
Le 16/01/2016 à 01h51
Le 16/01/2016 à 01h58
Le 16/01/2016 à 08h35
il est pas ‘orienté’, il est complètement à côté de la plaque. Il dit critiquer JS alors qu’il ne propose aucun argument contre js.
La seule chose qui semble le défriser c’est la diversité, avec à peu près le même genre d’argument foireux que ceux auquels on a eu droit au siècle dernier vis à vis de l’écosystème linux.
Le 16/01/2016 à 08h41
Le 16/01/2016 à 09h14
Quel est l’intérêt face à un simple $(“span.début”)?
si le truc c’est de paramétrer la classe (début-12 par exemple) pourquoi ne pas utiliser les data-X?
Le 17/01/2016 à 21h00
Oui très longtemps." />
Risible de prendre des exemples de frontend CSS (ce que n’est pas jQuery UI) dont les widgets sont quasiment tous écrit avec/dépendant de jQuery." />
Le 17/01/2016 à 21h45
J’ai lu tout le site que tu as donné (avant que tu le recites dans ce com). Merci pour le lien au passage, et pour tes explications sur le fonctionnement de Jquery.
A cela j’ajoute que ta réponse est clair, et le ton n’est pas du tout de l’attaque mais bel et bien un objectif de faire comprendre qq chose (ça change). J’ai fait pendant 4 ans du vanilla, 2 ans de scriptaculous (mouais …) et 5 ans de jquery.
Je pense la même chose que toi, jquery n’est pas la solution à tout, un très bon développeur vanilla fera mieux, mais un développeur moyen (ce qui est mon cas, je ne code pas en js tous les jours) sera bien + à l’aise avec Jquery. Le problème de lourdeur est à mettre de coté. On a des processeurs dual/quad core, idem sur tel, à moins qu’on ait véritablement un objectif de performance absolu.
Pour comparer avec une voiture, la clim rajoute du poids et prend des perfs au moteur mais on s’en fou, on n’a pas besoin d’avoir les perfs d’une formule 1. Idem dans ce cas, on ne cherche pas à avoir le site le + optimisé du monde, juste réduire le temps de dev sans connaitre le langage vanilla par coeur. Et quand au poid, 85Ko minimisé sans la compression gzip, je ne parle pas ca qq chose de lourd.
Le 17/01/2016 à 21h50
Le 17/01/2016 à 23h18
Le 18/01/2016 à 08h23
Le 19/01/2016 à 00h19
Le 19/01/2016 à 09h03
Le 19/01/2016 à 14h52
Un dev qui se cantonne à sa techno et qui ne veut pas évoluer est voué à disparaître. Jquery c’est dépassé, faut le laisser tomber maintenant.
Bootstrap pareil hein :)
C’était bien y a 4 ans
Le 19/01/2016 à 17h21
Tu préconises quoi à la place de bootstrap?
Le 19/01/2016 à 17h38
Un simple pré-processuer css, less ou sass.
Pas besoin d’importer une usine de gaz qui t’empêchera sur le long terme à faire évoluer ton site facilement et proprement, d’autant plus si des besoins spécifiques apparaissent
Le 19/01/2016 à 17h54
Je dois redévelopper la partie cliente de mon site pour un nouveau design. J’utilises déjà less c’est très bien d’ailleurs. Par contre je ne trouve pas que ça remplace totalement bootstrap. Il te propose des sélecteurs css tout prêt à l’emploi et adapté totalement au responsive design. Ca évite de réinventer la roue. De plus beaucoup de graphistes connaissent cette techno.
Le 19/01/2016 à 18h52
un préprocessing less en remplacement de bootstrap… Moi qui pensais avoir déjà lu un beau tas d’inepties sur ce fil…
C’est à peu près aussi pertinent que de dire que jquery et angular couvrent un domaine similaire. :rolleyes:
Le 19/01/2016 à 23h37
Le 20/01/2016 à 08h04
Tu sais tu veux faire plus simple : prends la techno en fonction de ton besoin. Perso, quand j’ai un script de 15 lignes à faire, je vais faire du Bash ou un langage de script, quand je faire un blog, le PHP est largement suffisant (un temps de calcul de 0,25 s sur le calcul d’une page sur pour un truc qui sera vu 50 fois par jour déjà bien assez), je veux encore plus, je choisirais autre chose.
Après, ça fait 11 ans que je fais du PHP, mais c’est un des langages que je connais. Il y a pas que des applications web qui demande des temps de réponses de malade avec de la très haute disponibilité. En fait, je dirais même que ses sites sont plutôt rares au vu du nombre de sites qui existe.
Après c’est sûr que tu passes par des frameworks lourds à la base… c’est peut-être aussi un mauvais choix ou une mauvaise utilisation. J’ai vu ça avec des langages compilés, où la perte de temps était juste colossale, non pas parce qu’il était lent, mais parce que c’était imbitable. Tu peux faire de la merde avec n’importe quoi, à typage statique ou non. Actuellement, le code le plus pourri que j’ai vu n’est pas en PHP, mais en Java. Pourtant, de la merde j’en ai vu passer en PHP.
Et pour info, le non typé, je pense que ça n’existe pas, une variable a toujours un type, c’est juste static ou non.
Le 20/01/2016 à 09h35
Le 20/01/2016 à 09h53
Le 16/01/2016 à 10h29
Le hide()/show(), ça me fait penser à un article que j’ai écrit dessus. Je ne les utilise plus.
Si tu veux n’importe quelle classe qui commence par début : document.querySelector(‘[class^=“debut”], [class*=” debut”]’)
[class^=“debut”] << la première
[class*=” debut”] << les suivantes
On est obligé de faire 2 règles, c’est du CSS de base.
Et pour qu’il n’y ait qu’une classe tu peux écrire ça document.querySelector(‘[class^=“début”]:not([class=” “])’) mais t’as eu bonne idée de laisser trainer des espaces ça ne fonctionne pas. Avec [class=‘début’], cela ne permet pas de savoir si c’est au début, la classe “post-début” sera acceptée.
En tout cas, je fais un constat au boulot, les gens qui ne codent qu’en Jquery ne savent pas code en JS, ils codent en Jquery, et quand on leur enlève Jquery, ils ne savent plus rien faire.
Le 16/01/2016 à 11h43
Franchement je trouve ça encore trop lourd.
L’approche de Lea Verou avec Bliss.js est bien meilleure.
Pour moi jQuery c’est bientôt fini.
Le 16/01/2016 à 12h04
Le 16/01/2016 à 13h21
Le 16/01/2016 à 13h22
Le 16/01/2016 à 15h41
Pour avoir voir un peu vu certains framework, y’en a pas mal qui reprennent les concepts de Jquery, pas tout. D’ailleurs le $() est repris jusque dans le console de debug des navigateur. Après c’est juste du sucre pour appeler des trucs comme document.querySelector().
Le 16/01/2016 à 18h37
Le 16/01/2016 à 20h42
Le 16/01/2016 à 21h17
Le 16/01/2016 à 21h34
Le 16/01/2016 à 21h44
Le 17/01/2016 à 00h07
Le 17/01/2016 à 00h44
Le 17/01/2016 à 01h40
Depuis que je mets de la vanille dans mon chocolat chaud le matin, j’avoue regarder d’un autre angle jQuery.
" />
Le 17/01/2016 à 12h30
Tu pourrais pas écrire ton commentaire avec du “HTML pur”.
Le 17/01/2016 à 13h24
Le 20/01/2016 à 09h57
Oui ils ont ajouté des trucs par dessus mais ce n’est pas applicable à l’ensemble du script php. PHP est bien en typage dynamique faible
Le 20/01/2016 à 10h13
C’est un peu comme l’utf8(je ne sais pas si ca été réglé depuis sur php7) mais ils fournissaient bien des api de manipulation utf8. Mais la plupart des api php et et la gestion interne des string ne stockait pas en utf8. Ils avaient du doubler avec tout un tas d’api spécifiques pour gérer les chaines utf8. Ce n’était pas du tout consistant.
Le 15/01/2016 à 16h19
beaucoup se débarrasse de Jquery aussi pour des question de perf (rien que le sélecteur dom est d’une lenteur : https://jsperf.com/id-vs-class-vs-tag-selectors/140).
Il y a quelque année les sites se résumé a quelque bout de JS par ci par la, sa n’était donc pas gênant, mais aujourd’hui avec les grosse webapp en JS, se passer de Jquery correspond a une grosse optimisation de son code.
Après pour se qui est du gain de temps a codé en Jquery, dans bien des cas c’est aussi long a écrire en vanilla qu’en JS http://youmightnotneedjquery.com/). Et c’est sans compté sur ceux qui font n’importe quoi et qui te ponde 30 ligne en Jquery la ou en vanilla on peut faire la même chose en 10 lignes.
Le 15/01/2016 à 16h19
Le 15/01/2016 à 16h23
Le 15/01/2016 à 16h29
Le 15/01/2016 à 16h30
Le 15/01/2016 à 16h35
Pas ma faute si l’éditeur de NXI fait n’importe quoi
Dans ta citation si tu remplaces JAVA par PHP, C ou n’importe quel autre langage de ton choix elle reste valide.
Le 15/01/2016 à 17h30
Le 15/01/2016 à 17h39
$(" />).show();
J’adore jQuery, correctement utilisé c’est un gain de temps incroyable tout en ayant des performances largement acceptables!
jQuery c’est aussi et surtout jQuery UI…" />
Le 15/01/2016 à 17h49
Oh mince, j’avais cru lire “adieu javascript”…, dommage, une prochaine fois peut être.
Le 15/01/2016 à 18h39
Heureusement que JQuery existe, c’est tellement une plaie manipuler le DOM et compagnie en JS Vanilla…
Apres ce genre d’avis “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.” c’est quand même peu ridicule… ce genre de propos viens de développeurs qui doivent encore travailler a l’age de pierre, probablement portant un teeshirt “vive linux”, ne jurent que par VIM et le terminal… bref qui sont tres conservateurs d’idéologies tels que performances blablabla, code natif blablabla… En 2016, on a des CPU a 10 cœurs et des smartphones plus puissants qu’une nintendo wii " />
Le 15/01/2016 à 18h41
Intégration totale se serait cool cependant il faut convaicre Google, MS, FF, Apple et Opéra en autre….
Le 15/01/2016 à 19h21
Bin oui, on a de la ressource au chiotte les optimisation… faisons tous n’importe quoi…
Et sinon sur smartphone avec le peux de ram certain site on beaucoup de mal (surtout qu’on a pas tous un haut de gamme).
Quand je vois certain site qui prenne jusqu’à 1 Go de ram, je les ai pas test sur smartphone, mais a mon avis sa doit pas être joli.
Le 15/01/2016 à 19h25
Si je prend ton raisonnement vu que ca rame maintenant ca peut ramer demain c’est pas grave ! on a l’habitude
/facedesk
Ca me rapelle la conférence d’un des grands noms de chez IBMs qui parlait des problèmes de performance des sociétés et qui disait que les gens faisaient de moins en moins attention et qu’on finirait par atteindre une masse “critique” de mauvais / lent qui rattrapera l’évolution de vitesse et qu’a ce moment là les gens commenceront de nouveau à apprendre à coder… (après le mec est un troll aussi, mais je pense qu’il n’a pas tord dans le fond)
Le 15/01/2016 à 19h30
Si tu scroll un peux vers le bas tu verra que des test il y en a avec des date beaucoup plus ressente.
D’ailleurs sur jsperf des test de comparaison vanilla vs [insérer le nom d’un framework ici] il y en a la pelle, il suffit de chercher un peux.
Pour le lien c’est vrais que j’aurais pu faire attention a la date et en balancer un plus récent histoire d’être plus crédible, en voici un plus recent http://jsperf.com/zepto-vs-jquery-2013⁄122 avec jquery 3, c’est pas forcement mieux ^^
Le 15/01/2016 à 19h43
Perso, ce merdier est précisément ce qui me fait lâcher peu à peu le front.
J’envoute les clients pour qu’ils arrêtent de demander des trucs trop cools à la mode qui servent à rien sauf à ralentir le site et foutre la merde dans le code (et pourrir le design - j’entends UX par là - généralement).
Sérieux, on n’est pas bien avec notre html/css paisible, propre, détendu du gl… ?
Pire, c’était plus facile de gérer les multiples navigateurs incompatibles (coucou IE6) que ce bordel sans nom de JS et Cie. Je regretterais presque Flash (nan, je déconne !).
Apprendre 20 frameworks par an, je suis trop vieux et pas assez bien payé pour…
Un reset CSS et go dans l’éditeur vide.
SIMPLE ET PROPRE LE WEB DOIT ETRE.
Le 15/01/2016 à 20h25