C'est suite au post de Stéphane Robert à propos d'un article d'un ingénieur de chez Amazon qui expliquait pourquoi Python était si mauvais que l'idée d'enfin écrire tout ce qui suit a germé.
Je dis enfin parce que ça fait un moment que pas mal de choses se bousculent dans ma tête et je ne vous garanti pas en écrivant ces premiers mots que je saurais trouver une cohérence et une conclusion, mais au moins j'aurais exprimé plusieurs points qui me tarabustent depuis un moment (accrochez vous à un dico s'il y a des mots inhabituels, j'aime bien essayer des mots moins courants 😇).
Déjà, réglons un point majeur tout de suite : je cite Stéphane parce que le tweet venait de lui mais je n'ai aucun grief à son encontre 🥰. L'article cité était en plus une traduction affreuse d'un site en mal de contenu gratuit, donc restons sur l'article initial. Il se trouve que l'auteur, Jos Visser, a également plus tard posté l'article suivant : Why Python is amazing .
Les 2 articles sont intéressants, mais clairement il y a une petite touche de provocation de la part de l'auteur dans les 2 cas pour des raisons qui lui sont personnelles. En tout cas, il y a matière à comprendre les intérêts et limites du language Python, mais il faut bien lire les 2 pour un équilibre 😎.
De toute façon, là n'est finalement pas le propos. Tout cela m'a rappelé ce qui m'a attiré dans ce monde qu'on appelait simplement "informatique" et également ce qui me déplait aujourd'hui dans ce qui l'entoure.
Au départ, je fais partie de la génération ayant connu l'arrivée de ce que l'on appelait la micro informatique dans les foyers. Après avoir rêvé sur de nombreux magazines, puis une première machine chez un copain, un ZX81, j'ai eu la chance d'avoir des parents qui ont compris que j'avais une attirance profonde pour ce domaine. J'ai donc eu un Sinclair ZX Spectrum+ 🤩.
Ces machines, que ce soit les Amstrad, les Oric, les MSX, eurent un point commun quelle que soit leur architecture et choix techniques par ailleurs : à l'allumage, on avait un prompt et il fallait entrer des commandes.
Du coup, tout curieux avait sous la main de quoi faire autre chose que lancer un jeu, activité néanmoins importante dans mon parcours. C'est comme ça que je me suis retrouvé à coder mes premiers programmes avec le Basic de Sinclair. J'ai même tenté mes premiers pas en assembleur avec un livre dont je ne me souviens que de la couverture rouge 😇 Toujours est il que j'ai codé ainsi de superbes aventures dont vous êtes le héros, à l'image des livres qui apparurent à cette époque (ahhh, la série Loup Solitaire 🐺⚔️)
Par la suite, le virus ayant pris, j'ai acheté un Atari 520STF avec l'intégralité de mes paies de mon premier job d'été de mes 17 ans. Et là, la claque intégrale : un desktop graphique, des disquettes tellement plus pratiques que les cassettes audio du Spectrum... Mais surtout une première pour moi puisqu'il y avait une petite communauté autour des Atari proche de chez moi, et même si c'était surtout des échanges de jeux piratés, c'est grâce à ça que je suis tombé sur le GFA Basic puis le STOS
En me repenchant récemment sur le GFA Basic dans un émulateur Hatari, j'y vois à présent des éléments venant du C, du Python et d'autres languages.
Et c'est là où je voulais en venir (vous voyez, j'y arrive 😆) Ces plus de trente années de machines en languages m'ont au moins montré une chose : chaque language a des éléments qui lui sont propres, mais aussi des éléments piochés dans ces prédécesseurs voire ces contemporains.
Du coup, nous allons pouvoir aborder l'aspect plus sociétal. Déjà que ce qui précède est évidemment mon opinion, sans plus de valeur que l'opinion d'autrui, mais ce qui suit l'est forcément encore plus. Il me semble qu'il y a toujours eu des affrontements assez stériles du genre Amstrad/Spectrum/Commodore ou Atari/Amiga mais la surconnexion dans laquelle nous vivons donne trop vite de l'importance à ce qui aurait du rester une pique dans un coin.
A cela se rajoute le besoin d'attention qui vire à la psychose, cumulé à des intérêts financiers. Il en découle des sujets peu développés mais systématiquement clivants et provocateurs. Les mécanismes d'un Twitter, d'un TikTok ou même d'un YouTube ou Twitch font qu'il est préférable de publier énormément mais toujours court et en opposition forte à d'autres.
Pour rester dans ce modeste domaine qui est le mien, cela n'apporte rien à mon sens de donner des avis 100% catastrophiques sur une technologie, la réalité est un patchwork de cas avec des besoins et des contextes nécessitant justement cette variété d'outils, languages, librairies...
De toute façon, pour que l'outil parfait existe, il faudrait que nos activités de code, CI, infra... soient toutes parfaitement définies et immuables. Or, il me semble que l'informatique a toujours été un hybride entre science et artisanat, certainement pas industrielle. Du coup, c'est un sujet en perpétuel changement, les solutions uniques à chaque problème n'existent pas : il faut une multitude d'outils pour répondre à une multitude de situations.
Dernier point pour moi, mais qui est essentiel à ma présence dans l'écosystème : il y a des préférences personnelles qui interviennent. Si je suis plus heureux, littéralement, parce que j'ai codé tel ou tel projet avec Python ou Go, pourquoi irais je le faire en C ou en Javascript ? Je n'ai jamais regretté d'avoir fait du PHP, ou du C++ ou que sais je. Toutes ces années m'ont permis de tester plus ou moins profondément des technologies très variées. Et si je n'ai pas à chaque fois eu un usage complexe, un projet entier, j'en ai toujours retiré quelque chose : j'apprends, j'évolue.