• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Estadística
      • Calculadora del Tamaño Muestral en Encuestas
      • Calculadora de estadísticos descriptivos
      • Test de normalidad
      • Calculadora de contrastes de hipotesis
      • Calculadora de tamano del efecto
      • Simulador de Regresión Lineal con Ruido
      • Descenso de gradiente
      • Visualizador de PCA
      • Visualizador de Series Temporales
      • Simulador de Regresión Logística
      • Matriz de confusión e informe de clasificación
      • Visualizador de fronteras de decisión
      • Simulador de K-Means
      • Número Óptimo de Clusters
      • Simulador de DBSCAN
      • Detector de la Ley de Benford
      • Ajuste de Curvas
      • Calculadora de Matrices
    • Probabilidad
      • Calculadora de Probabilidad de Distribuciones
      • Problema del cumpleaños
      • Calculadora de Probabilidades de Lotería
      • Simulador del Problema de Monty Hall
      • La aguja de Buffon
      • Simulador de la Estrategia Martingala
      • Simulador de Cadenas de Markov
    • Finanzas
      • Calculadora de Préstamos e Hipotecas
      • Conversor TIN ↔ TAE
      • Calculadora DCA con ajuste por inflación
      • Comparador de tarifas de luz 2.0TD
      • Calculadora XIRR con Flujos Irregulares
      • Simulador FIRE (Financial Independence, Retire Early)
      • Frontera Eficiente
    • Negocios
      • CLV
      • Scoring
    • Herramientas
      • Formateador / Minificador de JSON
      • Conversor CSV ↔ JSON
      • Consultar CSV con SQL en el navegador
      • Extractor de tickets (OCR)
      • Comparador y Formateador de Texto y JSON
      • Formateador y Tester de Expresiones Regulares
      • Inspector de JWT
      • Generador y verificador de hashes
      • Calculadora HMAC
      • Codificador / Decodificador Base64 y URL
      • Conversor de bases numericas
      • Conversor de Timestamp Unix
      • Conversor de colores
      • Generador de UUIDs
      • Editor de expresiones cron
      • Conversor de unidades
    • Juegos
      • Tres en Raya
      • Nim con Q-Learning
    • Más
      • Método D’Hondt
      • Generador de Contraseñas Seguras
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • IA Generativa
  • Python
  • Pandas
  • NumPy
  • R
  • Excel

Curiosidad: De dónde vienen foo, bar y foobar

Curiosidades

agosto 13, 2026 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 4 minutos

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.

Tabla de contenidos

  • 1. Qué son foo y bar
  • 2. Origen de foo: un cómic y unos ovnis
  • 3. Origen de bar: el famoso FUBAR
  • 4. El salto a la programación: el MIT
  • 5. La curiosidad dentro de la curiosidad: un RFC para foo
  • 6. Lo que pudo haber sido
  • 7. Conclusiones

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.

Shallow copy vs Deep copy en Python: la mutación inesperada
En Analytics Lane
Shallow copy vs Deep copy en Python: la mutación inesperada

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

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 0 / 5. Votos emitidos: 0

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicaciones relacionadas

  • Shallow copy vs Deep copy en Python: la mutación inesperada
  • Cómo Proyectar Cuándo Alcanzarás la Independencia Financiera
  • Cómo Saber si una Diferencia Significativa es Importante
  • Curiosidad: “Wi-Fi” no significa “Wireless Fidelity”
  • Cómo Elegir el Test de Hipótesis Correcto para tus Datos
  • Qué significa realmente “calidad de datos”
  • Tuplas vs Listas en Python: parecen lo mismo, pero no
  • == vs is en Python: la diferencia que causa bugs misteriosos
  • Curiosidad: El puerto 80 y los números de puerto

Publicidad

Publicado en: Opinión Etiquetado como: Curiosidades

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Curiosidad: “Wi-Fi” no significa “Wireless Fidelity”

noviembre 12, 2026 Por Daniel Rodríguez

Shallow copy vs Deep copy en Python: la mutación inesperada

noviembre 10, 2026 Por Daniel Rodríguez

Cómo Saber si una Diferencia Significativa es Importante

noviembre 5, 2026 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Hoja de cálculo para repartir los escaños en base al método D’Hont Aplicar el método D’Hondt en Excel publicado el abril 14, 2021 | en Herramientas
  • Gráfico de Hexbin para el conjunto de 3000 datos Gráficos de Hexbin: alternativa a los gráficos de dispersión en Python publicado el marzo 20, 2023 | en Python
  • JSON en bases de datos: cuándo es buena idea y cuándo no publicado el febrero 24, 2026 | en Ciencia de datos
  • Código Propiedades de las funciones de hash criptográficas publicado el junio 22, 2018 | en Criptografía
  • Incluir un certificado en Express para servir el API mediante HTTPS (9ª parte de creación de una API REST con Express y TypeScript) publicado el diciembre 7, 2022 | en JavaScript

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.9 (11)

Pandas: Cambiar los tipos de datos en los DataFrames

Comentarios recientes

  • Daniel Rodríguez en Curiosidad: La Paradoja de Simpson, o por qué no siempre debes fiarte de los promedios
  • Hatepi en Curiosidad: La Paradoja de Simpson, o por qué no siempre debes fiarte de los promedios
  • Daniel Rodríguez en Los récords con asterisco, o la épica del titular sin contexto – El bestiario de los indicadores económicos absurdos (parte 8 y final)
  • Juan en Los récords con asterisco, o la épica del titular sin contexto – El bestiario de los indicadores económicos absurdos (parte 8 y final)
  • bif en JSON en bases de datos: cuándo es buena idea y cuándo no

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2026 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto