YAMLやJSON以前のシリアライズ方法は?

YAMLやJSONが登場する以前は、さまざまな方法で構造化データをシリアライズしていました。以下、代表的な方法をいくつか紹介します。

1. XML

Extensible Markup Languageの略。構造化データを表現するためのマークアップ言語です。

  • 特徴
    • 可読性が高い
    • 拡張性が高い
    • 多くのプログラミング言語でサポートされている

XML

<person>
  <name>John Doe</name>
  <age>30</age>
  <address>
    <street>123 Main Street</street>
    <city>New York</city>
    <state>NY</state>
    <zip>10001</zip>
  </address>
</person>

2. CSV

Comma-Separated Valuesの略。データをカンマで区切って記述するテキスト形式です。

  • 特徴
    • シンプルで軽量
    • 多くのソフトウェアで読み書きできる

コード スニペット

John Doe,30,123 Main Street,New York,NY,10001

3. プロトコルバッファ

Googleが開発したシリアライズフォーマット。

  • 特徴
    • 効率的なデータ転送
    • 言語に依存しない
    • 多くのプログラミング言語でサポートされている
message Person {
  required string name = 1;
  required int32 age = 2;
  optional string address = 3;
}

Person person = {
  name: "John Doe",
  age: 30,
  address: "123 Main Street, New York, NY, 10001"
};

4. S-expressions

Lispプログラミング言語で使用されるデータ構造。

  • 特徴
    • シンプルで軽量
    • 多くのプログラミング言語で実装できる
(name "John Doe")
(age 30)
(address (street "123 Main Street") (city "New York") (state "NY") (zip "10001"))

5. その他

上記以外にも、独自フォーマットや特定のプログラミング言語に依存したフォーマットなど、さまざまなシリアライズ方法が存在します。

まとめ

YAMLやJSONが登場する以前は、さまざまな方法で構造化データをシリアライズしていました。それぞれの方法にはメリットとデメリットがあり、目的に合った方法を選択する必要がありました。

近年は、YAMLやJSONのような汎用性の高いフォーマットが主流となりつつありますが、特定の状況では従来のフォーマットが依然として使用されています。