À retenir
- Seuls les espaces, les tabulations et les retours à la ligne sont lus.
- Tous les autres caractères visibles (A-Z, 0-9, ponctuation) sont considérés comme des commentaires et ignorés.
- C'est un langage fonctionnel capable de réaliser n'importe quel calcul mathématique complexe (Turing-complet).
Whitespace est un langage de programmation dit « ésotérique » car il est totalement invisible à l'œil nu. Contrairement aux langages habituels (comme le Python ou le C) qui utilisent des lettres et des chiffres, Whitespace n'interprète que les caractères de vide : l'espace, la tabulation et le saut de ligne. Imaginez écrire une lettre secrète dont le message n'est pas dans l'encre, mais dans la longueur des espaces entre les mots.
Étymologie
Vient de l'anglais white space, qui désigne le « blanc typographique ». Ce langage a été conçu par Edwin Brady et Chris Morris et publié le 1er avril 2003. Son nom est un jeu de mots sur le fait que, dans la plupart des autres langages, ces caractères sont justement ignorés par l'ordinateur.
Exemples d'usage
- Un fichier texte qui semble vide mais qui, une fois lancé, affiche « Hello World ».
- L'inclusion de commandes cachées à l'intérieur du code source d'un autre programme (polyglotte).
Cas d'usage
Ce concept intervient essentiellement dans le domaine de la programmation récréative, des défis de logique (code golf) ou pour l'apprentissage théorique du fonctionnement des langages de programmation. Il n'est jamais utilisé pour créer des logiciels commerciaux ou des sites web.
Bonnes pratiques
Si vous souhaitez l'étudier, utilisez un éditeur de texte (comme VS Code ou Sublime Text) en activant l'option « Afficher les caractères invisibles ». Sans cela, vous ne pourrez pas distinguer une tabulation d'une suite d'espaces, rendant le débogage impossible.
Synonymes
Antonymes
Conseil
Pour bien comprendre ce concept, commencez par regarder un exemple de code source Whitespace avec une coloration syntaxique spéciale pour les espaces. Cela vous aidera à visualiser les structures de contrôle cachées derrière ce qui ressemble à du vide.
Questions fréquentes
Pourquoi créer un tel langage ?
C'est avant tout un défi intellectuel et une plaisanterie informatique destinée à montrer que n'importe quel symbole peut servir à coder.
Est-ce que c'est de la stéganographie ?
D'une certaine manière, oui, car on peut cacher un programme fonctionnel au milieu d'un texte normal sans que personne ne s'en aperçoive.
Est-ce difficile à apprendre ?
La syntaxe est simple, mais la logique est complexe car elle repose sur une pile de données (Stack), et l'absence de visibilité rend l'écriture très fastidieuse.