Summary

  • RFC 269 used FOO and BAR as disposable file names in 1971; RFC 3092 later said approximately 212 RFCs, about seven per cent of the series, had used the family without a proper explanation.
  • RFC 3092 did not create the convention or prove one origin. It made an adopted insider practice visible, separated dated occurrences from competing stories, and left a record that verified errata could still correct.

The first command came without a glossary

RFC 269 was a practical report from UCLA-NMC about experience with file transfer. Its appendix showed commands to delete, send and retrieve a file named FOO, then to rename FOO as BAR. Nothing in the command syntax required those particular words. They were empty vessels chosen so the example could demonstrate an operation without naming a real file.

That only works when writer and reader share the convention. An experienced programmer sees two replaceable names. A reader outside that culture can reasonably ask whether FOO is a reserved filename, whether BAR has a protocol meaning, or whether the pair refers to objects defined elsewhere. The example saves the author effort by spending a little of the reader's prior knowledge.

The convention survived because it was useful. Reusable nonsense names avoided accidental claims about real people, organizations and data. Authors did not have to invent a fresh sample vocabulary for every syntax. Repetition then made the pair feel self-explanatory. What began as shared shorthand became part of the reading environment of the RFC Series.

Seven per cent of the series had adopted the shorthand

RFC 3092 opened with an unusual quantitative admission. Approximately 212 RFCs, starting with RFC 269, contained foo, bar or foobar as metasyntactic variables without a proper explanation. The memo translated that into about seven per cent of all RFCs issued by then. It also named the audience harmed by the silence: newcomers, especially people whose first language was not English.

The number matters less as a perfect census than as proof of sequence. By 1 April 2001, the practice was not awaiting authorization from RFC 3092. Hundreds of documents had already carried it. Readers, implementers and authors had already inferred its role from context. The Informational memo explicitly said it specified no Internet standard. It documented a fact of technical writing rather than creating a wire rule.

This is the boundary between publication and adoption. A document can give an existing convention a name, explain it, count it and make it portable to new readers. Those are real effects. They do not make the document the historical source of the behavior it records.

The hard evidence was use; the origins remained plural

RFC 3092's strongest evidence is the dated corpus. RFC 269 really contains the commands. The appendix really lists occurrences. RFC 1037 really uses FOO for “File open for output,” while RFC 1639 deliberately expands FOOBAR as “FTP Operation Over Big Address Records.” These facts show that the letter sequence acquired several technical jobs. They do not prove which older story caused the metasyntactic use.

The etymology section therefore needs to be read as a map of attributed paths, not a single chain of custody. The memo traces a pre-war comic-strip strand through Bill Holman's Smokey Stover. It recounts military slang, foo fighters, FUBAR, British graffiti, the 1959 Tech Model Railroad Club dictionary and later DEC manuals. It mentions Holman's story about a Chinese figurine and a possible fu connection. It also records older English and unrelated senses.

Some of those paths are documented occurrences; others are recollections, plausible influence or explicit uncertainty. A memorable acronym can be a backronym. Two traditions can reinforce one another without either being the sole origin. The responsible conclusion is modest: the RFC preserved the available accounts and made their evidentiary differences visible. It did not turn folklore into a laboratory result.

A placeholder could still collide with reality

Many entries in RFC 3092's appendix were example domain names. That creates a second boundary. foo may signal “replace this,” but foo.com is shaped like a live DNS name. An example copied into software can escape the page and generate traffic, conflict with an actual registrant or teach readers to use a namespace that the author does not control.

RFC 2606 addressed that separate problem in 1999. It reserved .test, .example, .invalid and .localhost, as well as example.com, example.net and example.org, for testing and documentation. RFC 3092 observed that these safe names might reduce foo-style domain examples. It did not present a measured decline.

The distinction is important. Metasyntactic words solve the author's need for visibly generic labels. Reserved example domains solve an operational collision problem in a globally shared namespace. One is social vocabulary; the other is coordinated identifier hygiene. Putting them in the same string does not make them the same control.

Even the explanation needed correction

The appendix ended at 212, but verified Erratum 1454 repaired the sequence and moved the endpoint to 213. Its notes also counted dozens of foo.com and bar.com occurrences in RFC 2821. A second verified erratum, accepted in 2026, changed “Forward Observation Observer” to “Forward Observation Officer.”

Those corrections sharpen the article's point. Documentation is not a ceremonial seal placed over an oral tradition. It is evidence that can be inspected, challenged and amended. RFC 3092 reduced one ambiguity while carrying its own counting and expansion errors. The RFC Editor's record preserved both the original publication and the later repairs.

The durable achievement was therefore not a final answer to where foo came from. It was a cleaner interface between an old technical culture and readers who had not inherited its jokes. Running practice came first. The record followed, made the practice legible, and remained open to correction. That is how a tiny word becomes a useful piece of Internet history rather than an initiation test.

Sources

  1. https://www.rfc-editor.org/info/rfc3092
  2. https://www.rfc-editor.org/rfc/rfc3092.html
  3. https://www.rfc-editor.org/rfc/rfc3092.txt
  4. https://datatracker.ietf.org/doc/html/rfc3092
  5. https://datatracker.ietf.org/doc/rfc3092/references/
  6. https://datatracker.ietf.org/doc/rfc3092/history/
  7. https://www.rfc-editor.org/errata_search.php?rfc=3092
  8. https://www.rfc-editor.org/rfc/rfc269.html
  9. https://www.rfc-editor.org/rfc/rfc1037.html
  10. https://www.rfc-editor.org/rfc/rfc1639.html
  11. https://www.rfc-editor.org/rfc/rfc2606.html
  12. https://www.rfc-editor.org/rfc/rfc2821.html
  13. https://www.rfc-editor.org/rfc/rfc5741.html
  14. https://www.rfc-editor.org/rfc/rfc8729.html