このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

Xionの主たる目的

Xionを何の目的で使いたいかというと、「リテラルのようなもんだ」と言ったわけですが(「JSON改」の「何が問題なのか/何をしたいのか」)、もう少し具体的に述べます。

毎度おなじみ、スタックの例を出します。例えば、MyStackImplが、5個の項目があって、最初と最後の項目が0のときアヤシイ挙動を示すとします。これを調べるのに、とりあえず、最初と最後が0になるように項目を5個積んだ状態を作り出す必要があります。


/* スタックを作る */
Stack stack = new MyStackImpl();

/* 目的の状態をセットアップ */
stack.push(0); // 1番目
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(0); // 5番目

/* これから調べる */
// ...

こういう状態セットアップのコードを書かないで、Stack [0, 1, 2, 3, 0]で済ましたいってことです。スタックに積むデータがもっと複雑で、5個じゃなくて100個だったりするとセットアップコードは大変です。Xionで書いてもそれなりの手間ですが、実行コードを書くよりはずっと楽だし、自動生成したり加工/保存などもやりやすいでしょう。

つまりXionの主たる用途は、「オブジェクト状態のテキスト形式による表現」です。まー、一種のシリアライゼーション・フォーマットですね。JSONは、JavaScriptに関してはほぼ完璧なシリアライゼーション・フォーマットですが、クラスのような型概念を持つ言語だと少し不便な面があるので、最小限の拡張としてタグ(型名)の前置を許したのです。