9.30.2006

foobar















Cualquier programador decente reconocerá foobar y sus hijas foo y bar como un metanombre, algo que sirve para denominar cualquier cosa contenida en un ejemplo:

void foobar(int foo, int bar)
{
printf("hello world, day %d, month %d",foo,bar);
}

Pero poca gente tiene idea de dónde se originó este metanombre. Según The Jargon File, el uso moderno de foobar comienza en las universidad de MIT y Stanford allá por los años 70. Rápidamente se extendieron y por eso encontramos que todos los ejemplos de programación las funciones o métodos se llaman foobar y las variables foo y bar. Para encontrar ejemplos patrios de metanombre nos referimos nuestro queridísimo pepe o pp para instanciar punteros.

Otro convenio habitual y que me disgusta sobremanera es utilizar la letra l para variables que denotan longitud de cadenas y arrays. Así, cuando se trata de hacer comparaciones de longitudes muchos programadores hacen cosas como int l1=12;int l2=13;
Para aquellos que utilizamos emacs con letra tipo courier, nos resulta poco ortodoxo comprobar que el compilador acepta que once es igual a doce y que doce es igual a trece.

Pero cuál es el verdadero origen de foobar. Todo indica a que se remonta a la segunda guerra mundial y el famoso FUBAR, Fuck Up Beyond All Recognition(o Repair, según las versiones). Muchos recordaréis como el pelotón de Salvar al soldado Ryan tomaba el pelo a Tom Hanks con la palabra, haciéndole creer que era una palabra alemana. (En la versión doblada al castellano era FOMARE, obviamente con la misma traducción).

¿Y a qué viene todo esto? Pues a que ando reflexionando qué es lo que define a un programador nato, qué tipo de conocimientos demuestran que un tipo sirve para programar. Y creo que conocer anécdotas como la historia de foobar podría ser una pista importante.