Bonjour à tous,
Avec l'émergence de tous les frameworks JavaScript, je trouve important de se poser la question de l'évolution des "stack" techniques pour les développeurs.

Qu'est ce qu'une "stack"

D'après le site stackshare.io, une "stack" technique est définie comme l'ensemble des technologies qu'une organisation utilise pour construire une application web ou mobile. Il s'agit d'une combinaison de langages de programmation, de cadres, de bibliothèques, de modèles, de serveurs, de solutions UI/UX, de logiciels et d'outils utilisés par ses développeurs.

L'évolution des stacks : de mes débuts à 2021

Quand j'ai commencé à dev, alors que j'étais en classe de seconde, c'était facile de se lancer. Il n'y avait qu'une stack qui dominait : HTML-CSS et un peu de JS pour le front / PHP-MySQL pour le backend.
À cette époque, on ne parlait que peu de "frameworks" au début de l'apprentissage.

J'ai construit mes premiers sites sans avoir idée qu'il existait d'autres manières de faire. Sur ce point, il y a deux points de vue :

  • Ceux qui pensent qu'avoir une seule techno pour commencer est mieux. Je suis plutôt de cet avis, car l'avantage d'avoir un tunnel en face de soit est que l'on n'a pas à se poser des questions en permanence à propos de quelles techno est la meilleure et si l'on a fait le bon choix.
  • Ceux qui pensent qu'avoir un panorama de techno pour commencer est mieux. Car, dès le départ, vous avez vue sur tout ce qui peut se faire et vous pouvez choisir (potentiellement) une techno plus adaptée à vos projets.

Je pense qu'avoir un panorama trop large de technos retarde l'apprentissage. Car le débutant passera son temps à regarder ce qui se fait ailleurs, voire à changer de techno pendant son apprentissage.
Je ne suis pas de ceux qui pensent qu'il vaut mieux avoir "un peu de connaissances dans beaucoup de domaines" mais plutôt "avoir beaucoup de connaissances dans peu de domaines" => le dilemme entre polyvalence et expertise.

L'arrivée des frameworks JavaScript

Quand j'ai commencé, il n'y avait donc que PHP-MySQL comme stack backend, c'était simple et l'apprentissage s'est fait sans trop de doutes ni de difficulté.

En 2021, il y a des nouveaux frameworks JavaScript qui sortent presque tous les jours. De mon point de vue, c'est impossible de s'y retrouver.
Pour être compétitif il faudrait maitriser React, Angular, Vue, ... (pour ne citer que les plus connus). Ce qui est mission impossible pour tout dev qui veut apprendre et ne pas passer tout son temps à suivre des tutoriels et lire des documentations pour comprendre le fonctionnement du nouveau framework à la mode.

Comment je choisis les stacks de mes projets

Lorsqu'il est possible de choisir la stack d'un projet en partant de zéro, il est fortement probable d'aller dans le mur.

Étude de cas : la version 4.0 de kelou.fr :
Quand j'ai commencé à travailler sur la refonte complète (front+back) de ce blog, je suis d'abord parti sur du ReactJS+MongoDB et en front TailwindCSS.
Après une semaine de dev, alors que le dev du site avancait très bien, j'ai tout stoppé. Une nouvelle version de React venait de sortir, et en faisant la mise à jour, certaines parties de la logique du site étaient devenues obsolètes. Pas grave, je recode ça. Puis vient la mise à jour des librairies npm. Là encore, plein de bugs, quel bonheur npm.
Quand je pensais avoir fini tout ça (comptez une semaine, je ne travaille pas à temps plein sur ce site), une nouvelle version de Tailwind sort ...

J'ai finallement décidé de reprendre de zéro (sauf la partie conception, car elle restait valide) et partir sur le framework Symfony en version 5, PostgreSQL pour la base de données et faire le front à main, car mes besoins ne justifient pas l'utilisation d'un framework front.

Alors oui, avec React et un framework front, ça faisait moderne, et le code lui aussi paraissait moderne. Mais vous n'imaginez pas la galère pour s'y retrouver.

Au moins avec Symfony, si je dois revenir sur le site 3 mois après le dernier commit, aucun problème, le code est clair et l'organisation n'a presque pas changé depuis des années.

Mes conseils pour choisir la stack d'un projet

Pour terminer, je pense que la stack choisie n'est pas si importante. Du moment que vous êtes prets à vous investir sur le projet considéré.
Il ne faut pas non plus rester bloquer sur des technos vieilles d'il y a 10 ans.

En conclusion, pour savoir vers qu'elle type de stack me tourner, voici comment je procède :

  • Vais-je travailler sur ce projet au moins 1 heure par semaine pendant toute sa durée de vie ? => Choix libre de la stack, si ce n'est pas un gros projet, pourquoi pas tester de nouvelles technos
  • Le cas échéant => Choix d'une stack plus "stable", que vous maitrisez mieux, pour pouvoir laisser le projet vivre sa vie pendant plusieurs semaines voire mois entre chaque changement majeur.