Outils
La capacité humaine à créer et à utiliser des outils nous a permis de progresser bien au-delà des autres espèces. Une observation célèbre souligne que l’être humain est peu efficace lorsqu’il court, mais qu’une fois sur un vélo il dépasse largement l’efficacité énergétique de n’importe quel animal. L’exemple illustre simplement que les outils produisent de l’efficacité : avec un temps et une énergie limités, la manière dont nous les employons détermine en grande partie jusqu’où nous pouvons aller.
Les outils prennent d’innombrables formes, généralement conçues autour des besoins de leur opérateur humain. Notre façon de les percevoir compte donc beaucoup. Les habitudes alimentaires en donnent un exemple banal : certaines cultures utilisent baguettes et cuillères, d’autres couteaux et fourchettes, d’autres encore directement les mains. Nos mains sont à la fois des outils essentiels pour agir sur le monde et ceux qui me permettent d’écrire ce texte.
Les développeurs disposent d’un choix particulièrement vaste : Vim, Emacs ou VSCode pour l’édition ; Java, Python ou JavaScript pour les langages ; puis une multitude de frameworks, d’algorithmes, de conventions et de métriques de test. Chaque projet résulte d’une suite de décisions, après laquelle la même question revient : avons-nous vraiment choisi les meilleurs outils ?
Je préfère apprendre des outils fondamentaux et polyvalents afin d’atteindre autant d’objectifs que possible avec un ensemble réduit. Les baguettes en sont une bonne image : leur principe est simple, mais elles peuvent saisir, séparer ou déplacer des aliments très différents. Même un outil aussi élémentaire exige toutefois une technique correcte. On investit une fois dans cet apprentissage et il reste utile très longtemps ; face à un steak, une fourchette et un couteau demeurent évidemment plus adaptés.
La multiplication des langages, frameworks et outils crée une paralysie du choix, surtout parce qu’aucun individu ne peut digérer toute l’information disponible. Devons-nous vraiment tout maîtriser ? Serions-nous incapables de produire un bon logiciel sans cela ? Je ne le pense pas. Souvent, un ordinateur et un éditeur convenable comme VSCode suffisent ; le reste peut s’apprendre au moment où le besoin apparaît.
Cette approche peut sembler myope. Elle permet d’apprendre et de s’adapter rapidement, mais peut aussi conduire à regretter de ne pas avoir choisi plus tôt une meilleure architecture — j’ai moi-même reconstruit mon site personnel trois fois. Qu’en ai-je réellement appris ? Ces expériences ont-elles été utiles ? Je reviens souvent à ces questions, et l’exercice mental conserve au moins sa valeur.
Dans les limites de notre temps et de notre vie, construire vite, itérer sans cesse et progresser en spirale est peut-être la meilleure façon d’aller plus haut.