RFC 3092 – Etymology of “Foo” (2001)
168 points
1 month ago
| 20 comments
| datatracker.ietf.org
| HN
tpetricek
1 month ago
[-]
There is an entire paper looking at the history, meaning and cultural significance of the foo, bar, baz words: https://link.springer.com/article/10.1007/s13347-019-00387-2
reply
ahazred8ta
1 month ago
[-]
Smokey Stover, the 1935 "Where there's foo, there's fire" guy, was a TV cartoon in the 1970s. https://en.wikipedia.org/wiki/Smokey_Stover#Animation Influenced by german furchtbar/foobar/fubar, MIT used fu() and bar() in the late '30s.
reply
readthenotes1
1 month ago
[-]
The paper goes deeper
reply
ahazred8ta
1 month ago
[-]
♫♫ "WHAT THIS COUNTRY NEEDS IS FOO" https://www.youtube.com/watch?v=W2pljKyCgwc
reply
einpoklum
1 month ago
[-]
Paywalled link? Come on, we're past that. Here's the article:

https://sci-hub.st/10.1007/s13347-019-00387-2

Foo, Bar, Baz…: The Metasyntactic Variable and the Programming Language Hierarchy / by Brian Lennon

reply
ksec
1 month ago
[-]
A lot of programming languages uses "Foo bar" during introduction without actually explaining why "Foo" and why "bar". Before the age of Google and Internet it was perhaps one of the most common question from speakers of non-English language.
reply
mvkel
1 month ago
[-]
This was one of the biggest hurdles I had to overcome when I was a wee lad combing through "Professional PHP Programming." All of the examples it gave were foo/bar, and I couldn't make the intellectual leap to understand what the real world use cases would be.

It wasn't until I tried building something (mad libs) that things "clicked"

reply
exidy
1 month ago
[-]
Even many decades later I remember the frustration in university 100-level CS courses of every new concept demonstrated with a mess of foo(), int* bar, void** baz scribbled on a overhead projector.

Descriptive names are helpful, people! I think even back in the 90s C supported at least 31 characters.

reply
thenoblesunfish
1 month ago
[-]
This location in Switzerland reminded me of some placeholder Python code.

https://en.wikipedia.org/wiki/Foo_Pass

reply
junon
1 month ago
[-]
If you opened a bar there, it'd be the Foo Bar. Full circle.
reply
tonfa
1 month ago
[-]
Actually the river that goes next to it is called the Foobach (which would be pronounced close to foobar).

I found that hilarious as I was hiking through that pass last year (beautiful area).

reply
crazygringo
1 month ago
[-]
reply
paradox460
1 month ago
[-]
Hire a barman named Baz
reply
ithkuil
1 month ago
[-]
And have them serve a cocktail called the quux
reply
_ZeD_
1 month ago
[-]
funny how in italian the "Metasyntactic variable"[1] are "pippo", "pluto" and "paperino"

[1] https://en.wikipedia.org/wiki/Metasyntactic_variable#Italian

reply
greatquux
1 month ago
[-]
I stole this handle from GLS many many years ago and I use it pretty much everywhere. I guess I just love the idea of metasyntactic variables, and using that phrase whenever anyone asks me about my handle!
reply
fholec
1 month ago
[-]
Turns out “foo/bar/baz” has lore. I assumed it was just tribal placeholder magic. Now I’m wondering what other dev fossils we still carry around - IDDQD (Doom god-mode) is a personal favorite. What’s yours?
reply
samplatt
1 month ago
[-]
In case anyone else has ever wondered:

IDDQD stands for Id Delta Quit Delta, a fraternity created by DOOM programmer Dave Taylor who released that if you drop out or quit a course you get a statistically-better final grade than you would by failing the course. Of course, you still end up not achieving a degree, hence when used in-game it shows "Degreelessness Mode" activated.

reply
kunley
1 month ago
[-]
Excuse me, fossils?
reply
samplatt
1 month ago
[-]
It's only offensive if you're being carried around.
reply
maxbond
1 month ago
[-]
I think they're referring to the artifacts (like foo) rather than people.
reply
kunley
1 month ago
[-]
Yes and still don't comprehend why to call certain things fossils if they are still used by virtually everybody
reply
maxbond
1 month ago
[-]
Petroleum is used by everyone right? And it's a literal fossil. I wouldn't call it a fossil because all terminology has lore, but the idea as I understand it is that it's an artifact that outlived the context it was originally relevant in.
reply
kunley
1 month ago
[-]
I think foo never outlived what it was from the beginning - a way to harmlessly goof around while describing complex systems & patterns. So, really dunno why the commenter above wanted to atribute all the fooness to something "ancient".

PS. Unsure why to mix petroleum into this discussion..

