O que 'foo' realmente significa?

232

Espero que isso se qualifique como uma questão de programação, como em qualquer tutorial de programação, você eventualmente encontrará 'foo' nos exemplos de código. (Okay, certo?)

o que 'foo' realmente significa?

Se não pretende significar nada , quando começou a ser usado?

prakash
fonte
A pergunta vinculada no comentário anterior foi aparentemente excluída. Ele ainda está disponível no arquivo não oficial de perguntas excluídas: stackoverflow.hewgill.com/questions/262/271.html . veja também esta pergunta excluída relacionada: stackoverflow.hewgill.com/questions/163/229.html
HugoRune
1
Esta questão parece ser off-topic, porque é sobre Etimologia
Bummi
1
Esta pergunta é fora de tópico, pois não se trata de programação dentro do escopo definido na Central de Ajuda.
L4mpi
3
Estou votando para encerrar esta questão como fora de tópico, porque não é um problema de programação.
Servy

Respostas:

138

Veja: RFC 3092: Etimologia de "Foo", D. Eastlake 3rd et al.

Citando apenas as definições relevantes desse RFC para resumir:

  1. Usado geralmente como um nome de amostra para absolutamente qualquer coisa, esp. programas e arquivos (especialmente arquivos scratch).

  2. Primeiro na lista padrão de variáveis ​​metassintáticas usadas em exemplos de sintaxe (bar, baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud). [JARGÃO]

BCS
fonte
25
Oh, isso é simplesmente incrível. Eles têm uma RFC para Foo.
Mark Tomlin
5
Mark Tomlin, veja a data na RFC.
Programador Windows
6
O que é um RFC ;-)?
Bastien Vandamme
1
@Pentarex O que é um RTFM ;-)?
CodesInChaos
3
RFC - "Os documentos de solicitação de comentários foram inventados por Steve Crocker em 1969 para ajudar a registrar notas não oficiais sobre o desenvolvimento da ARPANET. Desde então, elas se tornaram o registro oficial de especificações, protocolos, procedimentos e eventos da Internet". Fonte: http://www.livinginternet.com
ZygD 29/11
44

fooé usado como um nome de espaço reservado, geralmente no código de exemplo para significar que o objeto que está sendo nomeado ou a escolha do nome não faz parte do cerne do exemplo. fooé geralmente seguido por bar, baze até mesmo bundy, se mais de um nome for necessário. A Wikipedia chama esses nomes de Variáveis ​​metassintáticas . Programadores Python supostamente usar spam, eggs, ham, em vez de foo, etc.

Existem bons usos de foo no SA.

Também vi foouso quando o programador não consegue pensar em um nome significativo (como um substituto tmp, digamos), mas considero que isso é um uso indevido de foo.

Will Harris
fonte
22

Como definição de "Foo" tem muitos significados:

  • bar e baz são frequentemente compostos para formar palavras como foobar, barbaz e foobaz. www.nationmaster.com/encyclopedia/Metasyntactic-variable

  • Principais conceitos em CML, geralmente mapeados diretamente nos XMLElements (a serem discutidos posteriormente). wwmm.ch.cam.ac.uk/blogs/cml/

  • Medição da quantidade total de pastagem em um pasto, expressa em quilogramas de matéria seca de pastagem por hectare (kg DM / ha) www.lifetimewool.com.au/glossary.aspx

  • Oficial de Observação Avançado. Um oficial de artilharia que permaneceu com batalhões de infantaria e tanques para montar postos de observação nas linhas de frente, para observar as posições inimigas e transmitir por rádio as coordenadas dos alvos para as armas mais atrás. members.fortunecity.com/lniven/definition.htm

  • é a primeira variável metassintática comumente usada. Às vezes é combinado com barra para fazer foobar. Isto sugere que foo pode ter se originado com a Segunda Guerra Mundial gíria fubar prazo, como um acrônimo para f ucked / f ouled u p b eyond um ll r eCognition, embora o Jargon File faz um caso bem bonita ... explicação-guia. info / meaning / Metasyntactic-variable.html

  • Foo é uma variável metassintática usada fortemente na ciência da computação para representar conceitos abstratamente e pode ser usada para representar qualquer parte de um ... en.wikipedia.org/wiki/FOo

  • Foo é o mundo dos sonhos (não, não é) na série Leven Thumps de Obert Skye. Embora tenha muitos habitantes originais, a maioria de seus habitantes atuais é da Realidade e é conhecida como lêndeas. ... en.wikipedia.org/wiki/Foo (local)

  • Também foo '. Representação de tolo (pessoa tola), com sotaque do Sr. T en.wiktionary.org/wiki/foo

