Que reste-t-il de nos amours ?
Merci Charles, mais revenons à l'informatique.
Oui, les technologies sont importantes : à la fin, un front est bien codé en React, Angular ou Vue — Vanilla JS ? J'ai même une préférence (marquée) pour le premier. Les technos nous rendent service. Nous les aimons.
Pourtant, tôt ou tard, il n'en restera rien 😢.
Paroles de Cassandre ? Non : simplement, React, Angular ou Vue sont les technologies d'aujourd'hui. Mais, dans 5, 10 ou 20 ans, d'autres prévaudront. Elles s'inspireront et construiront sur celles que nous connaissons aujourd'hui, mais elles seront autres.
Pourtant, on pourrait espérer qu'une application correctement écrite aujourd'hui subsiste dans 20 ans.
Car oui, un code lisible, bien testé et modulaire peut être refactoré à l'infini. De même que les cellules du corps humain se renouvellent tandis-que l'individu conserve son identité, le code d'une application pourrait changer intégralement sans que le service rendu n'en soit altéré.
Il n'y a pas vraiment de quoi s'esbaudir, à la réflexion. C'est un constat que l'on peut faire dès aujourd'hui en changeant de framework/librairie. Seulement, soyons honnêtes : les applications capables de "bien vivre" un tel changement ne sont pas légion. Rappelons que la durée de vie moyenne d'une application d'entreprise est de l'ordre de 5 ans !
On comprend donc l'importance de l'artisanat logiciel : ses valeurs, ses pratiques. Test-driven development, programmation fonctionnelle, Domain-driven design, méthodes de refactoring… Sans oublier le DevOps, champ de savoir connexe, lui aussi issu de l'Extreme Programming.
Vous êtes un jeune (ou moins jeune) développeur/développeuse ? Le meilleur investissement que vous puissiez faire, c'est d'apprendre les fondamentaux du logiciel : méthodologies, architectures, paradigmes et patterns. Autrement dit, le "sous-jacent" de la programmation.
Eux ne changent pas tous les 4 matins. Maîtrisez-les et vous aborderez facilement n'importe quel nouveau framework ou librairie, parce que vous pourrez le rattacher à des notions structurantes qui vous seront déjà familières.
Un nouveau framework front vient de sortir ? Pas de problème, voilà quelques questions à se poser :
- Vu que toutes les technos prétendent faire Papa, Maman et le ☕️, que fait vraiment ce framework ?
- Autrement dit, quel problème entend-il résoudre ? A quel usage est-il destiné ? En quoi se distingue-t-il des 400 frameworks déjà existants ? Par sa vitesse de rendu ? Par l'expérience de développement ?
- Comment fonctionne-t-il ? Utilise-t-il un DOM Virtuel ? Si oui, on est dans un paradigme déclaratif.
- Librairie ou framework ? Librairie = je t'appelle, framework = tu m'appelles (inversion de contrôle).
- Quels patterns sont à l'œuvre ?
- Qui est derrière ? Quelle communauté ?
- Etc.
Bref, vous avez compris : investir sur les fondamentaux du logiciel, c'est acquérir une hauteur de vue qui vous rendra 100 fois plus adaptable. Quand bien même vous aborderiez un langage et des outils nouveaux, vous resteriez totalement pertinent du fait de vos réflexes acquis sur d'autres environnements.
Allez, à la semaine prochaine pour d'autres conseils de Père Castor 👋 !