XML a résolu l'échange de données mais a fait ressembler la configuration simple à du balisage de document. Les créateurs de YAML sont partis de la prémisse inverse : un fichier de données devrait ressembler aux données, et non à des balises enveloppant les données.

La spécification 1.0 décrivait YAML comme un langage de sérialisation Unicode inter-langages et convivial pour l'humain, destiné aux fichiers de configuration, à la messagerie, à la persistance et au débogage. Son astuce centrale était la structure visuelle : l'indentation pour la portée, les deux-points pour les paires et les tirets pour les listes.

Ce choix a parfaitement vieilli dans le DevOps. YAML.org le décrit aujourd'hui comme la norme de facto pour la configuration d'infrastructure dans des outils tels que Kubernetes, Docker Compose et Terraform. La fonctionnalité gagnante n'était pas la puissance ; c'était la facilité de relecture.

Laisser les données se montrer

L'indentation rendait les données imbriquées lisibles d'un coup d'œil sans balises de fermeture.

Les mappings, les séquences et les scalaires correspondaient aux structures natives des langages de script populaires.

Le texte brut rendait les configurations faciles à comparer, à relire et à coller dans la documentation.

Le format est resté indépendant du langage, de sorte que chaque outil pouvait l'adopter sans en être propriétaire.

Pour les formats édités à la main, la lisibilité n'est pas une décoration. Le format que les gens peuvent relire dans une pull request devient le format sur lequel les équipes se standardisent.

YAML est devenu un langage de configuration par défaut dans l'outillage cloud-native et les systèmes CI/CD. Sa lisibilité permissive a aussi apporté des pièges, mais la logique d'adoption a tenu : l'infrastructure a migré vers du texte que les humains pouvaient éditer.

VÉRIFIEZ LES SOURCES

Les sources

  1. YAML Ain't Markup Language (YAML) 1.0 YAML.org · yaml.org ·
  2. About YAML YAML.org · yaml.org
  3. In The Beginning The YAML Company · yaml.com