¿Qué significa realmente "foo"?

232

Espero que esto califique como una pregunta de programación, ya que en cualquier tutorial de programación, eventualmente te encuentras con 'foo' en los ejemplos de código. (¿Sí claro?)

¿Qué significa realmente "foo"?

Si se supone que no significa nada , ¿cuándo comenzó a usarse así?

prakash
fuente
La pregunta vinculada en el comentario anterior aparentemente ha sido eliminada. Todavía está disponible en el archivo no oficial de preguntas eliminadas: stackoverflow.hewgill.com/questions/262/271.html . vea también esta pregunta eliminada relacionada: stackoverflow.hewgill.com/questions/163/229.html
HugoRune
1
Esta pregunta parece estar fuera de tema porque se trata de Etimología
bummi
1
Esta pregunta está fuera de tema, ya que no se trata de programar dentro del alcance definido en el centro de ayuda.
l4mpi
3
Estoy votando para cerrar esta pregunta como fuera de tema porque no es un problema de programación.
Servy

Respuestas:

138

Ver: RFC 3092: Etimología de "Foo", D. Eastlake 3rd et al.

Citando solo las definiciones relevantes de ese RFC por brevedad:

  1. Usado muy generalmente como un nombre de muestra para absolutamente cualquier cosa, especialmente. programas y archivos (especialmente archivos scratch).

  2. Primero en la lista estándar de variables metasintácticas utilizadas en ejemplos de sintaxis (bar, baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud). [JERGA]

BCS
fuente
25
Oh, eso es asombroso. Tienen un RFC para Foo.
Mark Tomlin
55
Mark Tomlin, mira la fecha en ese RFC.
Programador de Windows
66
¿Qué es un RFC ;-)?
Bastien Vandamme
1
@Pentarex ¿Qué es un RTFM ;-)?
CodesInChaos
3
RFC: "Steve Crocker inventó los documentos de solicitud de comentarios en 1969 para ayudar a registrar notas no oficiales sobre el desarrollo de ARPANET. Desde entonces se han convertido en el registro oficial de especificaciones, protocolos, procedimientos y eventos de Internet". Fuente: http://www.livinginternet.com
ZygD
44

foose usa como un nombre de marcador de posición, generalmente en el código de ejemplo para indicar que el objeto que se nombra, o la elección del nombre, no es parte del quid del ejemplo. fooa menudo es seguido por bar, baze incluso bundy, si se necesita más de un nombre. Wikipedia llama a estos nombres Variables Metasintácticas . Los programadores de Python supuestamente utilizan spam, eggs, ham, en lugar de foo, etc.

Hay buenos usos de foo en SA.

También lo he visto foousado cuando el programador no puede pensar en un nombre significativo (como un sustituto de tmp, por ejemplo), pero considero que es un mal uso foo.

Will Harris
fuente
22

Como definición de "Foo" tiene muchos significados:

  • bar y baz a menudo se combinan para formar palabras como foobar, barbaz y foobaz. www.nationmaster.com/encyclopedia/Metasyntactic-variable

  • Conceptos principales en CML, generalmente asignados directamente a XMLElements (para ser discutido más adelante) wwmm.ch.cam.ac.uk/blogs/cml/

  • Medición de la cantidad total de pasto en un potrero, expresada en kilogramos de materia seca de pasto por hectárea (kg DM / ha) www.lifetimewool.com.au/glossary.aspx

  • Oficial de observación directa. Un oficial de artillería que permaneció con la infantería y los batallones de tanques para establecer puestos de observación en el frente desde donde observar las posiciones enemigas y enviar por radio las coordenadas de los objetivos a los cañones más atrás. members.fortunecity.com/lniven/definition.htm

  • es la primera variable metasintáctica de uso común. A veces se combina con barra para hacer foobar. Esto sugiere que foo puede tener su origen en fubar término de la Segunda Guerra Mundial argot, como un acrónimo de f ucked / f ouled u p b ás allá de un ll r l reconocimiento, aunque el archivo de la jerga hace un caso bastante buena ... explicación-guía. info / significado / Metasyntactic-variable.html

  • Foo es una variable metasintáctica utilizada en gran medida en informática para representar conceptos de manera abstracta y puede usarse para representar cualquier parte de un ... es.wikipedia.org/wiki/FOo

  • Foo es el mundo de los sueños (no, no lo es) en la serie Leven Thumps de Obert Skye. Aunque tiene muchos habitantes originales, la mayoría de sus habitantes actuales son de Realidad, y son conocidos como liendres. ... en.wikipedia.org/wiki/Foo (lugar)

  • También foo '. Representación de tonto (persona tonta), en un acento de Mr. T en.wiktionary.org/wiki/foo

