Développement et ... excitation
Mon premier programme date de plus de 25 ans. J’ai encore dans ma mémoire tous les détails de ma chambre, de mon ordinateur, et des quelques livres que j’avais eu grand mal à réunir.
Je me souviens particulièrement de La bible du PC et de mes premières lignes de codes qui me permettaient de passer en Mode 13. 320x200 en 256 couleurs … De quoi s’éclater à afficher des images. Des images au format PCX pour lesquels j’avais dû écrire ma propre librairie.
Un simple pixel qui s’affichait sur l’écran était une vraie montée d’adrénaline. Sans Internet, sans profusion de documents, il fallait se contenter de ce qu’on avait sous la main pour développer un programme.
Quand un exe se compilait et que tout semblait fonctionner c’était une réelle satisfaction, l’impression d’avoir inventé quelque chose.
Aujourd’hui les choses sont bien différentes. Google, Stack Overflow, des centaines d’ouvrages accessibles en quelques clics, des librairies open source même pour les plus exotiques des besoins …
Bien évidemment niveau Time to Market c’est le paradis puisque il ne suffit plus qu’à assembler toutes ces briques pour arriver à un produit.
Mais pour le développeur (ou doit-on plus simplement l’appeler assembleur) le plaisir disparaît lentement. Noyé sous les débats de clocher de Stack Overflow ou de Reddit, les décisions tournent autour de tel ou tel Framework et non plus vraiment vers quelle architecture, quel algorithme ou qu’elle optimisation.
Les blogs de grandes startup comme Google, Facebook et autres enfoncent encore plus le clou… En essayant d’imiter ces infrastructures pour de petits projets, les développeurs perdent de vue l’objectif principal de leur code … la satisfaction des utilisateurs.
Microservice, container, material design comptent-ils plus pour un projet interne à une entreprise qu’une application répondant aux besoins des utilisateurs mais monolithique et n’utilisant pas les dernière tendances en termes de Framework Javascript ou autre.
C’est à coup sûr un discours de vieux nostalgique mais au contact des dizaines d’étudiants en ingénierie informatique que je forme, il semblerait que les concepts de base de l’informatique se perdent au profit d’espèces de modes et de tendances… Comme se qui se fait dans l’habillement …
Je vois des débutants se perdre dans des méandres de tutoriaux sur des Framework, alors qu’ils ne maitrisent pas le langage sous-jacent. Confronté à des difficultés qui ne sont même pas liées à leur code, ils butent sur des fonctionnalités qu’il serait bien plus simple de bâtir avec du code natif.
Je donne un cours d’initiation au développement Web (HTML, CSS, PHP, MySQL) et c’est toujours avec un grand plaisir que je vois les étudiants se rendre compte que ce n’est finalement pas si complexe de faire du code natif, sans Framework. Et que finalement avec un minimum de rigueur et de logique, les premiers résultats arrivent et que la satisfaction personnelle est plus grande de partir de fichiers vides plutôt que de boilerplate trouvés sur Internet et qui contiennent déjà des centaines de ko de codes.
Bien évidemment on me rétorquera que la sécurité est gérée par défaut, que tous les navigateurs sont pris en compte, que les bonnes pratiques sont respectées, etc, etc. Mais quel est le but de mon cours ? Donner du plaisir à découvrir le développement, arriver à faire naître du logiciel à partir de fichiers vides et permettre à l’apprenant de comprendre TOUT ce qu’il tape sur son clavier.
A lui de décider du moment où une librairie ou un Framework lui facilitera l’affaire. L’important est de faire naître l’excitation, moteur de tout bon développeur.