Foo en programmation informatique : que veut vraiment dire ce terme

Un terme peut traverser les décennies et pourtant rester invisible au grand public. « Foo », ce mot qui se glisse dans la plupart des exemples de code, n’a rien de mystérieux pour celles et ceux qui vivent au rythme de la programmation informatique. Mais derrière cette syllabe anodine, un univers de conventions et d’habitudes s’est bâti. Décortiquons ce phénomène qui en dit long sur la culture technique des développeurs.

Foo : qu’est-ce que c’est ?

Foo. Trois lettres, une prononciation simple, « fou », et une présence quasi-systématique dans les discussions entre programmeurs et hackers. Ce mot fait partie de l’argot propre au monde du code. On le croise pour désigner des variables, baptiser des fonctions ou poser des commandes sans signification réelle. Foo sert à nommer ce qui doit être temporaire, interchangeable, un paramètre en attente de valeur, qui évoluera selon les données injectées dans le programme et les conditions rencontrées lors de son exécution.

Foo : un mot métasyntaxique

Dans l’univers informatique et le pseudocode, foo s’impose comme un terme « métasyntaxique ». Autrement dit, il s’agit d’un mot qui n’a pas de sens précis, mais qui sert à illustrer la structure d’un code, à construire des exemples sans s’encombrer de noms explicites. Certains développeurs s’en tiennent à foo et ses variantes, d’autres préfèrent des noms plus parlants pour limiter les ambiguïtés. Ce choix allège la rédaction d’exemples : inutile de créer un nom différent pour chaque variable, il suffit de piocher dans ce répertoire de termes fictifs.

Cette pratique, celle de recourir à des paramètres de substitution, permet de garder l’attention sur les mécanismes essentiels du code, d’éviter de se disperser sur le choix des noms, et de mieux saisir la logique à l’œuvre.

Imaginons un cas typique : pour illustrer la création d’une commande utilisateur, il est courant d’écrire command foo(arg1, arg2). Ici, « foo » représente la commande, tandis que « arg1 » et « arg2 » jouent le rôle de données à fournir. La syntaxe est limpide, l’exemple reste concentré sur l’essentiel, sans détour inutile.

Foo : une origine peu traçable

L’histoire de foo est loin d’être limpide. Le mot dépasse d’ailleurs le seul cadre informatique. Certains chercheurs ont fait le lien avec « FUBAR », une expression d’argot militaire venue d’Allemagne, qui désigne une situation hors de contrôle. D’autres mentionnent le Tech Model Railroad Club du MIT, où le mot foo aurait circulé parmi les hackers et programmeurs, associé à la distribution de messages qui pouvaient être rejetés si les conditions n’étaient pas réunies.

Le trio de lettres F-O-O apparaît aussi dans la bande dessinée Smokey Stover, sur des plaques et des cadres, preuve que le terme voyage et se réinvente selon les milieux. Selon la région, foo change de visage : au Royaume-Uni, on rencontre fred, barney, wumbat ; en France, tutu, tata ou titi ; en Nouvelle-Zélande, blang et wibble font office de variantes locales.

Foo : Utilisations courantes en programmation

Dans le quotidien des développeurs et des informaticiens, foo s’est imposé comme un terme générique pour illustrer toutes sortes de concepts dans le code source. Variable anonyme, fonction à l’usage temporaire, ou simple commentaire, foo sert partout où l’exemple prime sur le sens.

Dans la majorité des langages de programmation, il n’est pas rare d’apercevoir foo() comme nom de fonction « pour l’exemple ». En Python, cette habitude est ancrée, tout comme dans d’autres langages qui l’utilisent pour clarifier un schéma ou tester une structure.

Dans certains cas, foo prend même le statut de mot-clé dans des langages comme Ruby ou Perl, permettant d’importer des modules externes ou de signaler une portion de code générique.

Les frameworks de test unitaire, par exemple JUnit en Java, font eux aussi appel à foo comme argument fictif. L’objectif : marquer une donnée interchangeable, sans incidence sur le résultat du test.

On peut cependant s’interroger sur l’utilité de cette préférence. D’autres noms, plus explicites, « nom », « requeteSQL », « utilisateur »,, pourraient tout aussi bien remplir ce rôle. Pourtant, foo, foobar ou bar restent omniprésents dans les tutoriels et articles en ligne, preuve de leur ancrage dans la culture du code.

Foo : Alternatives et équivalents dans d’autres langages de programmation

Si foo règne en maître dans de nombreux langages, il n’est pas le seul terme à incarner ce principe de substitution. Voici quelques alternatives répandues selon le contexte :

  • En C, « bar » complète souvent « foo » pour créer une paire d’exemples.
  • Certains développeurs préfèrent utiliser des noms plus évocateurs, en lien direct avec la fonction du code ou l’action à réaliser.
  • En Python, « spam » apparaît parfois comme alternative décalée pour nommer une fonction bidon.
  • Dans d’autres domaines, comme le CSS, on retrouve « Lorem Ipsum » ou « Dummy Text » pour simuler du contenu sans rapport avec la logique de programmation, servant principalement à tester l’apparence visuelle d’une page.

Chaque développeur finit par forger ses propres habitudes, choisissant ses mots-clés et ses termes de substitution selon ses préférences et la communauté à laquelle il appartient. Ce choix façonne peu à peu un véritable jargon, reflet de la diversité et de l’inventivité du monde du développement informatique.

À force de voir défiler des foo, bar ou spam dans les blocs de code, on comprend que ces mots ne sont pas qu’un clin d’œil entre initiés. Ils racontent une histoire faite de transmission, d’humour et d’adaptation. Un petit mot, des usages multiples, et une preuve de plus que le génie informatique se niche parfois dans les détails les plus inattendus.

D'autres articles sur le site