1/14/2005

XMLはinteroperabilityのためだけに*ある*

私はなぜXMLを愛していないか ~ 言語屋の視点から
まつもとさんの主張は、以前の僕の主張と似ている部分もある。出力と入力の双方が暗黙の合意(ランタイム・VMが同じとか)を持たない状況下で、流れるデータが自分の型を知らないことは悪でしかないと思う。

「Javaアプリケーションのスクリプト言語」っていうのがよくわからないんだけど、Javaプログラミングにおいてさまざまなフレームワークやらアプリケーション・サーバーやらがXMLからJavaソースを動的に生成してくれることで、Javaを動的に見せかける機能を持っている、ってことなのかな。それなら、今さらこの便利さは捨てられない、という点と、濫用されているということには同意。

なぜ濫用かといえば、そのXMLは最初からJava、もっといえばそのファイルを読む意図を持って作られたアプリケーション専用だからだ。XMLは出力時には想像できなかったプロセッサによって処理されることを許容しなければならないデータのためのものだと思っている。

makefileが広く浸透しているのにANTがXMLを採用した理由はなんでしょうか?ANTのページによると、makefileはタブだのスペースだのにこだわるからいやだって書いてあるけど、ANTのXMLだって書き損じがあれば動かない。ANTは、XMLには外部のファイルを参照する機能が標準であるにもかかわらず、とう独自のタグを濫造している。

まつもとさんの日記のコメント欄にあるとおり、僕もXMLはinteroperabilityのためだけにあると思う。まつもとさんは「あるべき」なら同意するが、今は「ある」といえる状況ではないと返答していて、それにも同意。でも、心構えとして、XMLはinteroperabilityのためだけにあるのだと思い込むことには意味がある。それはXMLで書くべきデータかどうか判定するときに一番最初に考えるべきことだから。

で、声を小にして言いたいのは、XMLデータの冗長性と思考停止した開発者のコンビネーションは、たとえそれがXMLで書くべきデータであったとしても、データの利用者に最悪のタグ地獄を招くことがあるってこと。あーあ。最初からやり直させてください(苦笑)。

0 件のコメント: