Je pense qu’on est quand même assez loin de la fin pour jQuery. Il a, et est encore, été très utilisé dans beaucoup d’entrerprises. Beaucoup on développé des plugins etc… Et quand on connait la difficulté de faire passer d’un outil à un autre …
jQuery reste une API qui est meilleur et moins verbeuse, donc pour moi ça sera pas remplacer par un meilleur respect des standard.
Bootstrap? je vois pas le rapport.
Non, ce n’est pas la fin de jQuery. jQuery recoupe tout un tas de fonctionnalité et si certaines ont été utilisées à tort et à travers, et d’autres dépréciées, ce ne sont pas de bonnes raisons pour jeter le bébé avec l’eau du bain. jQuery a 10 ans, et 99% des plugins graphiques web dont vous aurez besoin dans votre prochaine appli sont déjà disponibles… à condition d’avoir jQuery. Donc si vous voulez éviter de redévelopper systématiquement ce qui a déjà été fait (et vous n’êtes pas payé pour!), il faut une dépendance à jQuery, même si il est utilisé couplé à un framework.
Angular n’a pas dégagé jQuery de la scène puisqu’il embarque une version allégée de jQuery (JQLite) pour manipuler les éléments du DOM.
JQLite n’existera plus sur AngularJS 2.
Bien sûr, on verra JQuery encore pendant très longtemps, puisqu’il existe un effet d’inertie inhérant à toute technologie, et on risque d’observer le même phénomène que Windows XP :)
Mais en démarrant un nouveau projet AngularJS, il est bénéfique et recommandé de s’en passer. On trouve de plus en plus de librairies et composants pour angular qui ne dépendent pas de JQuery. Je suis co-auteur d’angular-gantt, et le JQuery free est vraiment un point important pour beaucoup d’utilisateurs.
Pour mon main project, je suis dans l’obligation de l’intégrer à cause de quelques composants qui n’existent pas nativement (=sans aucune dépendance), mais je m’interdit de l’utiliser directement dans mon code.
Je considère jQuery comme cette planche considère PHP :D
Je m’insurge!!! PHP fait l’affaire mais même pour du web simple il y a des alternatives. Par exemple Ruby et Sinatra. C’est quoi l’appli? C’est rare une application qui n’évoluera pas!
Complètement d’accord :) Quand je dis que je vois jQuery comme PHP, c’est au sens « je dépose mon Wordpress sur un FTP et ça marche », ou encore « je copie-colle ça et j’ai un carrousel ».
En même temps, on parle de CommitStrip, hein :|
C’est aussi d’avoir utilisé trop rapidement le HTML 5 alors qu’il n’était pas encore terminé. Et les implémentations dans les navigateurs du HTML 5 ne sont terminées que depuis le 28 Octobre 2014. Avec le CSS 3 qui n’est pas encore intégré dans les navigateurs actuels et le fait que jQuery et Ajax sont parties prenantes dans le projet HTML 5, il y a évidemment des problèmes avec jQuery. En fait, le HTML 5 est plus ouvert et permet la simplification des codes. On ne voit pas encore toute la potentialité du HTML 5 … et je pense que jQuery dépoussiéré restera encore longtemps …
Je pense que on en est loin !
Il ne faut pas oublier que une des forces de jQuery c’est aussi ces milliers de plugins (dont les plugins de Bootstrap)
JavaScript s’améliore mais cela prendra forcement plus de temps (compatibilités des navigateurs)
Donc à partir de ce constat, jQuery aura toujours un temps d’avance en terme de feature et de compatibilité avec les anciens navigateurs.
Après, je ne suis pas pour utiliser jQuery tout le temps (surtout quand le scope des navigateurs n’inclue pas du ie9 xD) mais c’est un autre débat.
Mais bon la solution backbone / jQuery / plugins jQuery reste quand même au top :)
Enfin pour finir un exemple significatif :
$('.bar').on('click',function() {
$(this).css('background','green');
});
plus lisible et plus court que du pur js :
var bars = document.querySelectorAll('.bar');
for(var i=0; i< bars.length; i++) {
bars[i].addEventListener('click',function() {
this.style.background = 'green';
});
}
Avec coffeescript c’est encore mieux :
$(".bar").on "click", ->
$(this).css "background", "green"
C’est un peu hors sujet mais j’invite tout ceux qui font du javascript à regarder CoffeeScript.
EcmaScript 6 aussi ;) ( ou 2015 si vous voulez )
A moins que je me trompe, ES6 va apporter des fonctions mais ne change pas la syntaxe.
À première vue, en tant que Rubyste, je crois que coffeescript me correspond mieux. LiveScript est peut-être plus habituelle pour un Pythoniste ?
ES6 apporte aussi pas mal de nouveautés d’un point de vue syntaxe . en vrac les fonctions flèches, l’interpolation des chaines, les modules, l’affectation décomposée ( ou Destructuring Assignment , très coffescript ;) )…
En fait, je me réfère ironiquement à ES6 comme « python3 » ;) comme le dit @Maxdow, il y a effectivement des apports non négligeables à la syntaxe (et qui, pour mon plus grand bonheur, sont en grande partie retrouvés dans python3)
En effet beaucoup de syntaxe inspirée par ce langage. En revanche on ne se retrouvera heureusement pas face au terrible schisme 2 vs 3, étant donné que tout a été fait pour assurer la rétrocompatibilité et ne pas “briser le web”.
En ES6
$('.bar').on('click', () => $(this).css('background','green'));
Ou
$('.bar').on('click', (event) => $(event.target).css('background','green'));
jQuery a encore de beau jours devant lui à mon avis.
commonJS (avec Webpack ou Browserify) + ES6 + jQuery, ça va vite le développement.
J’ai fais un tour par Angular mais à part le data-binding, ça m’a soûlé tout le surcouchage du natif qui oblige à ré-inventé la roue avec des directives (par exemple pour les formulaires, je trouve pas très productif).
Le data-binding est facilement reproductible avec Object.observe()
(existe des polyfills pour les vieux navigateurs).