Recurso: google

Lukas Šalkauskas
fuente
Gran respuesta, pero probablemente valga la pena poner un enlace a la entrada del archivo Jargon: catb.org/jargon/html/F/foo.html
Dave Webb
Los resultados de Google no son una respuesta
nialljsmith
2
Los resultados de Google no son una respuesta << No entiendo. Entonces, ¿cuál es la respuesta? si piensas en uno? sin garantía? o debería dejar caer aquí enlaces reales a gran cantidad de sitios? Creo que stackoverflow debe tener cosas en un solo lugar, no solo enlaces a otros sitios, así es como publiqué todo esto en un hilo.
Lukas Šalkauskas
Oye, si vas a publicar todas las respuestas no relacionadas con la programación, ¿por qué dejaste "foo-fighter" el nombre que los pilotos de la Segunda Guerra Mundial le dieron a los ovnis que vieron y no pudieron identificar pero presumieron que eran combatientes enemigos?
Kmeixner
9

foo = Archivo u Objeto. Se usa en lugar de una variable de objeto o nombre de archivo.

Acosador de la muerte
fuente
7

Creo que no significa nada. La wiki dice:

"Foo se usa comúnmente con las variables metasintácticas bar y foobar".

GateKiller
fuente
3

El sonido del fou francés, (como: amour fou) [loco] escrito en inglés, sería tonto, ¿no? De lo contrario furchtbar -> foobar -> foo, bar -> barfoo -> barfuß (descalzo). Solo cuatro. Un pie sin dientes.

Estoy de acuerdo con todos, quien lo mencionó significa: nada interesante, solo algo, generalmente necesario para completar una declaración / expresión.

usuario desconocido
fuente
Me gusta la comparación con otros idiomas y sus diferentes significados :-D
Matt
3

Entre mis colegas, el significado (o quizás más exactamente, el uso ) del término "foo" ha sido servir como marcador de posición para representar un ejemplo para un nombre . Los ejemplos incluyen, entre otros, yourVariableName , yourObjectName o yourColumnName .

Hoy, evito usar "foo" y prefiero usar este tipo de sustitución con nombre por un par de razones.

  • En mis primeros días, originalmente encontré el uso de "foo" como colocación en cualquier ejemplo para representar algo tan confuso como confuso. Quería un ejemplo de trabajo, no algo que fuera foobar.
  • Sus resultados pueden variar, pero siempre, 100%, cada vez, nunca fallé, recibí más preguntas de seguimiento sobre el significado de la variable real donde se usó "foo".
Jimmy B
fuente
2

En mi opinión, cada programador tiene sus propias "palabras" que se utilizan cada vez que necesita una palabra arbitraria al programar. Para algunas personas son las primeras palabras de la canción de un niño, para otras son sus nombres y para otras es algo completamente diferente. Ahora para la comunidad de programadores también existen estas "palabras", y estas palabras son 'foo' y 'bar'. El uso de esto es que si tiene que comunicarse públicamente sobre la programación, no tiene que decir que usaría palabras de arbitraje, simplemente escribiría 'foo' o 'bar' y cada programador sabe que son solo palabras arbitrarias.

khebbie
fuente
2
Si "todos" saben esto, ¿por qué tanta gente pregunta por el significado de "foo", "bar" y "foobar"? Prakash no es la primera persona en preguntar. IMO foo, bar y foobar no son intuitivos, como a, b, c, tmp, X, Y, Z, var y func, por eso creo que muchos pe
Anders Sandvig
Hm .. ¿Soy solo yo, o se rompe la interpretación de los comentarios largos? De todos modos, el resto fue "... por qué creo que mucha gente los encuentra distrayendo".
Anders Sandvig
1
Sí, excediste tu límite de 300 caracteres para un comentario;) ¡pero gracias!
prakash
Probablemente estoy demasiado enredado en la comunidad de desarrolladores ;-)
khebbie
Los encontré (y los encuentro) que los distraen. Especialmente cuando intenté descifrar Python por primera vez, los tomé como mucho más significativos de lo que son. Tal vez una función, o alguna parte de la sintaxis. Aunque tuve el mismo problema con cosas como ** kwargs. Instintivamente trato de memorizar cosas así. Hasta el punto de escribirlo. Hasta que alguien me dijo "no importa qué frase uses, siempre que tengas el **". Al menos "kwargs" tiene sentido cuando te das cuenta de lo que significa. Cosas como "foo" son confusamente "místicas". Se sienten como injokes por el bien de los injokes.
OmikronWeapon