Si revisáis código o documentación de otros programadores, tarde o temprano os toparéis con dos nombres que aparecen una y otra vez: foo y bar. Sirven como variables, funciones o ficheros de ejemplo cuando el nombre concreto da igual y solo se quiere ilustrar una idea. Pero ¿de dónde salen exactamente estas palabras que no significan nada? La respuesta mezcla cómics de los años treinta, jerga militar de la Segunda Guerra Mundial, ovnis y un club de trenes en miniatura del MIT.
Qué son foo y bar
foo y bar son lo que se conoce como variables metasintácticas: marcadores de posición que no tienen significado por sí mismos y que se usan para nombrar entidades (variables, funciones, comandos) cuya identidad exacta no importa, solo demostrar un concepto. Cuando se necesita una sola, se usa foo; cuando hacen falta varias, aparecen bar, baz y compañía.
No son las únicas. Existe toda una lista ”estándar” de relevo: después de foo, bar y baz vienen qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy y thud. Pero foo y bar ganaron la partida, y por razones más culturales que técnicas.
Origen de foo: un cómic y unos ovnis
Al contrario de lo que mucha gente cree, foo no nació en la informática ni en el ejército. Es una palabra sin sentido que ya circulaba en la cultura popular estadounidense de los años treinta. Aparecía como gag recurrente en la tira cómica Smokey Stover, donde la sílaba “foo” se colaba en carteles y grafitis a lo largo de las viñetas.

De ahí saltó a la jerga militar. Durante la Segunda Guerra Mundial, los pilotos aliados llamaban foo fighters a diversos fenómenos aéreos inexplicables y supuestos ovnis. La palabra, en definitiva, ya estaba “en el aire” mucho antes de que nadie escribiera una línea de código.
Origen de bar: el famoso FUBAR
Aquí entra la explicación más repetida, y también la más matizable. La unión foobar se asocia habitualmente con el acrónimo militar de la Segunda Guerra Mundial FUBAR (Fucked Up Beyond All Recognition, algo así como “estropeado más allá de toda reparación”).
La idea es que la palabra foo, ya existente, se fusionó con el -bar del militar FUBAR para dar foobar, y que de ahí se separó después en foo y bar como dos marcadores independientes. Conviene tomarlo con cautela: lo más probable es que FUBAR no creara el término, pero sí que contribuyera de forma notable a popularizarlo. Es la misma clase de etimología popular que rodea a otras palabras del argot técnico: una historia limpia montada sobre un origen bastante más enredado.
El salto a la programación: el MIT
El uso de foo en círculos técnicos se atribuye generalmente al Tech Model Railroad Club (TMRC) del MIT, el legendario club de trenes en miniatura del que salió buena parte de la primera cultura hacker. Allí encontramos el primer uso documentado de “foo” en este ambiente hacia finales de los años cincuenta.
A partir de 1964, foo y bar se consolidaron como variables metasintácticas en los trabajos del MIT y de DEC, en torno a LISP, el PDP-1 y el Project MAC. La primera aparición conocida en letra impresa en un contexto de programación data de una edición de 1965 de la revista Tech Engineering News del MIT.
La curiosidad dentro de la curiosidad: un RFC para foo
Que estas dos palabrejas sin significado importan lo bastante como para merecer un documento oficial lo demuestra el RFC 3092, titulado literalmente “Etymology of Foo”. Los RFC (Request for Comments) son los documentos técnicos que definen buena parte de los estándares de internet, así que tener uno dedicado a la historia de foo ya es de por sí simpático.
El detalle que lo redondea: se publicó el 1 de abril de 2001. Es decir, es uno de los tradicionales RFC humorísticos del Día de los Inocentes anglosajón (April Fools’ Day). Aun así, recopila con bastante rigor las distintas teorías sobre el origen de estas palabras y la lista completa de variables metasintácticas.
Lo que pudo haber sido
Para terminar, una nota de “y si…”. En documentos antiguos del MIT se usaban también otras variables de relleno que nunca llegaron a triunfar: CROCK, GLITCH, POOT, TOOR, SNAP, CRACKLE, POP. Si la historia hubiera ido por otro lado, hoy estaríamos pasando un objeto CRACKLE a una función POOT.
¿Por qué ganaron foo y bar? La explicación más sencilla es también la más convincente: son cortas, fáciles de teclear y suenan bien juntas. En los tiempos de los teletipos y las primeras terminales, cada pulsación contaba, y nadie quería escribir variable_de_ejemplo_uno cuando podía escribir foo.
Conclusiones
foo y bar son el ejemplo perfecto de cómo una convención técnica puede no tener ninguna justificación técnica. No mejoran nada, no significan nada y podrían haber sido perfectamente otras palabras. Persisten por la misma razón que el número 42 como semilla: porque son una broma compartida, una contraseña cultural que dice “esto es solo un ejemplo, no le des más vueltas”. Y, de paso, esconden un cómic de los años treinta, unos ovnis de guerra y un club de trenes en miniatura.
Imagen de Willi-van-de-Winkel en Pixabay
Deja una respuesta