yaml, una alternativa para XML
yaml es un lenguaje de serialización de datos, una alternativa al lenguaje de marcado XML. Es muy interesante, y es muy útil usarlo por que es más legible para el ojo humano que un archivo XML. Está enfocado a la simplicidad. Vamos a ver un ejemplo tomado de la realidad, asà es como lucirÃa un archivo de mapeo de NHibernate si fuera escrito en yaml:

Si usas NHiberante, debes darte cuenta que esto es mucho más fácil de leer. Como se puede apreciar la delimitación es hecha por identación. Si conoces lenguajes como Python esto te resultará muy familiar. Por supuesto, esto no está soportado en NHibernate, pero quien sabe, quizás alguien quiere donar algunas horas al OSS y hacerlo
Quizás una notoria desventaja es que yaml no posee esquema (schema). Y podés darte cuenta de las caracterÃsticas que nos estamos perdiendo por esto, la más importante: validación de un documento yaml.
En .Net-landia no es tan popular, de hecho no lo es, pero en lenguajes como Python, Php, Perl, C++ se usa mucho. En el nuevo bebé de Google: Google App Engine, el cual tiene como lenguaje principal a Python (actualmente es el único lenguaje que soporta), usa yaml para los archivos de configuración.
Yo tambien pense que YAML config seria util para NHibernate cuando estaba jugando con google app engine y aprendiendo python.
Yet Another Markup Language?
se parece a json, y boo… (ok boo es .net)
que tan bueno es tener varias formas de hacer casi lo mismo?
Estaria bueno un chart haciendo comparaciones, ademas si es simanticamente compatible con xml se podria usar lo que ya hay para xml pero “verlo” de forma distinta
En el lado de .Net tenemos este parser, pero está muy olvidado:
http://sourceforge.net/projects/yaml-net-parser/
Habria que meterle un poco de mano
Bueno, ahora hice una copia de ese proyecto a mi SVN:
http://darioquintana.googlecode.com/svn/trunk/Yaml.Net/
Hice algunos cambios de namespaces, refactoring, reformateo de codigo, optimizacion para utilzar generics, agregué algunos tests.
Ahora hay que ver que hace falta para seguir. Me gustarÃa que se puedan crear clases demarcadas con atributos, para despues enlazar los archivos de datos en yaml directamente a esas clases.
Saludos
@GLM: se parece a JSON por que de hecho JSON es un subconjunto de YAML, no es un perfecto subconjunto por que yaml carece de soporte de caracteres. La mayorÃa de los parsers de Yaml parsean bien los Json-files.
Dario, estoy dando mis primeros pasos con DB4O, pero trabajando con VB .NET. Hasta ahora guardo en la BD y recupero todos los objetos (por ej. para cargar un combo o un grid), pero no estoy pudiendo trabajar con SODA para las consultas. Que me recomendas para hacer consultas con criterios, como lo hariamos con SQL. Probe con QBE pero es mas concreto y sin criterios.
Si tenes algun codigo de ejemplo te lo agradeceria.
Muchas gracias.
Pedro