
RFC 3092: Etymology of "Foo" - nkurz
http://www.ietf.org/rfc/rfc3092.txt
======
songshu
Almost every time foo/bar/etc used I think there are better alternatives. For
example, when I see syntax explained like this

    
    
      if (foo) { bar; baz; }
    

I would always prefer something like this

    
    
      if (someCondition) { /* statements */ }
    

I like it even less when people use them completely outside metasyntactic
contexts, for example saying "company foo can sue" rather "BigCorp Inc can
sue". In both cases the reader has to think about what foo stands for.

~~~
peterwwillis
Is your point that we should have more informative pseudocode or that readers
should not have to think?

~~~
songshu
We should have more informative example code. Readers should only have to
think about the idea being explained, rather than -- for example -- pondering
why the writer chose to use "foo" for a condition and "bar" for a statement.

------
noir_lord
I use foobar every day (shamefully often in printf style "execution reached
this branch style" debugging I'll admit).

Often I'll have foo in one branch and bar in the other.

Along with all for loops using n as the control variable (blame a kids book on
basic I read in the 80's for that one) it is so deeply embedded I literally
don't realise I'm doing it.

As an aside: if you are a PHP programmer (please hold the jokes) and haven't
seen FirePHP check it out (it also supports Chrome/Chromium), it allows you to
dump server side stuff to the client console (via some header magic) and
mostly doesn't (I've never seen it happen but not saying it's not possible)
break anything (even on ajax requests which is a nice ancillary benefit).

~~~
ScottBurson
There's nothing shameful about printf-style debugging.

~~~
noir_lord
Oh I don't feel any shame but admitting it does tend to get you a torrent of
abuse from programmers of that "type" and I suspect most people will know what
I mean.

I don't have time for zealots so I head it off where I can.

------
darkhorn
[http://whois.nic.foo](http://whois.nic.foo)

------
iamsalman
"He who foos last foos best"

------
kbd
April 1, 2001.

------
guard-of-terra
So are you supposed to pronounce foo "f-oh-oh"?

Because I always pronounce it /fu:/

------
Orangeair
Reminds me of my favorite April Fools RFC, which no one seems to have
mentioned yet: Increasing Throughput in IP Networks with ESP-Based Forwarding
([http://tools.ietf.org/html/rfc5984](http://tools.ietf.org/html/rfc5984)).

------
JohnDoe365
TIL: foobar may stem from German "furchtbar"

~~~
nodata
> , but it now seems more likely that FUBAR was itself

> a derivative of `foo' perhaps influenced by German `furchtbar'

> (terrible) - `foobar' may actually have been the original form.

This sounds unlikely...

I think I'll stick with FUBAR
[https://en.wikipedia.org/wiki/FUBAR#FUBAR](https://en.wikipedia.org/wiki/FUBAR#FUBAR)

------
mcherm
The RFC process seems to work quite well for defining and clearly documenting
standards. But I simply cannot understand how this RFC adds any value. All it
does is to define some words!

By way of comparison, RCF 2119 has been a very successful and useful RFC. A
naive reader might think that it simply defines some words, providing
definitions for "SHOULD", "MUST", "MAY", "REQUIRED", and "OPTIONAL". But that
is not the case... it does not provide _definitions_ for these words. Instead,
it provides a standard describing how they are to be used in writing standards
documents. Whether we like it or not, is a fact of the English language that
"The document should end in a newline." can mean that it is optional but
desirable for a document to end in a newline, or it can mean that a document
ending in anything else would be invalid. But the sentence "The document
SHOULD end in a newline.", appearing in a standards document that references
RFC 2119 is not ambiguous -- 2119 specifies a particular protocol for use of
these words.

As far as I can tell, RFC 3092 has none of those redeeming qualities. It does
not specify what a metasyntactic variable is, how to use one correctly, and
which metasyntactic variable list to use... instead it just provides the
definition and origins of "foo", "bar", and "foobar". A dictionary would be a
better source for that, not an RFC.

~~~
skriticos2
It's a popular April's fool from the IETF. They do this sometime. Pigeon
carrier protocol is another well known one:
[http://www.ietf.org/rfc/rfc1149.txt](http://www.ietf.org/rfc/rfc1149.txt)

Here is a long list with other humor RFC's from IETF:
[http://www.cs.hmc.edu/~awooster/joke_rfcs.html](http://www.cs.hmc.edu/~awooster/joke_rfcs.html)

~~~
mcherm
Oops. I somehow overlooked the date.

