Ich stimme Sergio zu; YAML bietet ein Format, das von Menschen leicht bearbeitet werden kann, aber auch eine gute Möglichkeit, Datenstrukturen sauber darzustellen.
YAML neigt dazu, viel menschlicher lesbar zu sein, IMO.
YAML ist eher eine Datenserialisierungstechnik als eine Auszeichnungssprache.
YAML bietet vor allem menschliche Lesbarkeit und Kompaktheit. Oh, und es wird weitgehend über verschiedene Plattformen und Sprachen unterstützt.
YAML ist sehr beliebt in der Ruby-Community, wo es hauptsächlich für Konfigurationsdateien in Rails und Merb verwendet wird.
Ich würde YAML wählen, wenn die Dokumente von Menschen bearbeitet oder erstellt werden müssten. Nur ein Gedanke.
Für welche Art von Anwendung / Verwendung ist YAML am besten geeignet?
Das ist schwer zu beantworten. Stattdessen werde ich versuchen, einige Beispiele dafür zu geben, wofür YAML nicht ist (meiner bescheidenen Meinung nach).
%Vor%Dies ist ein Fall, in dem es sinnvoll ist, sowohl Attribute als auch Werte in XML zu mischen. YAML verfügt nicht über Attribute, daher müssen Sie Typinferenz verwenden, um zu entscheiden, was ein Datum / Ganzzahl / String / etc ist - dies schlägt bei komplexen oder benutzerdefinierten Typen fehl.
%Vor%Dies ist ein Fall, in dem die schließenden Tags in XML eine Menge Vorteile bieten. Wenn Sie die obigen Daten in YAML formatieren würden und nur Einrückung verwenden würden, um 'scope' bereitzustellen, wäre es viel schwieriger zu sagen, wo die Dinge anfangen und enden.
Hier ein Zitat aus der offiziellen YAML-Spezifikation auf yaml.org
YAML ist hauptsächlich eine Datenserialisierungssprache. XML wurde so entworfen, dass es abwärtskompatibel zur SGML (Standard Generalized Markup Language) ist und daher viele Design-Einschränkungen aufweist, die YAML nicht teilt. Das Erbe von SGML geerbt, ist XML entworfen, um strukturierte Dokumentation zu unterstützen, wo YAML genauer auf Datenstrukturen und Messaging ausgerichtet ist. Wo XML in vielen Bereichen ein Pionier ist, ist YAML das Ergebnis von Erfahrungen aus XML und anderen Technologien.
Ich benutze YAML als einen billigen und einfachen Ersatz für das Schreiben einer domänenspezifischen Sprache (besonders in Fällen, in denen andere Entwickler Wartungsarbeiten durchführen; ich bin nicht sicher, ob ich es verwenden würde, wenn Nicht-Entwickler es beibehalten würden)