Que signifie vraiment "foo"?

232

J'espère que cela se qualifie comme une question de programmation, comme dans tout tutoriel de programmation, vous rencontrez finalement «foo» dans les exemples de code. (Oui en effet?)

que signifie vraiment "foo"?

S'il ne veut rien dire , quand a-t-il commencé à être utilisé ainsi?

prakash
la source
La question liée dans le commentaire précédent a apparemment été supprimée. Il est toujours disponible dans l'archive non officielle des questions supprimées: stackoverflow.hewgill.com/questions/262/271.html . voir aussi cette question supprimée connexe: stackoverflow.hewgill.com/questions/163/229.html
HugoRune
1
Cette question semble être hors sujet car elle concerne l'étymologie
bummi
1
Cette question est hors sujet car elle ne concerne pas la programmation dans le cadre défini dans le centre d'aide.
l4mpi
3
Je vote pour fermer cette question comme hors sujet car ce n'est pas un problème de programmation.
Servy

Réponses:

138

Voir: RFC 3092: Etymologie de "Foo", D. Eastlake 3rd et al.

Pour ne citer que les définitions pertinentes de cette RFC:

  1. Utilisé très généralement comme exemple de nom pour absolument n'importe quoi, esp. programmes et fichiers (en particulier les fichiers scratch).

  2. Premier sur la liste standard des variables métasyntaxiques utilisées dans les exemples de syntaxe (bar, baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud). [JARGON]

BCS
la source
25
Oh c'est juste génial. Ils ont un RFC pour Foo.
Mark Tomlin
5
Mark Tomlin, regardez la date dans ce RFC.
Programmeur Windows
6
Qu'est-ce qu'un RFC ;-)?
Bastien Vandamme
1
@Pentarex Qu'est-ce qu'un RTFM ;-)?
CodesInChaos
3
RFC - "Les documents de demande de commentaires ont été inventés par Steve Crocker en 1969 pour aider à enregistrer des notes non officielles sur le développement de l'ARPANET. Ils sont depuis devenus le dossier officiel des spécifications, protocoles, procédures et événements Internet". Source: http://www.livinginternet.com
ZygD
44

fooest utilisé comme nom d'espace réservé, généralement dans l'exemple de code pour signifier que l'objet à nommer, ou le choix du nom, ne fait pas partie du nœud de l'exemple. fooest souvent suivi de bar, bazet même bundysi plusieurs noms sont nécessaires. Wikipedia appelle ces noms des variables métasyntaxiques . Les programmeurs Python utilisent supposément spam, eggs, ham, au lieu de foo, etc.

Il y a de bonnes utilisations de foo dans SA.

J'ai également vu fooutilisé lorsque le programmeur ne peut pas penser à un nom significatif (comme substitut tmp, disons), mais je considère que c'est une mauvaise utilisation de foo.

Will Harris
la source
22

Comme la définition de "Foo" a beaucoup de significations:

  • bar et baz sont souvent combinés pour former des mots tels que foobar, barbaz et foobaz. www.nationmaster.com/encyclopedia/Metasyntactic-variable

  • Principaux concepts en CML, généralement mappés directement sur XMLElements (à discuter plus tard). wwmm.ch.cam.ac.uk/blogs/cml/

  • Mesure de la quantité totale de pâturage dans un paddock, exprimée en kilogrammes de matière sèche de pâturage par hectare (kg DM / ha) www.lifetimewool.com.au/glossary.aspx

  • Officier d'observation avancée. Un officier d'artillerie qui est resté avec des bataillons d'infanterie et de chars pour mettre en place des postes d'observation sur les lignes de front pour observer les positions ennemies et transmettre par radio les coordonnées des cibles aux canons plus à l'arrière. members.fortunecity.com/lniven/definition.htm

  • est la première variable métasyntaxique couramment utilisée. Il est parfois combiné avec une barre pour faire du foobar. Cela suggère que foo peut avoir son origine dans le terme d'argot fubar de la Seconde Guerre mondiale, comme acronyme de f ucked / f ouled u p b eyond a ll r ecognition, bien que le Jargon File fasse un assez bon cas ... guide d'explication. info / signification / variable métasyntactique.html

  • Foo est une variable métasyntaxique largement utilisée en informatique pour représenter les concepts de manière abstraite et peut être utilisée pour représenter n'importe quelle partie d'un ... en.wikipedia.org/wiki/FOo

  • Foo est le monde des rêves (non, ce n'est pas le cas) dans la série Leven Thumps d'Obert Skye. Bien qu'il ait de nombreux habitants d'origine, la plupart de ses habitants actuels sont de la réalité et sont connus comme des lentes. ... en.wikipedia.org/wiki/Foo (lieu)

  • Aussi foo '. Représentation de fou (personne stupide), dans un accent Mr. T en.wiktionary.org/wiki/foo

Ressource: google

Lukas Šalkauskas
la source
Excellente réponse, mais cela vaut probablement la peine de mettre un lien vers l'entrée de fichier Jargon: catb.org/jargon/html/F/foo.html
Dave Webb
Les résultats de Google ne sont pas une réponse
nialljsmith
2
Les résultats de Google ne sont pas une réponse << Je ne reçois pas. Alors, quelle est la réponse? si vous en pensez un? sans garantie? ou devrais-je déposer ici des liens réels vers une masse de sites? Je pense que stackoverflow doit avoir des choses en un seul endroit, pas seulement des liens vers d'autres sites, c'est ainsi que j'ai posté tout cela dans un seul fil.
Lukas Šalkauskas
Hé, si vous allez publier toutes les réponses non liées à la programmation, pourquoi avez-vous omis "foo-fighter" le nom que les pilotes de la Seconde Guerre mondiale ont donné aux OVNI qu'ils ont vus et n'ont pas pu identifier mais présumés être des combattants ennemis?
Kmeixner
9

foo = fichier ou objet. Il est utilisé à la place d'une variable d'objet ou d'un nom de fichier.

Deathstalker
la source
7

Je pense que cela ne veut rien dire. Le wiki dit:

"Foo est couramment utilisé avec la barre de variables métasyntaxiques et foobar."

GateKiller
la source
3

Le son du fou français, (comme: amour fou) [fou] écrit en anglais, serait fou, n'est-ce pas? Sinon furchtbar -> foobar -> foo, bar -> barfoo -> barfuß (pieds nus). Juste fou. Un pied sans dents.

Je suis d'accord avec tous ceux qui ont mentionné que cela signifie: rien d'intéressant, juste quelque chose, généralement nécessaire pour compléter une déclaration / expression.

Utilisateur inconnu
la source
J'aime la comparaison avec d'autres langues et leurs différentes significations :-D
Matt
3

Parmi mes collègues, la signification (ou peut-être plus précisément - l' utilisation ) du terme "foo" a été de servir d'espace réservé pour représenter un exemple de nom . Les exemples incluent, mais sans s'y limiter, votreVariableName , votreObjectName ou votreColumnName .

Aujourd'hui, j'évite d'utiliser "foo" et préfère utiliser ce type de substitution nommée pour plusieurs raisons.

  • Dans mes premiers jours, j'ai trouvé à l'origine l'utilisation de "foo" comme emplacement dans n'importe quel exemple pour représenter quelque chose comme f'd-up à être déroutant. Je voulais un exemple de travail, pas quelque chose de foobar.
  • Vos résultats peuvent varier, mais j'ai toujours, à 100%, à chaque fois, jamais échoué, plus de questions de suivi sur la signification de la variable réelle où "foo" a été utilisé.
Jimmy B
la source
2

À mon avis, chaque programmeur a ses propres «mots» qui sont utilisés chaque fois que vous avez besoin d'un mot arbitraire lors de la programmation. Pour certaines personnes, ce sont les premiers mots d'une chanson pour enfants, pour d'autres, ce sont des noms et pour d'autres, c'est quelque chose de complètement différent. Maintenant, pour la communauté des programmeurs, il y a aussi ces "mots", et ces mots sont "foo" et "bar". L'utilisation de ceci est que si vous devez communiquer publiquement sur la programmation, vous n'avez pas à dire que vous utiliseriez des mots d'arbitrage, vous écririez simplement `` foo '' ou `` bar '' et chaque programmeur sait que ce ne sont que des mots arbitraires.

khebbie
la source
2
Si "tout le monde" le sait, pourquoi tant de gens demandent-ils ce que signifient "foo", "bar" et "foobar"? Prakash n'est pas la première personne à demander. IMO foo, bar et foobar ne sont pas intuitifs, comme a, b, c, tmp, X, Y, Z, var et func, c'est pourquoi je pense que beaucoup de pe
Anders Sandvig
Hm .. Est-ce juste moi ou le rendu des longs commentaires est-il cassé? Quoi qu'il en soit, le reste était "... pourquoi je pense que beaucoup de gens les trouvent distrayants."
Anders Sandvig
1
Oui, vous avez dépassé votre limite de 300 caractères pour un commentaire;) mais merci!
prakash
Je suis probablement juste emmêlé trop profondément dans la communauté des développeurs ;-)
khebbie
Je les ai trouvés (et je les trouve) distrayants. Surtout lors de la première tentative de déchiffrement de python, je les ai pris pour être beaucoup plus significatifs qu'eux. Peut-être une fonction ou une partie de la syntaxe. Bien que j'aie eu le même problème avec des choses comme ** kwargs. J'essaie instinctivement de mémoriser des trucs comme ça. Au point de l'écrire. Jusqu'à ce que quelqu'un me dise "peu importe la phrase que vous utilisez, tant que vous avez le **". Au moins, "kwargs" prend tout son sens lorsque vous réalisez ce qu'il représente. Des trucs comme "foo" sont tout simplement "mystiques". Ils se sentent comme des blagues pour le plaisir des blagues.
OmikronWeapon