2010年4月15日木曜日

XMLは「固い」とお嘆きの貴兄に、YamlとJSON。

ソフトウエア業界で、XMLを知らない人は、
21世紀の現代では居ないでしょう。
15年以上前の、発祥当時は、
知る人ぞ知る的な面が多かったのですが。

XMLは、端的に言えば、HTMLのイトコです。
厳密には、HTMLのXML準拠がXHTMLで?
XMLの複雑版(?)のSGMLが、だったか?

#調べてもらえば済む話なんで、本稿では正確さは目指しません。

不等号によるタグで、囲んだり挟んだりして、
データの階層構造を表します。
HTMLのFONTタグやらAタグやらが、
まさしくそうですよね。

しかし、XMLはエンタープライズ界隈発祥なので、
Javaと同じ業を背負っています。「固い」です。

XMLは、様々なソフトウエアの「定義ファイル」として
使われているので、どこでデモ見つかります。

http://technet.microsoft.com/ja-jp/library/ee909429.aspx


面倒臭そうでしょ?
とにかく文字が多い。ギチギチです。

エンタープライズ界隈で、コレを面倒だと言う人は居ません。
面倒なのはコレだけじゃないので、
麻痺しちゃってるんじゃないでしょうか。
もしくは、Eclipse等で編集します。

まあ、データ交換言語として発祥したので、
プログラムで生成する分には構いません。

手で書かせちゃいかんだろ、って話です。

データの構造を表すのに、何通りか方法が有っちゃうのも
混乱を招く&学習しにくくなる理由でしょう。

「XML技術者認定制度」って欲分からない組織もありますね。
仕 事を増やす仕事に絶望した!

Java業界は、Eclipseを使うしかない、から良いのですが、
pythonやらPHPやらは、Eclipseに依存は無いので、
わざわざxmlの編集だけに使う、って非合理的です。
#実際、流石の使い勝手ではあるのですが。

故に、xml専用の編集ツールも、幾つか存在します。


しかし、別のエントリでも筆者が何度となく申している通り、
手段の為に、別の手段を必要とするのは、回り道ですらありません。
仕事を増やす仕事に絶望した!

結論だけ言っちゃえば、既に別の選択肢が現れています。
データ型を絞り込む事で、記述の簡素化&再構築をしています。

javascriptベースで、サーバと通信するならjson
XMLとの比較も載ってるので、エラくあっさりしたのが判るでしょう。

javascriptやpythonの、静的データ構文に酷似してるので、
プログラマには非常に馴染みやすい形式の筈。

手で書くのも苦にはなりませんが、
javascript以外でも、変換関数が付属してたりします。

更に、手で書いてもラクな(それを目指した)
フォーマットもあります。yaml
サンプルを見ると「そういうことね」と思えるでしょう。

ここまでシンプルになれば、
CSVの代替として現実的でしょう。
見た目はもちろん互換性は無いけど、用途的にね。

CSVだったら、カラム順を合わせなきゃなりませんし、
ダブルクオーテーションを含むカラムの表現がアレだったり
カンマだったり、カラムの途中で改行してくれちゃったり
取り込みはかなり面倒臭いです。

yamlはデータ構造の表現が有るので、心配は要りません。

殆どの言語向けの実装があるので、
とりあえず設定ファイルはyamlにしちゃえ、
と言うのもアリです。