reply
maxbond
1 month ago
[-]
Not the usage, the context.
reply
tombert
1 month ago
[-]
Being largely self taught, I ended reinventing a lot of lingo myself. My placeholder words are generally “blah”, “yo”, and “fart” unless other people are reading the code.

I never claimed I was terribly mature.

reply
paradox460
1 month ago
[-]
I've used Blarg and Honk ever since Red vs Blue carved them into my mind
reply
rast1234
1 month ago
[-]
> It has been plausibly suggested that "foobar" spread among early computer engineers partly because of FUBAR and partly because "foo bar" parses in electronics techspeak as an inverted foo signal.

Can anyone educate me what "inverted foo signal" means here, in connection to electronics?

reply
chordbug
1 month ago
[-]
I believe Ā is notation for "not A" and is read out loud as "A bar".
reply
rast1234
1 month ago
[-]
thanks! this makes sense
reply
jibal
1 month ago
[-]
April 1, 2001
reply
PaulRobinson
1 month ago
[-]
IETF have a habit of posting "fun" RFCs on the 1st April each year. Some of them are more famous for being completely daft ("avian carriers" and climbing into trees to watch 0s and 1s painted on the top of tanks being the two stand-out ones), but it doesn't mean that everything they do on that date is to be disregarded as nonsense.
reply
jibal
1 month ago
[-]
Something can be humorous without being nonsense, such as this RFC.
reply
B1FF_PSUVM
1 month ago
[-]
I'll have an apotropaic inscription to go, please.
reply
zahlman
1 month ago
[-]
> First on the standard list of metasyntactic variables used in syntax examples (bar, baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud)

I've seen foo, bar, baz, qu+x, plugh and xyxxy actually in use, not the others.

I've not used "qux" or followed the convention of adding more u's. From me it's been just foo, bar, baz, quux and then some Monty Python inspired ones: spam, ni, ecky, ptong.

Although eventually I learned enough about how to name things that I don't feel the temptation any more. I'll gladly pay that bit of joylessness to understand myself months later.

reply
orsorna
1 month ago
[-]
I've never seen qu+x, except in the title of that Gundam installment released last year, Gundam gquuuuuux. I found this speculation on myanimelist sufficient, but there's no real confirmation afaik. https://myanimelist.net/forum/?goto=post&topicid=2209708&id=...
reply
zabzonk
1 month ago
[-]
naming is hard.

my advice to junior programmers after i see them agonising over a name - "just call it x or foo for now, you are going to change it later anyway"

reply
paulddraper
1 month ago
[-]
“It might be hard, but don’t let that stop you from making it worse” :)
reply
IFC_LLC
1 month ago
[-]
I don’t understand how this article is not at the top of all times
reply
alhazrod
1 month ago
[-]
Echoes of ARPANET.
reply
userbinator
1 month ago
[-]
Not to be confused with https://en.wikipedia.org/wiki/Shmoo , although I have used that as a metasyntactic variable before.
reply
suprjami
1 month ago
[-]
At work we had a server called "fubar".

I said this is going to inadvertently end up in customer communication, maybe we shouldn't be implying the word "fuck" to customers.

Management agreed and had it renamed... to foobar.

reply
johnthescott
1 month ago
[-]
f*kt up beyond all recognition. semper fidelis

i first heard "foo bar" from eric allman at berkeley office of britton-lee, mid 1980s. i vaguely recall eric wrote a column about history of "foo bar".

reply
darth_avocado
1 month ago
[-]
I’m disappointed it’s not originating from the Mexican “Foos”.
reply
mac3n
1 month ago
[-]
Now, tell us about "ZQX3".
reply
stackghost
1 month ago
[-]
This is the first time in my life encountering "ZQX3" in some context that suggests it has broad meaning.

What does ZQX3 have to do with TFA?

reply
mac3n
1 month ago
[-]
folklore was that IBM used it as an example of a bad variable name, based on Zarathustra Q Xerxes III

Here it is, in fact! Page 19:

http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/360/os/...

> But if the programmer decided to use ZQX-3 in pl.ace of MINIMUM-BALANCE because it is shorter, or because he once met a cab driver named Zarathustra Q. Xerxes III, then it is a bad name.

reply
taybin
1 month ago
[-]
No mention of “baz”
reply
hk__2
1 month ago
[-]
It’s literally in the first sentence of the first definition:

> bar /bar/ n. [JARGON] The second metasyntactic variable, after foo and before baz.

reply
rendaw
1 month ago
[-]
In the etymology section, I presume. And I can't find it either, if it is there.
reply
stephenlf
1 month ago
[-]
Part 2, 3rd definition of “foo”mentions baz
reply
1970-01-01
1 month ago
[-]
I always hated foo, bar, & baz. These vars are always pushed by uncreative individuals. I directly equate it with middle-management types that drive black BMWs and have the personality of milquetoast and golf. No thanks, I'll stick with zig, zag, and zip. If you don't like it too bad, write your own throwaway code.
reply