Etymology of “Foo” (2001)
ietf.orgI always thought that Foo and Bar were derived from FooBar, which comes from FUBAR, which is an acronym for F#cked Up Beyond All Recognition. (Which seems related to SNAFU: Situation Normal; All F#cked Up.) This is mentioned at the end of the text.
and the beginning under 2. Definition and Etymology
That was actually much more interesting and detailed than I was expecting. I didn't know about all the pre-WWII foo usage in comics, popular slang, and cartoons. I also found the bit about the existence of "foo clubs" odd. It's like a meme where we only have scraps of the 7th iteration.
"foo" occurs in the lyrics to Cab Calloway's 1939 Jumpin' Jive, as in this clip, also featuring fabulous tap dancing from the Nicholas Brothers: https://www.youtube.com/watch?v=_8yGGtVKrD8
this memo is kind of funny in its informational tone. i had always just assumed foo and bar came from fubar once i became familiar with the usage.
on another note, i have always disliked the usage of these terms. they stand only for internal lingo and serve no useful purpose. in every case, there are better names that can be used, and i feel foo and bar do nothing but distract me from the example and use case at hand. also, as a student in my first assembly programming course, the professor just started using foo and bar indiscriminately and frequently. i was thoroughly confused at least the entire duration of that lecture and maybe the next until i realized these were seemingly arbitrary words he had picked and not, as i had originally thought, meaningful words or even instructions. i'll take a and b any day.
> not, as i had originally thought, meaningful words or even instructions. i'll take a and b any day.
I get where you're coming from, but an advantage to foo and bar is that once we understand they are arbitrary words, that's a reliable rule. I do a little teaching and new students are incredibly literal. (Which makes sense, the kid that answers "what time is it" with the exact hour/minute/second is more likely to grow into a programmer - I certainly did).
As a result I can't use "better" words, because any meaningful word will be taken to be the requirement. "a" and "b", as you suggest, have issues with being TOO small, too similar, and already have a meaning in sort() uses, not to mention that learning "a" and "b" being meaningless terms is just as hard as learning foo and bar. Pretty much any terms you use will face the same issues, so often the route of least pain is to use the same set of arbitrary terms, and a set that we have a general common agreement as being arbitrary so when a student reads a book, blog post, or watches a video each one of these don't have to explain that foo and bar are arbitrary - we each have to learn that once.
Which isn't to say that foo/bar/baz aren't overused in places, but I doubt it'd be a good idea to replace them entirely or even mostly.
One of my earliest programming-related memories is of picking up a macro assembler manual for the SDS 940. This would have been in 1969 or 1970, when I was 11 or 12, and my programming skills were limited to small BASIC programs. The assembler manual completely baffled me, but I recall to this day the first line of an example macro it contained:
Of course this only deepened my confusion. Clearly there were profound mysteries here :-)MUMBLE MACRO
I aspire to be able to be as seriously silly as an RFC author on April First. Seldom does a joke have such well-researched due diligence.
One of the best IMHO: IP over Avian Carrier
https://en.m.wikipedia.org/wiki/IP_over_Avian_Carriers
and the QoS update with ASCII diagram included
https://tools.ietf.org/html/rfc2549
Category: Experimental
Real-life implementation
On 28 April 2001, IPoAC was actually implemented by the Bergen Linux user group, under the name CPIP (for "Carrier Pigeon Internet Protocol").
[4] They sent nine packets over a distance of approximately five kilometers (three miles), each carried by an individual pigeon and containing one ping (ICMP Echo Request), and received four responses.
55% packet loss!!
My favorite novelty RFC is still the first. RFC 527, ARPAWOCKY:
https://tools.ietf.org/html/rfc527
The archaic jargon and playful imagery harken back to the culture and experience of a time before the Internet even had it's name. Or maybe I romanticize too much :).
I wonder if it's somehow related to the French "fou" which means "crazy".
Forward Observation Officer isn't a backronym: https://en.wikipedia.org/wiki/Artillery_observer#British_For...