------------------------------------------
   Infierno yaml
   12 ene 2023
   ------------------------------------------

   Leo un artículo [1] sobre lo innecesariamente complicado que
   es Yaml.

   El caso es que estoy escribiendo un pequeño script en Python y
   dudaba en la manera en qué guardar la salida, barajando varias
   posibilidades así que esto me interesaba.

   Por un lado está el módulo pickle que es muy cómodo de usar
   pero me gustaría que los datos fueran visibles como texto
   simple. Python tiene un módulo para usar yaml que ya he usado
   para otros proyectos así que veamos los argumentos de Ruud van
   Asseldonk, que a mí, me han convencido.

   El atractivo de yaml es que *parece* muy fácil y en realidad
   su especificación [2] ocupa diez capítulos con unas cuantas
   secciones cada uno más la página de erratas. Tiene una
   revisión reciente (1.2.2 oct 2021) y la 1.2 difiere al parecer
   sustancialmente de la 1.1, los planes son que yaml evolucione
   activamente.

   Ruud señala varios problemas que os invito a leer en su blog
   indicando que ni siquiera un resaltado de sintaxis nos salvará
   de errores.

   Aunque señala varias alternativas a mi me gusta la
   principal: Json. Me ha ganado con su simplicidad, toda la
   especificación de Json son seis diagramas de tipo "vía de
   tren" (otra idea interesante por cierto) y lleva congelada casi
   dos décadas [4].

   Algunos puntos interesantes en la especificación:

   * Es fácil de leer y escribir para los humanos.
   * Es fácil de leer y generar para las máquinas.
   * Es independiente de cualquier lenguaje pero sigue convenciones
     familiares para programadores de C, C++, Python...

   Todo esto hace JSON un lenguaje ideal para intercambiar datos
   entre programas. A mi me ha convencido porque aunque lo
   conocía tenía ideas equivocadas sobre él. He hecho un par
   de pruebas con el módulo Python y creo que tengo hecha mi
   elección. Sí.


[1]: https://ruudvanasseldonk.com/2023/01/11/the-yaml-document-from-hell
[2]: https://yaml.org/spec/1.2.2/
[3]: https://www.ibm.com/docs/en/integration-bus/10.0?topic=diagrams-how-read-railroad
[4]: https://www.json.org/json-en.html