Mimic, l’outil qui rend fou les développeurs

Mimic transforme un code source en remplaçant certains caractères par des homoglyphes. Effet garanti chez les développeurs. Au-delà de la blague, l’outil pointe les dangers relatifs à l’intégration de l’Unicode… dans le code.

Mis en avant par le site Slashdot, Mimic est un outil original, qui remplace certains caractères ASCII par des caractères Unicode susceptibles de leur ressembler. Ce qu’on appelle communément des homoglyphes.

Selon ses auteurs, Mimic peut provoquer : de l’amusement, de la frustration, de la curiosité ou une rage meurtrière. Faites votre choix.

Certes, ce logiciel est avant tout à portée humoristique. Le développeur ne fera pas la différence entre le caractère « ; » et la lettre grecque « ; ». L’interpréteur JavaScript, ou le compilateur C, C++, C#, ne verra cependant pas les choses du même œil, ce qui provoquera des erreurs parfois difficiles à trouver.

Trop de souplesse ?

Le phénomène des homoglyphes a été mis en valeur par l’arrivée du support de l’Unicode au sein de langages de programmation. S’il est essentiel afin de pouvoir afficher du texte utilisant une plage de caractères étendue, il est également source de problèmes.

Au point que certains se demandent comment les éviter. Les détecter et les mettre en valeur, ou tout simplement les interdire dans le code autre que celui décrivant des chaînes de caractères ?

Au fil des ans, les développeurs ont dû faire face à plusieurs défis de la sorte. L’un des plus épineux a ainsi été la prise en compte de la casse des caractères (majuscule/minuscule) qui rend différentes les variables MaVariable, maViariable et mavariable. Une source sans fin de bugs pour les têtes en l’air, qui se prennent parfois à regretter l’époque ou tout code devait être exprimé en majuscules.

À lire aussi :

Insolite : l’Amiga fête ses 30 ans avec un cœur FPGA M68K aux stéroïdes
Insolite : décortiquez le code généré par le compilateur du GCC
Insolite : un cœur ARM en coprocesseur d’un Arduino

Crédit photo : © Peter Bernik – Shutterstock