
Xiでの関数の定義は一応出来たが,その形式は実行をするScheme言語と言うか,関数の理論であるラムダ計算に縛られたものになっている.Schemeや同種の言語Lispで書くプログラムで,ラムダ形式で関数を書くことはほとんどないと言えるので,なぜこのような形式にこだわったのかかなり疑問が残る.Lispだと通常は
(defun square (x) (* x x))
のように書くのだが,Xiではコンパイラ作成を楽にするためにラムダ式の形式にしたのだろうか.それとも言語モデルの教科書に素直に従ったのだろうか.ラムダ式が悪いわけではないが,通常はコンパイルして関数をラムダ表現にすることが多く,ラムダ式のままでは記述が煩雑なので通常のユーザがちゃんと理解できるのか非常に疑問が残る.
上記の段落を書いた後に作成者に質問してみたところ,ラムダ式に固執したのは,拡張構文で書かれたプログラムの落とし先,そしてX-Pathの対応などによることが今になってわかった.ユーザには拡張構文でプログラムを書けるように環境を整備していくつもりであるようだ.そうであれば,開発期間中に拡張構文で書けるプログラムについてももっと十分に検討してもらいたかったと思う.
また,プログラムと処理するデータの記述を分離することで,プログラミングの見通しを良くし,プログラミング言語もそれに対応する機能を持って発展してきたが,XiではXMLデータの中にプログラムを埋め込む方式になっている.これが果たしてユーザにとって見通しの良いことなのかということもかなり疑問に感じる.他に良い方法があるのではないかと思うのだが,この点についてはPMは解答を持っていない.
・未踏性: B
Xiに関数型言語機能を入れようということであり,XMLを対象とした関数型言語 (例えばXDuce,CDuce),関数型言語でXMLを処理する研究も行われているので,特に未踏性があるようには思えない.唯一,どういう風にXMLの形式で関数を書けるかというところだけが少し未踏か?
・先進性: B-
開発成果では既存の技術の焼き直しであり,技術的な先進性はほとんど認められない.
・実用性: B
作成された関数の言語仕様と処理系を,通常のXMLプログラマが使えるのかというと少々疑問が残る.形式的な問題に走り,ユーザを置き忘れているように感じる.拡張構文で書けるプログラムについて,もっとしっかり検討が行われれば,実用性の評価は高くなったのだが.
・社会への影響: A-
XML業界において賛か否かの議論の対象となりえる.実際に複数の著名なXML研究者から批判的意見があったので業界に対する影響力はあったと判断する.
(A: 高い,B: 並,C: 低い)
|