¿Por qué elegir uno YAML en XML o en otros formatos?¿Para qué tipo de aplicación/utilización es más adecuado YAML?
Respuesta
Estoy de acuerdo con Sergio; YAML proporciona un formato que los humanos pueden editar fácilmente, pero también una buena forma de representar estructuras de datos de forma limpia.
YAML tiende a ser mucho más humano legible, IMO.
YAML es más una técnica de serialización de datos que un lenguaje de marcado.
Como dice "YAML no es un lenguaje de marcado!" ;-) –
Elegiría YAML si los documentos necesitaban ser editados o creados por humanos. Solo un pensamiento.
YAML Las principales ventajas son la legibilidad y la compacidad humana. Ah, y es ampliamente compatible con varias plataformas e idiomas.
YAML es muy popular en la comunidad de Ruby, donde se usa principalmente en preferencia a XML para los archivos de configuración en Rails y Merb, por ejemplo.
¿Qué tipo de aplicación/utilización es la más adecuada para YAML?
Esto es difícil de responder con claridad. En cambio, intentaré proporcionar algunos ejemplos de lo que YAML no es bueno para (en mi humilde opinión).
<name type="string">Orion</name>
<age type="integer">26</age>
Este es un caso en el que es útil mezclar atributos y valores en XML. YAML no tiene atributos, por lo que debe usar la inferencia de tipo para decidir qué es una fecha/entero/cadena/etc. - esto falla para los tipos complejos o definidos por el usuario.
<user>
.... 10 lines of stuff
<sub-user>
...15 more lines of stuff
</sub-user>
.... 10 more lines of stuff belonging to user
</user>
Este es un caso donde las etiquetas de cierre en XML proporcionan un gran beneficio. Si tuviera que formatear los datos anteriores en YAML, utilizando solo la sangría para proporcionar 'alcance', sería mucho más difícil determinar dónde comienzan y terminan las cosas.
Por si fuera poco, he aquí un fragmento de la official yaml spec at yaml.org
YAML es principalmente un lenguaje de serialización de datos. XML fue diseñado para ser compatible con el lenguaje de marcado generalizado estándar (SGML) y, por lo tanto, tenía muchas limitaciones de diseño que YAML no comparte. Al heredar el legado de SGML, XML está diseñado para admitir documentación estructurada, donde YAML está más enfocado en estructuras de datos y mensajería. Donde XML es un pionero en muchos dominios, YAML es el resultado de las lecciones aprendidas de XML y otras tecnologías.
utilizo YAML como un sustituto barato y fácil de escribir un lenguaje específico de dominio (en particular en los casos en que otros desarrolladores van a hacer el mantenimiento, no estoy seguro de que haría uso de ella cuando serían los no desarrolladores manteniéndolo)
- 1. ¿Qué tipo de Jfreechart es más adecuado para histogramas?
- 2. ¿Qué tipo de MySQL es más adecuado para la columna "precio"?
- 3. SQL espacial: ¿tipo de datos más adecuado para un cuadrado?
- 4. tipo de mime YAML?
- 5. ¿Es utf-8 adecuado para texto/tipo MIME simple?
- 6. ¿MapReduce es adecuado para mí?
- 7. ¿DDD es adecuado para todo tipo de aplicaciones?
- 8. ¿Qué CMS es adecuado para mí?
- 9. ¿Qué método de clasificación es el más adecuado para el procesamiento en paralelo?
- 10. ¿Qué tipo de herencia es más preferible?
- 11. ningún método adecuado para el error tipo
- 12. ¿Es CouchDB el más adecuado para lenguajes dinámicos?
- 13. ¿Cuál es más adecuado para Windows, git o mercurial?
- 14. ¿Qué algoritmo de deconvolución es el más adecuado para eliminar el desenfoque de movimiento del texto?
- 15. ¿Qué tipo de datos es adecuado para manejar datos binarios en el método ActiveX?
- 16. ¿Qué tan adecuado es un DVCS para el entorno corporativo?
- 17. Tipo de mime adecuado para los archivos de parche
- 18. Grails - Lift: ¿Qué estructura es más adecuada para qué tipo de aplicaciones?
- 19. ¿Es LLVM adecuado para idiomas paralelos?
- 20. ¿Google App Engine es adecuado para mí?
- 21. Compaginadora no hace tipo adecuado para Locale dado
- 22. ¿Es OpenGL ES adecuado para realizar animaciones esqueléticas?
- 23. ¿Qué tipo de bucle es para (;;)?
- 24. Es adecuado para un desarrollador sin servidor
- 25. ¿Es web2py adecuado para un gran sitio web público?
- 26. ¿Cuál es el elemento HTML5 más adecuado para "limpiar: ambos"; ¿Propósitos?
- 27. Plantillas de C++: cómo determinar si un tipo es adecuado para la subclase
- 28. ¿Qué es un reemplazo adecuado para el operador SQL Like para aumentar el rendimiento?
- 29. ¿El proyecto Lombok es adecuado para grandes proyectos de Java?
- 30. ¿Qué es un subobjeto para un tipo?
¿Podría aclarar de qué tipo de YAML está hablando? Parece que no es este: http://www.yaml.de/en/home.html. – JRoppert
enlace agregado para hacer esa distinción :) – fuentesjr