Si vous croyez que le format ASCIIZ (aussi appelé « chaîne de caractères à terminateur nul » à la base du langage C et d’UNIX) est le pire péché originel de l’informatique, accrochez-vous. Il est amplifié par un autre péché bien plus grave, commis au nom du minimalisme, excusé au nom de la compatibilité et perpétué par l’oubli des alternatives. Si vous avez lu l’article de mars 2023 [1] jusqu’au bout, vous avez probablement compris que la plupart des langages de programmation actuels n’utilisent qu’une seule pile. C’est la source de nombreux problèmes (de sûreté, de sécurité, de complexité et bien d’autres) aux origines de failles variées (représentant peut-être un cinquième des CVE) que nous sommes habitués à mitiger, sans les résoudre vraiment. Dans cette première partie lovecraftienne, nous irons jusqu’au fond de l’impasse pour démontrer l’absurdité, les difficultés et les dangers imposés par ce système.
Les « chaînes alignées », décrites ici l’année dernière [1], ne sont qu’une solution partielle. Elles auraient été fabuleuses si leur mise en application n’avait pas été entravée dès le début par un gigantesque problème fondamental, objet du lapidaire chapitre final. Je peux toujours contourner, bricoler (comme nous le verrons dans la partie 4), partir dans l’écriture de macros, mais même en surmontant les nombreuses embûches, rien ne serait vraiment résolu. Au contraire, j’aiderais le problème à se perpétuer et à s’enraciner encore plus, en m’enlisant dans de scabreuses couches logicielles supplémentaires ! Quand aucun bricolage ne suffit, il n’y a plus d’autre choix que de prendre le taureau par les cornes, alors me revoilà, enhardi par l’expérience des chaînes alignées, motivé par l’espoir de faire enfin bouger les choses dans le bon sens.
1. Quelques symptômes
Le dernier chapitre de [1] évoque très succinctement...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première