Recurso: google

Lukas Šalkauskas
fonte
Ótima resposta, mas provavelmente vale a pena colocar um link para a entrada do arquivo Jargon: catb.org/jargon/html/F/foo.html
Dave Webb
Resultados do Google não são uma resposta
nialljsmith
2
Os resultados do Google não são uma resposta << Não entendi. Então, o que é resposta? se você pensa em um? sem garantia? ou devo deixar aqui links reais para massa de sites? Eu acho que o stackoverflow deve ter coisas em um só lugar, não apenas links para outros sites, é assim que eu postei tudo isso em um único thread.
Lukas Šalkauskas 12/09/08
Ei, se você vai postar todas as respostas não relacionadas à programação, por que você deixou de fora "foo-fighter" o nome que os pilotos da Segunda Guerra Mundial deram aos OVNIs que eles viram e não conseguiram identificar, mas presumiram que eram combatentes inimigos?
Kreixner
9

foo = Arquivo ou Objeto. É usado no lugar de uma variável de objeto ou nome de arquivo.

Deathstalker
fonte
7

Eu acho que não significa nada. O wiki diz:

"Foo é comumente usado com as variáveis ​​metassintáticas bar e foobar."

GateKiller
fonte
3

O som do francês fou, (como: amour fou) [louco] escrito em inglês, seria foo, não é? Outra coisa -> foobar -> foo, bar -> barfoo -> barfuß (descalço). Apenas fou. Um pé sem dentes.

Concordo com todos, que mencionaram que significa: nada de interessante, apenas algo, geralmente necessário para completar uma declaração / expressão.

Usuário desconhecido
fonte
Eu gosto da comparação com outras línguas e seus diferentes significados :-D
Matt
3

Entre meus colegas, o significado (ou talvez mais precisamente - o uso ) do termo "foo" tem sido servir como espaço reservado para representar um exemplo de nome . Os exemplos incluem, mas não se limitam a, yourVariableName , yourObjectName ou yourColumnName .

Hoje, evito usar "foo" e prefiro usar esse tipo de substituição nomeada por alguns motivos.

  • Nos meus dias anteriores, originalmente achei o uso de "foo" como um canal em qualquer exemplo para representar algo que seria confuso. Eu queria um exemplo de trabalho, não algo que fosse foobar.
  • Seus resultados podem variar, mas eu sempre, 100%, sempre, nunca falhava, recebia mais perguntas de acompanhamento sobre o significado da variável real em que "foo" era usado.
Jimmy B
fonte
2

Na minha opinião, todo programador tem suas próprias "palavras" que são usadas toda vez que você precisa de uma palavra arbitrária ao programar. Para algumas pessoas, são as primeiras palavras de uma música infantil, para outras são nomes e para outras é algo completamente diferente. Agora, para a comunidade de programadores, existem essas "palavras" também, e essas palavras são 'foo' e 'bar'. O uso disso é que, se você tiver que se comunicar publicamente sobre programação, não precisará dizer que usaria palavras arbitrárias, simplesmente escreveria 'foo' ou 'bar' e todo programador sabe que essas são apenas palavras arbitrárias.

khebbie
fonte
2
Se "todo mundo" sabe disso, por que tantas pessoas perguntam sobre o significado de "foo", "bar" e "foobar"? Prakash não é a primeira pessoa a perguntar. IMO foo, bar e ola não são intuitiva, como a, b, c, tmp, X, Y, Z, e func var, e é por isso que muitos PE
Anders Sandvig
Hum .. Sou só eu, ou a renderização de longos comentários está quebrada? Enfim, o resto foi "... por que acho que muitas pessoas os acham perturbadores".
Anders Sandvig
1
Sim, você excedeu o limite de 300 caracteres para um comentário;) mas obrigado!
prakash 11/09/08
Estou provavelmente apenas emaranhado muito profunda na comunidade de desenvolvedores ;-)
khebbie
Eu os achei (e acho) distraídos. Especialmente ao tentar decifrar o python pela primeira vez, achei que eles eram muito mais significativos do que são. Talvez uma função ou alguma parte da sintaxe. Embora eu tivesse o mesmo problema com coisas como ** kwargs. Eu instintivamente tento memorizar coisas assim. Ao ponto de anotá-la. Até que alguém me diga "não importa qual frase você usar, desde que você tenha o **". Pelo menos "kwargs" faz sentido quando você percebe o que significa. Coisas como "foo" são confusamente 'místicas'. Eles se sentem como injunções por causa de injunções.
OmikronWeapon