Cela fait plusieurs années que j’entends régulièrement “je suis développeur X” (insérer n’importe quel langage de programmation ou framework). Cette tendance à se définir par rapport à un langage ou framework spécifique est de plus en plus commune et n’est à mon sens pas sans conséquence.
Pour ma part, je considère que les langages de programmation et les frameworks ne sont que des outils permettant de résoudre des problèmes. Et comme tout outil, ils doivent être choisis en fonction de la tâche à accomplir. S’enfermer dans un écosystème et ne pas en sortir peut-être un obstacle à notre croissance professionnelle.
C’est pourtant, ça me semble de plus en plus à contre-courant de “l’époque actuelle”. On retrouve aujourd’hui de nombreuses équipes projet travaillant avec les mêmes outils, indépendamment des spécificités du problème à résoudre. Toujours le même framework, toujours les mêmes outils, même quand ce dernier n’est pas le plus adapté au contexte.
Et tout cela n’est pas sans conséquence. Le risque étant de créer des solutions complexes ou inadaptées. J’ai vu des équipes refuser d’utiliser des librairies parce qu’elles attendaient des solutions proposées par les frameworks ne voulant pas dépendre d’autres composants. J’ai vu des développeurs mettre en place une usine à gaz pour utiliser des solutions types Symfony LiveComponents ou Laravel Livewire là où quelques lignes de JavaScript auraient suffi, uniquement pour rester le plus possible dans du code backend. Techniquement, ça fonctionne, mais ce n’est pas optimal. Et puis quand un problème survient, il est plus difficile à résoudre.
L’effet pervers de cette approche “framework-centrique” c’est aussi qu’actuellement de nombreux développeurs ne connaissent pas les fondamentaux du développement. Je ne parle pas de savoir faire du C (et jouer avec les pointeurs) mais, lors d’entretien de recrutement, je vois de nombreux développeurs exceller dans l’utilisation d’un framework et puis complètement perdus une fois que “l’on sort du cadre”.
Personnellement, je préfère privilégier une approche consistant à partir du problème pour aller vers une solution technique. On commence par identifier le besoin et quelles sont les contraintes du projet. C’est seulement une fois la réponse à ces questions que l’on peut commencer à se questionner sur quel langage et quel framework est le plus adapté. Et dans ce choix, bien entendu que les compétences de l’équipe qui va travailler dessus ont leur importance et peut influencer le choix final.
Cette philosophie rejoint d’ailleurs le principe que j’ai déjà évoqué dans ce blog: se concentrer sur les principes plutôt que sur la technologie. Les concepts fondamentaux du développement logiciel (architecture, patterns, bonnes pratiques) sont transversaux et peuvent s’appliquer indépendamment du langage utilisé.
Il est également important de noter que cette approche pragmatique ne doit pas conduire à l’anarchie technologique. Dans le contexte d’une équipe ou d’une entreprise, il est nécessaire de trouver un équilibre entre la diversité des outils et la cohérence de l’écosystème technique. L’objectif n’est pas d’utiliser un langage différent pour chaque projet, mais de faire des choix éclairés et justifiés.
Au delà de tout ça, un développeur capable de s’adapter à différents langages et frameworks saura également s’adapter à tout type de situations, ce qui est un avantage non négligeable pour l’évolution de carrière.
Si vous n’aviez qu’une seule chose à retenir, c’est que notre métier consiste avant tout à résoudre des problèmes et à créer de la valeur pour les utilisateurs. Pour arriver à nos fins, nous avons une multitude de solutions pouvant être mises en place. Il est essentiel de choisir celle qui sera la plus adaptée à notre situation, que ce soit en choisissant un langage, un framework. Et pour cela, il est primordial de rester curieux, ouverts aux nouvelles technologies et surtout, de ne pas s’enfermer dans une seule approche technique.
Le meilleur outil est celui qui permet de résoudre efficacement le problème posé, pas celui que nous maîtrisons le mieux.