XML やその他の形式ではなく、なぜYAMLを選択するのでしょうか?
5 に答える
私はセルジオに同意します。YAML は、人間が簡単に編集できる形式を提供しますが、データ構造をきれいに表現するための優れた方法でもあります。
YAML は、IMO より人間が読める傾向があります。
YAML は、マークアップ言語というよりも、データのシリアル化手法に近いものです。
YAMLの主な利点は、読みやすさとコンパクトさです。ああ、さまざまなプラットフォームや言語で広くサポートされています。
YAML は Ruby コミュニティで非常に人気があり、たとえば Rails や Merb の構成ファイルでは、主に XML よりも優先して使用されます。
ドキュメントを人間が編集または作成する必要がある場合は、YAML を選択します。ちょっとした考え。
YAML はどのようなアプリケーション/利用に最適ですか?
これは明確に答えるのが難しいです。代わりに、YAMLが適していない例をいくつか示します(私の謙虚な意見では)。
<name type="string">Orion</name>
<age type="integer">26</age>
これは、XML で属性と値の両方を混在させると便利な場合です。YAML には属性がないため、型推論を使用して、日付/整数/文字列/etc を決定する必要があります。これは、複雑な型またはユーザー定義型では失敗します。
<user>
.... 10 lines of stuff
<sub-user>
...15 more lines of stuff
</sub-user>
.... 10 more lines of stuff belonging to user
</user>
これは、XML の終了タグが多くの利点を提供するケースです。「スコープ」を提供するためにインデントのみを使用して上記のデータを YAML でフォーマットすると、物事の開始点と終了点を判断するのがはるかに難しくなります。
参考までに、yaml.org の公式 yaml 仕様からの引用を次に示します。
YAML は主にデータのシリアル化言語です。XML は、Standard Generalized Markup Language (SGML) と下位互換性を持つように設計されているため、YAML が共有しない多くの設計上の制約が課されていました。XML は SGML の遺産を継承し、構造化されたドキュメントをサポートするように設計されていますが、YAML はデータ構造とメッセージングをより厳密に対象としています。XML が多くの分野でパイオニアであるのに対し、YAML は XML やその他のテクノロジーから学んだ教訓の結果です。
私は、ドメイン固有言語を作成するための安価で簡単な代替手段として YAML を使用しています (特に、他の開発者が保守を行う場合。非開発者が保守する場合に YAML を使用するかどうかはわかりません)。