XMLは型無し言語[rubyist.net]

Matzさんの日記。
Matzさんは以前にもXMLよりYAMLの方が1024倍良い理論[rubyist.net] をぶち上げておられる。
XMLは冗長で、サイズが増えて読みにくくてむかつくというのは、全世界の共通理解だと思うwのだけど、型無しだからむかつくというのは余り聞かない議論のような気がした。冗長な「タグ付け」はどちらかと言えば歴史的経緯だが、型無し(というか構造化と型の分離)はXMLの基本コンセプトなので、要するにXMLというコンセプト自体に対する批判だ。プログラムのデータ交換だったら.x形式でもいいじゃんという感じか。
確かに用途上は、SOAPエンコーディング vs complex type付き(と便宜上呼ぶ)RPC vs DOMで、結局RPCが優勢(.NET側が今でもDOMを強力に推してるのかはよく知らない)なわけだし、素のXMLで交換しましょう系のモデルより、型付きのプログラミングモデルに流れてると言えるかな。だったら最初から単なる言語として作れよ、みたいな気はする。
けど、その型の共通化に関しては、元ネタのCORBAはもちろんのこと、Web Service上でそれなりのラインを狙ってるはずのSOAPエンコーディングが見向きもされない現状、そもそも、この業界で(そしてあらゆる場所で)統一言語/統一型システムというのは難しいのだろう。そういうビジネス的社会的観点がマッチして普及しているという点でも、JavaXMLは似ているとも言える。そういう人間系の事情で変なモノを作るなという主張は当然だ。私は賛成しないけど。
また、スキーマ自体を機械的に読めるように作ってある点で、「乱立する統一言語」のインポーターをn対mで一つ一つ手で書くよりも、最終的には効率よくなるはずだ、という技術的観点も忘れてはいけない(CORBAと変わらないが)。まあ、だからと言ってアプリ側が何も考えなくて良くなるわけでもないし、今のクソAPIに付き合わされる方もたまったものではない。ただ、型無しだからダメだというよりは、あのやたらにでかい記述力は、APIがメタメタになる原因だから何とかしろという方が適切ではなかろうか。


個人的には、マークアップランゲージである必要は無いと思うが、構造型は別でeXtensibleである方がいい。だから、XMLからMLを抜いて、.xでいいじゃんと……(氏ね