RFC 3092: el curioso origen de las variables FOO y BAR


Para entretejer una red universal como Internet, donde todo el mundo quiere meter mano y adaptarlo a su antojo, ha sido necesario que históricamente se tomase la decisión de crear un registro formal de los protocolos a utilizar, modificaciones a los mismos y mejoras. Se trata de los Request For Comments, un conjunto de documentos que narran la historia de Internet desde que era Arpanet, así como los sucesivos cambios realizados sobre la misma.

Y para que os hagáis una idea de hasta qué punto es estricta esta documentación, no hay más que ver la definición que dan a las típicas variables que se suelen usar en el código de ejemplo desde que la informática es tal: foo, bar y su combinación foobar. Ambas están definidas en el RFC 3092 debido a la necesidad de darles un significado, ya que tal y como rezaba el propio documento:

Aproximadamente 212 RFCs, comenzando con el RFC 269, contienen los términos foo’,bar’ o `foobar’ como si fuesen variables metasintácticas, sin añadir ninguna explicación o definición adecuada.


Lo más curioso, sin duda, es el carácter formal del documento para explicar algo tan nimio como el nombre de dos variables escogidas al azar. De hecho, antes siquiera de explicarlo, dan una primera definición de FOO bastante acorde a la imagen que ilustra este artículo:

foo /foo/
1. Interjección. Expresión de asco o indignación.

No sé hasta qué punto será cierto lo expuesto en el RFC, pero aparentemente el origen de las variables procede de la expresión, acuñada en la II Guerra Mundial, FUBAR, un acrónimo de “Fucked Up Beyond All Repair”, algo así como “Jodidos, pero del todo”.

Pero es más, aparentemente foo se convirtió en una palabra comodín en la cultura estadounidense, y era normal verla en cómics e historietas entre los años 30 y 50, ya fuera en matrículas de coches y elementos de fondo, o como eufemismo para las palabras malsonantes.

La primera referencia que se conserva al respecto es esta imagen de 1938 de The Daffy Doc, (una de las primeras aventuras de Duffy Duck, al que en España se conoce como el Pato Lucas), sosteniendo un cartel donde dice “el silencio es foo”. Otros cómics donde aparecía el término con regularidad eran Smokey Stover y Pogo.

Quizá debido a ese uso como comodín, en el ámbito militar se comenzó a denominar foo-fighters a los elementos desconocidos que se colaban en el radar, dando de nuevo a foo el significado de que podía ser “cualquier cosa”. Con el tiempo, esta expresión se perdió ya que los anglosajones prefirieron el término UFO para referirse a los ovnis.

Y en ese entorno militar, donde había nacido fubar y donde se seguía utilizando foo, que ya había desaparecido de la cultura popular, el Departamento de Defensa de los Estados Unidos creó ARPANET, y con ella llegaron los RFC y las primeras referencias escritas a foo y bar (y baz, qux, corge, grault, garply, waldo, fred, plugh, xyzzy y thud) como nombres de variables, ya que al ser palabras carentes de significado, servían perfectamente para denominar cualquier cosa.

Una historia muy curiosa y muy bien trazada en este RFC, que quizá haga que valoremos mucho más la elección del nombre de nuestras variables, y le demos una oportunidad a foo, bar y compañía antes que usar las sosas x, y, z.

Más información | RFC 3092 y su traducción al español
Imagen | Fotograma de The Daffy Doc

Portada de Genbeta