¿Qué es YAML?

1.1 Origen y significado de YAML Ain''t Markup Language

YAML es un formato de serialización de datos creado en el año 2001 por Clark Evans, Ingy döt Net y Oren Ben-Kiki.

Su nombre proviene originalmente de Yet Another Markup Language (Otro lenguaje de marcado más). Sin embargo, poco tiempo después los propios creadores aclararon que en realidad YAML no debe entenderse como un lenguaje de marcado, sino como un lenguaje de serialización de datos, y modificaron el acrónimo a:

👉 YAML Ain''t Markup Language (YAML no es un lenguaje de marcado).

Con esto quisieron remarcar que la intención principal no es dar formato al texto (como XML) sino representar datos estructurados de una forma sencilla, legible para humanos y fácil de procesar por las computadoras.

1.2 Diferencias con XML y JSON

YAML se compara habitualmente con XML y JSON, que son otros formatos muy usados para representar datos. Veamos las principales diferencias:

YAML vs JSON

  • Legibilidad: YAML está pensado para que sea más fácil de leer y escribir por personas. No requiere llaves {}, corchetes [] ni comillas en todos los casos.
  • Simplicidad: la estructura se define por indentación (espacios), lo cual hace que el archivo sea más limpio.
  • Riesgo de errores: la indentación incorrecta genera errores difíciles de detectar.
  • Compatibilidad: YAML es un superconjunto de JSON, lo que significa que cualquier documento JSON válido también es YAML válido.

Ejemplo de una misma lista de productos en JSON y YAML:

JSON:

{
  "productos": [
    { "codigo": 1, "descripcion": "Teclado", "precio": 15000 },
    { "codigo": 2, "descripcion": "Mouse", "precio": 9000 }
  ]
}

YAML:

productos:
  - codigo: 1
    descripcion: "Teclado"
    precio: 15000
  - codigo: 2
    descripcion: "Mouse"
    precio: 9000

YAML vs XML

  • Menos verboso: YAML evita las etiquetas de apertura y cierre que hacen que XML sea más extenso y difícil de leer.
  • Más cercano a la escritura natural: YAML usa indentación y listas con guiones (-), similar a cómo escribiríamos notas o esquemas.
  • Menos formalidad: XML tiene un estándar muy estricto con esquemas de validación (DTD, XSD), lo que lo hace más robusto en entornos que requieren máxima seguridad y validación rígida.
  • Practicidad: YAML es más rápido para configuración y lectura humana; XML sigue siendo más usado en contextos de interoperabilidad empresarial.

Ejemplo en XML vs YAML:

XML:

<productos>
  <producto>
    <codigo>1</codigo>
    <descripcion>Teclado</descripcion>
    <precio>15000</precio>
  </producto>
  <producto>
    <codigo>2</codigo>
    <descripcion>Mouse</descripcion>
    <precio>9000</precio>
  </producto>
</productos>

YAML:

productos:
  - codigo: 1
    descripcion: Teclado
    precio: 15000
  - codigo: 2
    descripcion: Mouse
    precio: 9000

1.3 Usos comunes de YAML

Hoy en día YAML se ha convertido en un estándar de facto para la definición de configuraciones en múltiples herramientas. Algunos de los usos más importantes son:

Archivos de configuración

En proyectos modernos, la mayoría de frameworks y herramientas usan YAML para definir parámetros de configuración. Ejemplo: application.yml en Spring Boot.

Infraestructura como código (DevOps)

Es muy utilizado en Docker Compose (docker-compose.yml) y Kubernetes (deployment.yaml, service.yaml). Permite definir contenedores, servicios, redes y volúmenes en un solo archivo legible.

Definición de pipelines de CI/CD

GitHub Actions, GitLab CI/CD y Azure DevOps utilizan archivos .yml para definir flujos de integración continua y despliegue automatizado.

Intercambio de datos estructurados

En APIs y microservicios puede emplearse para configurar esquemas, plantillas o datos iniciales. Aunque JSON sigue siendo más popular para transmisión de datos, YAML se prefiere en los archivos de configuración que los acompañan.

En resumen: YAML es un formato de datos pensado para ser simple, legible por humanos y ampliamente adoptado en configuraciones y DevOps.