Le diable est dans les détails...

26. décembre 2014

…et franchement je ne peux pas lui en vouloir. Je suis développeur depuis 30 ans. Et oui, déjà, ça commence à faire. J’ai débuté en portant un putain de jeu TO7 sur mon Amstrad 464 d’abord en recopiant le code pendant 2 mois à m’en faire peter la rétine avant de découvrir les joies des langages propriétaires. Ce fut sans doute à cette époque que le développeur que je suis aujourd’hui est né. Notez que la frustration de mettre tapé deux mois de la vie d’un moine copiste pour me manger un « syntax error line 1 » aurait tout aussi bien pu faire de moi un suicidaire névropathe ou même pire un employé de la banque postale. Mais il n’en fut rien et cela me donna ma première leçon : réfléchis avant de coder !

Mais revenons au sujet de ce blog : les détails. Donc fort de mon expérience de 30 ans de développement je viens ici vous livrer toute nue ma vérité (et je ne parle que de la mienne, pas la peine de polémiquer ou de troller, je me branle de savoir qu’il y en a plein d’autres). Selon moi donc, un bon développeur ne se juge pas à l’aulne de ses algorithmes ou des langages qu’il maitrise. Il se juge à son sens du détail.

Je ne parle pas ici des mauvais développeurs. Je parle bien de ceux à qui on confie une tache et qui arrivent à livrer dans les temps un résultat qui marche. Parmi ces bons développeurs on trouve tout d’abord un certain nombre de « Pare-buffles » pour reprendre une image que m’a soufflé mon ami Etienne. Ces derniers sont des gens à qui l’on dit : Il faut que tu ailles la bas, ok coco ? « Et ils y allèrent ». Le problème c’est que pour y aller ils ont mis un pare-buffle devant leur voiture et ils ont foncé tout droit. Au final le résultat est là, ça répond grosso modo aux besoins initiaux mais si tu regardes de plus près tu t’aperçois que tout tient avec du scotch et surtout que c’est un champ de ruines derrière. Le code n’est pas élégant, tu te retrouves avec des variables appelés « momo, pupu, titi, moncul, etc.. ». Il y a 19 interlignes entre certaines fonctions, le respect du nommage semble avoir été frappé de dysenterie, je ne parle même pas de l’indentation et de manière générale ça ne respire pas l’équilibre et la sérénité.

De l’autre cote on trouve une autre catégorie : Les survivalistes. Ces derniers sont des obsédés du « Oui, mais imagine que ». « Oui mais imagine qu’une météorite vienne à frapper la terre et vitrifie l’humanité. Grace à mon architecture treta-valente et bifactuelle, je peux rajouter une classe implémentant IConnexionA6Pattes et du coup permettre à une blatte de relancer le système ! AHAHA ! Si ces gros cons de dinosaures avaient eu mon système ils ne se seraient pas fait niquer comme des truies ! ». Car oui admettons-le, les survivalistes sont un peu soupe au lait quand il s’agit de critiquer leur architecture a 7 indirections permettant de prendre en entrée aussi bien une fonction, qu’un pointeur de fonction, qu’une référence sur un pointeur de fonction ou bien même un poivron vert. D’autant que j’ai souvent du mal à faire la différence entre le gars qui veut vraiment sauver la planète et celui qui aime en mettre plein la vue.

Pour ma part, je suis un adepte de la troisième catégorie : les pragmatiques. J’aime que mon code soit fonctionnel, qu’il soit capable de répondre aux besoins PLAUSIBLES et surtout que l’on se sente accueilli quand on le relit. Je n’ai pas besoin de fournir une architecture basée sur 17 design patterns intriqués pour me sentir bien. Il suffit que le résultat réponde bien tout en faisant preuve d’élégance et surtout de simplicité. Plus le code est simple mieux c’est en fait. Tu n’as pas besoin d’utiliser un double héritage pour résoudre mon besoin ? C’est génial. Ton code fait 10 lignes au lieu de 3 dlls ? J’adore !

Pour conclure, on pourrait faire un parallèle avec le vin. Les pare-buffles c’est la piquette de village qui sert autant à boire qu’à nettoyer l’évier. C’est fort, ça tape au fond mais il ne faut pas chercher à faire dans la finesse. Le survivaliste quant à lui c’est ce bon vin mais qu’on a enrichi aux hormones, antibiotiques et autres vitamines et qui est livré avec un smoothie banane/mangue/radis/fenouil pour les fois où tu serais victime d’une carence métabolique aigue en le buvant. Pour finir le pragmatique c’est cette bonne cuvée que l’on a pris le temps de laisser maturer en fut de chêne. Il répond bien aux besoins et tu te sens bien quand tu le goutes.

Philo