Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

jQuery 3.4.0 est disponible
La bibliothèque JavaScript est-elle toujours aussi utile et incontournable comme à ses débuts ?

Le , par Michael Guilloux

3.8KPARTAGES

14  0 
L'équipe jQuery vient d'annoncer une nouvelle version de la célèbre bibliothèque JavaScript : jQuery 3.4.0. Il s'agit de la dernière version de la branche 3.x, avant de passer à une refonte avec jQuery 4.0. Mais avant d’arriver à la version 4.0, plusieurs améliorations viennent dans jQuery 3.4.0. Parmi les plus importantes, on note une amélioration de performance dans .width et .height, le support des attributs nonce et nomodule, mais surtout la dépréciation des sélecteurs de position en prévision de la suppression de Sizzle, le moteur de sélection dans jQuery.

Précisons-le, l'API de base de jQuery consiste à sélectionner un élément, puis à faire quelque chose avec ce qui a été sélectionné. Sizzle, le moteur de sélection dans jQuery, gère la première partie. C’est un petit moteur rapide et efficace qui a ouvert la voie à des API de sélecteur natif telles que querySelectorAll ainsi qu’à des sélecteurs JavaScript et CSS natifs supplémentaires. Mais maintenant, beaucoup de ces sélecteurs sont intégrés dans les navigateurs modernes. L'équipe jQuery estime donc qu'il est presque temps de dire au revoir à Sizzle, ce qu'elle prévoit de faire dans la prochaine version de la bibliothèque JS.

Supprimer Sizzle dans jQuery 4.0 nécessite toutefois de supprimer également ce que l'équipe jQuery appelle les sélecteurs de position, qui sont des sélecteurs non standard. Plus précisément, dans jQuery 3.4.0, :first, :last, :eq, :even, :odd, :lt, :gt, et :nth sont obsolètes. Lorsque Sizzle sera supprimé, il sera remplacé par une solution autour de querySelectorAll. L'équipe jQuery estime que ce compromis en vaut la peine. Elle rappelle aussi qu'elle continuera à prendre en charge les méthodes de position, telles que .first, .last et .eq, et que tout ce que vous pouvez faire avec les sélecteurs de position, vous pouvez le faire également avec les méthodes de position.

Plusieurs corrections de bogues et beaucoup d'autres petits changements ont été introduits dans jQuery 3.4.0. Vous pouvez les consulter dans le changelog.


Pour les développeurs web qui ne jurent que par jQuery, cette mise à jour est une bonne nouvelle et ils attendent avec impatience jQuery 4.0, sachant que la version 3.0 est sortie il y a bientôt trois ans de cela. Mais pour d'autres, c'est avec indifférence qu'ils accueillent aujourd'hui les nouveautés du côté de jQuery, estimant que jQuery n'est plus aussi utile qu'il ne l'était à ses débuts...

jQuery, une technologie en voie d'obsolescence ?

Depuis sa création en 2006 et notamment à cause de la complexification croissante des interfaces Web, jQuery a connu un large succès auprès des développeurs Web et son apprentissage est aujourd'hui un des fondamentaux de la formation aux technologies du Web. « Tous les développeurs web de la fin des années 2000 ont utilisé l’incontournable bibliothèque jQuery pour naviguer dans le DOM d’une part et simplifier l’utilisation d’AJAX d’autre part. Cette bibliothèque était incontournable pour ses performances et le spectre des fonctionnalités qu’elle couvrait. En effet, non seulement on pouvait économiser un volume de code JavaScript impressionnant pour réaliser des applications web (donc du temps de développement), mais certaines manipulations de pages HTML auparavant quasi impossibles étaient devenues abordables », en témoignait un des membres de la communauté Developpez.com il y a trois ans.

jQuery est actuellement la bibliothèque JS la plus utilisée au monde et bon nombre de frameworks modernes l'utilisent pour fonctionner. Mais avec l'émergence de nouvelles technologies (bibliothèques et frameworks) et la modernisation des navigateurs, le caractère incontournable, voire la pertinence, de jQuery ne fait plus l'unanimité. Les problèmes qui autrefois nécessitaient jQuery sont maintenant en train d'être résolus par les navigateurs et le standard EcmaScript en évolution. Certains développeurs commencent donc à prendre leur distance de la bibliothèque jQuery. C'est le cas de l'équipe Bootstrap qui a annoncé l'abandon de jQuery pour du pur JavaScript dans la version 5.0 du framework HTML, CSS et JavaScript.

