Tras otro artículo que cargaba contra YAML por el problema de Noruega, PJB decidió comprobar qué dice realmente la especificación. El resultado es una larga arqueología de estándares basada en el archivo de la lista yaml-core, extraído de SourceForge con scripts propios en Python y cargado en Thunderbird.
El rastro de la especificación es claro. El borrador de diciembre de 2001 aún imponía tipado implícito obligatorio, pero en octubre de 2002 los autores cambiaron de rumbo. YAML 1.0 (enero de 2004) y 1.1 (enero de 2005) describen la resolución de etiquetas como específica de cada aplicación. YAML 1.2 (julio de 2009) definió por fin esquemas y recomienda un esquema Core sin booleanos yes/no ni enteros en base 60.
Los correos muestran que los autores conocían los riesgos. Entre 2003 y 2007 repitieron que los cargadores genéricos debían tratar todos los escalares como cadenas, que el repositorio de tipos era una recomendación de portabilidad y que el tipado implícito de PyYAML era un remanente anterior a octubre de 2002.
El fallo ocurrió aguas abajo. La biblioteca Ruby Syck nunca recibió el aviso y entró en agosto de 2003 en la biblioteca estándar de Ruby con el comportamiento antiguo y roto. En un correo de junio de 2006, un autor de la especificación admitió que sabían de los errores de Syck, pero no querían aguarle la fiesta a Why. Para miles de desarrolladores Ruby, YAML cargaba «no» como booleano, y la realidad venció a la especificación.
La práctica de PJB sigue la intención de la especificación: en Space Station 14 los nodos YAML se analizan contra un modelo en el código, y los booleanos solo se convierten donde se espera un booleano. Su conclusión: la especificación no es del todo inocente porque sin implementaciones no significa nada, pero nadie es culpable en solitario. Fue un descarrilamiento a cámara lenta, conducido por unos pocos nerds apasionados en una lista de correo. Su veredicto final sobre YAML: está bien.




Comentarios
Aún no hay comentarios — escribe el primero.
Inicia la conversación
Sin cuenta ni contraseña — introduce tu correo y te enviamos un enlace de acceso de un solo uso. ¿Primera vez? Todo se configura automáticamente.
Tu valoración se aplicará automáticamente al iniciar sesión.
Revisa tu bandeja de entrada
Hemos enviado un enlace de acceso a …. Ábrelo en este dispositivo — esta pestaña te conectará automáticamente.
¿No llega nada? Mira en la carpeta de spam — y marca el correo como «No es spam» para que la próxima vez llegue directo.