Les architectures restent, les technos s'envolent

Les technologies sont éphémères
Les technologies sont importantes : à la fin, un front est bien codé en React, Angular ou Vue. Elles nous rendent service, nous les aimons, j’aime React.
Mais tôt ou tard, il n’en restera rien.
Paroles de Cassandre ? Non : simplement, React, Angular ou Vue sont les technologies d’aujourd’hui. 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, nous serions en droit d’espérer qu’une application correctement écrite subsiste 20 ans plus tard.
L’importance de l’artisanat logiciel
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é. On connaît l’importance des méthodes de refactoring.
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. Combien d’applications survivent-elles au-delà de 5 ans ?
On comprend donc l’importance de l’artisanat logiciel : ses valeurs, ses pratiques. Domain-Driven Design, Test-Driven Development, Programmation Fonctionnelle, méthodes de refactoring… Sans oublier les opérations, qui sont la clé de voûte du travail en équipe et de l’Agilité, et dont l’eXtreme Programming posait déjà toutes les bases.
Investissez sur les fondamentaux du logiciel
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, le « sous-jacent » de la programmation.
Eux ne changent pas tous les quatre 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.
Vous l’avez compris : investir sur les fondamentaux du logiciel, c’est acquérir une hauteur de vue qui vous rendra tellement plus adaptable. Travaillez-les en profondeur, et les langages et outils nouveaux vous sembleront étrangement familiers.