Adieu jQuery ? Bootstrap 5 annonce la tendance, retour d'expérience
Tags: tech, javascript, jquery
Published: 2020-01-11 14:09:38

---
title: Adieu jQuery ? Bootstrap 5 annonce la tendance, retour d'expérience
published: true
date: 2019-05-16 06:49:15 UTC
tags: tech,javascript,jquery
cover_image: https://blog.silarhi.fr/content/images/2019/07/Post-Social---jQuery.png
canonical_url: https://blog.silarhi.fr/adieu-jquery-bootstrap-5-tendance/
---

jQuery va-t-il mourir ? Le bug de l'an 2000 va-t-il se reproduire ? Toutes les réponses dans cet article.

C'est officiel, [Bootstrap](https://getbootstrap.com/) va se séparer de sa dépendance la plus forte : [jQuery](https://jquery.com/). C'est ce qu'annonce [cette PR](https://github.com/twbs/bootstrap/pull/23586) sur le Github du plus célèbre Framework CSS. A la place, pas de nouveau framework Javascript, pas de super lib next gen : du Vanilla JS, tout simplement. Cette PR montre pour moi la tendance Javascript de 2019 : jQuery a-t-il encore une raison d'exister ?

Si l'on remonte de quelques années aux temps où IE 6 était roi, jQuery avait du sens lorsque les navigateurs avaient d'énormes différences dans l'implémentation des specs. Aujourd'hui, bien qu'encore présentes, ces différences tendent à se réduire de plus en plus :

<!--kg-card-begin: markdown-->
- `querySelector` est devenu stable et consistent entre les navigateurs.
- `XMLHTTPRequest` peut être remplacé par `fetch` qui est devenu standard.
- Les animations peuvent être gérées en CSS3 et sont d'ailleurs plus performantes car elles utilisent le GPU du client.
- Microsoft a [annoncé](https://blogs.windows.com/windowsexperience/2018/12/06/microsoft-edge-making-the-web-better-through-more-open-source-collaboration/#lYvJtFqtZ1pB83I7.97) l'arrêt de l'utilisation de son moteur de rendu en faveur de Chromium pour son navigateur Edge.
- etc etc

Pour enfoncer le clou, GitHub [annonce lui aussi](https://github.blog/2018-09-06-removing-jquery-from-github-frontend/) qu'il a supprimé jQuery de son interface frontend. Alors, faut-il bannir absolument jQuery de ses nouveaux projets ?

## Mon retour d'expérience

### Un zeste de contexte

J'ai récemment développé une application Symfony pour un client. Fort de cette tendance, j'ai donc décidé d'utiliser du pur Javascript dans le projet et voir si j'arrivais à m'en sortir.

Pour ça, je me suis fortement inspiré de [la structure frontend du site en-marche.fr](https://github.com/EnMarche/en-marche.fr/tree/master/front) qui est Open Source (pro tip : vous n'avez pas besoin d'adhérer aux idées du partie politique pour pouvoir tirer le meilleur de l'architecture du site 🤫). Je trouve d'ailleurs que [Titouan Galopin](https://github.com/tgalopin) a fait de l'excellent travail lorsqu'il était sur ce projet.

### La stack technique

Pour ce projet, j'ai utilisé Bootstrap, [axios](https://github.com/axios/axios) pour les requêtes HTTP, [SweetAlert2](https://sweetalert2.github.io/) pour les popups, [Select2](https://select2.org/) pour des jolis select et [pjax](https://github.com/MoOx/pjax) pour accélérer les changements de page. Le code front métier étant écrit en [ES6](http://es6-features.org/#Constants) et transpilé avec Webpack et Babel.

À cause de certaines de ces libs, j'ai donc quand même été contraint d'inclure jQuery dans mon projet, mais j'ai décidé de restreindre son utilisation uniquement pour manipuler les plugins. Histoire de jouer le jeu pour de vrai.

### Résultat

Globalement, l'absence de jQuery ne s'est pas tant fait ressentir. C'est d'ailleurs **gratifiant** de savoir que l'on peut développer rapidement des apps sans framework JS et leurs contraintes associées.

En utilisant jQuery, je trouve aussi qu'on se place dans une zone de confort qui nous maintient à l’écart de l’univers JS. Et ça bouge vite, très vite. De nouveaux standards apparaissent quasiment chaque année, et apportent des évolutions intéressantes et de nouvelles façons de penser et d’écrire le Javascript. Il se passe des choses et il ne faut pas rater le coche, il n'y a qu’à voir du [code écrit avec React](https://github.com/EnMarche/en-marche.fr/blob/master/front/components/DataGrid.js#L293-L314) pour se rendre compte du fossé qu'il y a avec jQuery, alors que les 2 s'appuient sur le même langage.

<!--kg-card-begin: markdown-->

Mais tout n'est pas rose, il y a quand même eu quelques points de frustration :

- Il y a toujours beaucoup de libs qui ne marchent qu'avec jQuery (Bootstrap 4, select2, etc etc). C'est pourquoi même si je n'en voulais pas, jQuery s'est invité de force dans mon fichier `package.json`.
- [fetch n'est pas si cool que ça](https://medium.com/wix-engineering/why-i-wont-be-using-fetch-api-in-my-apps-6900e6c6fe78). J'ai fini par utiliser axios après avoir perdu pas mal de temps à tenter de cerner ses subtilités.

<!--kg-card-end: markdown-->

Et vous ? Utilisez-vous encore jQuery en 2020 dans vos nouveaux projets ? Pensez-vous que jQuery va mourir ?

PS : Le bug de l'an 2000 risque bien de se reproduire si les systèmes ne se mettent pas à jour avant le [19 Janvier 2038 à 03h14 et 08s GMT](https://en.wikipedia.org/wiki/Year_2038_problem), date à laquelle toutes les architectures d'ordinateurs qui sont encore en 32 bits cesseront de gérer correctement les dates. Mais ça reste entre nous 🤫