2008-09-17 18 views

Respuesta

9

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.

+0

Como dice "YAML no es un lenguaje de marcado!" ;-) –

4

Elegiría YAML si los documentos necesitaban ser editados o creados por humanos. Solo un pensamiento.

7

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.

1

¿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.

0

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)

Cuestiones relacionadas