Le principal argument avancé pour justifier la suppression de jQuery dans Bootstrap v5 est que maintenant que plus de 95 % des fonctionnalités de jQuery sont désormais natives dans les navigateurs (les 5 % restants étant sans doute des bizarreries excessivement rétrocompatibles qui méritent d'être ignorées), donc ajouter une dépendance JS serait "stupide" ou un gaspillage de bande passante.

Dans la communauté des développeurs, les avis divergent quant à ce changement. Ceux qui l'ont bien accueilli reconnaissent que jQuery est l’une des bibliothèques les plus importantes de l’histoire JavaScript et a permis de créer de véritables applications Web. Ils estiment cependant que depuis lors, les différences entre les navigateurs se sont considérablement réduites et nous avons appris à créer des applications maintenables et évolutives de manière plus déclarative, grâce à des frameworks comme React, Angular et autres. Du coup, jQuery ne serait plus d'une grande utilité.

La suppression du moteur de sélection de jQuery parce qu'il existe maintenant des sélecteurs natifs dans les navigateurs modernes tend à donner raison à ceux qui pensent que jQuery est de moins en moins pertinent. En dépit de cela, d'autres estiment qu'il est intellectuellement malhonnête de prétendre que la bibliothèque JS est obsolète ou que toutes les techniques jQuery sont aujourd'hui aussi ergonomiques à mettre en œuvre sans utiliser jQuery. Pour eux, ça reste un outil très productif qui offre des solutions simples à de nombreux problèmes. jQuery est donc encore là pour très longtemps ?

Annonce de la sortie de jQuery 3.4.0

Et vous ?

jQuery est-il obsolète ou en voie d'obsolescence dans le paysage actuel du développement web ? Pourquoi ?
Quelles sont les forces et faiblesses de jQuery dans le développement web moderne ? À quel moment faut-il l'utiliser ou pas ?
Avez-vous migré de jQuery vers d'autres bibliothèques ou frameworks ? Avez-vous regretté jQuery ou pas ?

Voir aussi :

La version 5.0 du framework Bootstrap va supprimer jQuery, sa plus grande dépendance côté client pour du pur JavaScript
Quel est l'avenir de jQuery ? Juste servir de base pour la construction des frameworks de demain ?
jQuery 3.0 disponible en téléchargement, la nouvelle version de la bibliothèque JavaScript met fin au support des versions 6 à 8 d'Internet Explorer
Une vulnérabilité 0-day dans un plugin jQuery permettrait de télécharger et d'exécuter du code malveillant sur des serveurs PHP, et ce, depuis 2010
jQuery 3.2.0 : toujours en vie, voici des améliorations pour la célèbre bibliothèque JavaScript

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Doksuri
Membre expert https://www.developpez.com
Le 12/04/2019 à 8:57
pour moi, la question ne se pose plus : jquery c'est fini.

je vous conseil de bookmark github.com/nefe/You-Dont-Need-jQuery

a chaque fois que vous voulez utiliser jquery, recherchez la correspondance JS natif.. en 1semaine vous ne penserez plus a jquery
(pour ce qui est des animations fadeIn/fadeOut, etc... passez au css)
4  0 
Avatar de blbird
Membre expérimenté https://www.developpez.com
Le 12/04/2019 à 16:25
Citation Envoyé par crodilus Voir le message
La perle de la journée ! Javascript n'est pas de la POO encore un qui confond programation orientée objet à base de prototypes avec programation orientée objet à base de classes... Mais bon c'est la tout le problème de javascript, tellement de gens en font sans même comprendre ce qu'il est.
A priori toi tu ne sais PAS lire. Je met en gras et souligné les PAS pour que tu les vois bien...

Citation Envoyé par blbird Voir le message
bien comprendre que le JS ce n'est PAS de la POO, mais de la Programmation Orientée PROTOTYPE.
Et la programmation orientée prototype n'a rien à voir avec les objets non plus. Ta "programation orientée objet à base de prototypes" n'existe pas en JS natif.

Citation Envoyé par Zefling Voir le message
TypeScript reste du Javascript. Il ne faut jamais l'oublier. À partir de là, tu sais que ça reste du prototype.
Malheureusement, le TypeScript a beau être transpilé en javascript standard derrière, et donc en prototype, l'écrasante majorité des dev utilisent le TS pour pouvoir faire des classes et des interfaces. Ce qui est complètement nier le principe même de JS et ce qui fait, à mon sens, toute sa force comparé à la POO, c'est bien son orientation prototype.
3  0 
Avatar de Zefling
Membre expert https://www.developpez.com
Le 12/04/2019 à 11:56
Citation Envoyé par blbird Voir le message
Avant TypeScript, l'important serait pour les dev JS de bien comprendre que le JS ce n'est pas de la POO, mais de la Programmation Orientée PROTOTYPE. Si ce point était bien fait et bien vu, l'intérêt de TypeScript serait tout de suite moins "important".
TypeScript reste du Javascript. Il ne faut jamais l'oublier. À partir de là, tu sais que ça reste du prototype.
3  1 
Avatar de air-dex
Membre expert https://www.developpez.com
Le 11/04/2019 à 18:18
jQuery prend à son compte certaines différences entre navigateurs. C'est toujours ça de moins à s'occuper pour le développeur Web. Tout le monde n'est pas forcément sous la dernière version du duo Blink/V8 dans son navigateur basé sur Chromium.
1  0 
Avatar de grunk
Modérateur https://www.developpez.com
Le 12/04/2019 à 8:30
Citation Envoyé par psychadelic Voir le message

Reste le probleme de la viabilité de javascript*; cette question est déjà sur la table, l’idée de passer à un langage compilé fait son chemin ( WebAssembly) car tôt ou tard avec la multiplicité des formats de postes clients, au-delà des smartphones et des tablettes, on va se retrouver avec une pléthore d’objets connectés (la 5G) et sur ce coup la JS sera complètement dépassé.
Webassembly va au contraire pousser encore un peu plus javascript. Il va le rendre viable là où aujourd'hui ce n'est pas vraiment possible pour des raisons de performances et/ou de fonctionnalités.
Mais clairement ça ne remplacera pas javascript pour le code "standard" que tout le monde fait sur son site. C'est même à peut près certains qu'une grosse partie des dev web ne feront jamais de webassembly directement. Il en utiliseront sans doute indirectement mais c'est tout.

Je vois pas le rapport entre la pléthore d’objets connectés et le déclun de JS. On trouve même aujourd'hui des système embarqué / microcontroller qui font tourner du js.
1  0 
Avatar de epsilon68
Membre éprouvé https://www.developpez.com
Le 12/04/2019 à 21:28
jquery c'est plus simple que sans.
maintenant pour 2 lignes, c'est pas la peine, mais si tot que ca devient un peu compliqué, le pur js devient extremement lourd à lire/ecrire.

a+
Sylvain
1  0 
Avatar de Marco46
Modérateur https://www.developpez.com
Le 13/04/2019 à 9:31
Citation Envoyé par Zefling Voir le message

Quand je vois ceux qui font du Java faire du Typescript de la même façon qu'ils font du Java ça me désole un peu.
C'est le problème des stacks J2EE / Angular où les devs dits "fullstack" sont généralement des devs backend Java qui se mettent à faire du front et qui s'imaginent qu'ils n'ont pas besoin de lire la doc parce que "TypeScript ça ressemble à Java".

Ya aussi beaucoup de profils tech lead / architectes / CTO qui pensent comme ça, par simple ignorance du sujet. La présence de TypeScript en front est vue comme une économie de formation avec des devs Java.
1  0 
Avatar de psychadelic
Expert confirmé https://www.developpez.com
Le 13/04/2019 à 16:44
Citation Envoyé par epsilon68 Voir le message
jquery c'est plus simple que sans.
maintenant pour 2 lignes, c'est pas la peine, mais si tot que ca devient un peu compliqué, le pur js devient extrêmement lourd à lire/ecrire.
Pas vraiment d'accord, la syntaxe ES6 est bien plus légère maintenant
avec des avantages qui n'existent pas en jQuery (ex classList.toggle renvoient une valeur booleene)
1  0 
Avatar de blbird
Membre expérimenté https://www.developpez.com
Le 12/04/2019 à 8:47
Citation Envoyé par Kulvar Voir le message
Quelles sont les forces et faiblesses de jQuery dans le développement web moderne ? À quel moment faut-il l'utiliser ou pas ?
Jamais, même pour un débutant. Il est bien plus important de comprendre le fonctionnement de VanillaJS, ou d'apprendre à utiliser TypeScript.
Avant TypeScript, l'important serait pour les dev JS de bien comprendre que le JS ce n'est pas de la POO, mais de la Programmation Orientée PROTOTYPE. Si ce point était bien fait et bien vu, l'intérêt de TypeScript serait tout de suite moins "important".

Je serais curieux de savoir combien n'utilisaient JQuery QUE pour ses sélecteurs?
1  1 
Avatar de bilbot
Membre averti https://www.developpez.com
Le 12/04/2019 à 9:26
Citation Envoyé par Doksuri Voir le message
pour moi, la question ne se pose plus : jquery c'est fini.

je vous conseil de bookmark github.com/nefe/You-Dont-Need-jQuery

a chaque fois que vous voulez utiliser jquery, recherchez la correspondance JS natif.. en 1semaine vous ne penserez plus a jquery
(pour ce qui est des animations fadeIn/fadeOut, etc... passez au css)
très intéressant comme site. On remarque tout de même un des avantages de JQuery, c'est sa syntaxe beaucoup plus courte.
0  0