アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
「毎々お世話になっております。仕様書を頂きたく。」「拝承」 -- ある会社の日常
争点 (スコア:1, 興味深い)
uim側の最大の不満は、IIIMFのセキュリティの弱さだったのだろうか。
(でも、IIIMFのサーバをuserで動かせば良いだけのような気がしたり)
それとも、設計の汚さ?
プロジェクトが欧米主導で進められていることに対する感情的な問題の方が、
大きかったりするんではないかと言ってみる。
Re:争点 (スコア:1)
> Bad Design賞を差し上げたいような作りになっていますが、
とゆーことで、設計の汚なさなのでは。(中を見たわけではないので、どこがどうマズいのかは判断が付きませんが)
> プロジェクトが欧米主導で進められていることに対する感情的な問題の方が、
んー、主導している人は日本人 [openi18n.org]なので、そーゆー問題ではないのではないかと。
確かに所属企業はSunとかIBMとかRedhat
Re:争点 (スコア:1)
とりあえず、このXMLらしきもの [gnome.org]は悪寒がしました。
あとはシンクライアントを前提としたclient/server設計になってるところとか。
具体的な問題は中身を読んでないの
Re:争点 (スコア:0)
単なる疑問なのですが、何故悪寒がするのですか?
Re:争点 (スコア:2, 参考になる)
XML形式で実装してるようですが、これが酷い仕様だからです。具体的に問題点を挙げると、
・醜い
CやJavaやSchemeなどの既存の言語と比べると非常に見にくいです。
<lt></lt>が不等号の「<」とかいうのは想像付くのですが、これで何かプログラムを書けと言われたらキレます。
・XMLらしくない
とりあえずプログラミング言語らしき部分は目をつぶるとしても、それ以外の箇所も酷いです。
<deftable name="romakana" from="mtext" to="mtext"></deftable>でローマ字→ひらがなの対応を定義
Re:争点 (スコア:1)
ソースコードの見やすさがアスキーアートによって制御されている状況はもう古いと思います。いいかげんモデルとビューを分けるべきです。
EclipseやMathematicaやSqueakやVisualStudioのような統合開発環境がビットマップディスプレイ上に見やすく整形して表示すればいいだけの話です。実際Mathematicaは数式を綺麗に表示してくれます。それでいながら数式の構造を厳密に知りたいと思えば"関数名[引数]"の形で表示させることもできます。
C++でテンプ
Re:争点 (スコア:1)
> XMLらしくないというのは同意ですが、醜いというのはスタイルシートでどうとでもでき得ることでは。
> いいかげんモデルとビューを分けるべきです。
発
Re:争点 (スコア:1)
「生のXMLの文法がプログラミング言語に向いていないのでXMLでプログラムを書くアプローチは酷い仕様である」
ということに対する反論、さらに
「逆にスタイルシートを使うことを前提とすればXMLでプログラムを書くことは多くのメリットがある(『メリットはほぼ皆無』などではない)」
ということです。
>発言が矛盾してますよ。
いや、XML部分(モデル)はアルゴリズムを記述するのに専念してソースの読みやすさなどのビューの部分はスタイルシートで調整しろという意味です。
現状ではソースコードにアルゴリズムと
なんというか (スコア:0)
それとXMLでプログラムを書くアプロー
Re:なんというか (スコア:1)
Re:なんというか (スコア:0)
なんか微妙に軌道修正してるような。
> 問題はPCELや似たような言語の設計が酷い仕様と言えるかどうかです。
構造化すべきところが構造化されていない時点でダメヴォキャブラリ確定でしょうに。
Re:なんというか (スコア:1)
「XMLらしくないというのは同意」と最初から言ってまして、問題はXMLをベースにしたプログラミング言語が良いかどうかです。
Re:なんというか (スコア:1, 興味深い)
ずいぶんもりあがるもんですねぇ。なんだか重箱の隅という気もしますが。
## この分ならdefpatternなんて出したら、もっと大騒ぎされそう。
面白いから続けてみましょうか。
実は、私も、deftableを考えるときに、
1 ... <item><key>K</key><val>V</val></item>
2 ... <item>K V</item>
3 ... <key>K</key><val>V</val>
4 ... K V
の場合を検討してみた記憶があります。
3はまず最初に却下されることになりました。
XPathのツリーモデルでも何でもよいので、deftableの内容モデルを木構造で考えて
見ます。すると、key要素とval要素が内容モデルでリストとしてぶら下がっている形になります。
S式で書いたほうがよければ、((key . K)(val . V)...)みたいなイメージかな。
属性リストの変形みたいな感じですね。この方式のメリットは、せいぜいK, Vに型情報を
与えることができるぐらいなんですが、それなら、1のほうがよほどメリットがあるでしょう。
1, 2は、ほとんど連想リストと同じ構造です。
4は、ほとんど属性リストと同じ構造をしています。
そういうわけで、まぁ、はじめは1がよいかなと思ったわけです。
で、1で実際のテーブルを書いてみました。数千個の漢字テーブルを作って
みたところ、サイズが大きく膨れ上がってしまいました。
(XMLを採用した時点で、そんなことは諦めろとかいわれそうですが。)
ただ、deftableは、deftableは偶数番目と奇数番目の型がすべて一致する必要が(実装のために)
あるので、正直なところ1は冗長な気がします。また、keyにはidentity constraintが必要なので、
さらに、ここで一つ一つに型情報を入れたところで「正しい」deftableを構築する役には、
XMLとしての情報がそれほど有用とはいえません。結局のところ、PCEL定義の型情報を
必要としてしまうのです。
すると、一番シンプルな4を採用してもそれほど問題はないだろう。なにしろ、属性リストは
何年も利用されているリスト構造です。また、空白でリストを作るのは別にXMLでは非常に
一般的な方式で、コンセンサスも十分に得ている表現でしょう。
というわけで、4をとりあえず実験的に採用しました。
異論はあるでしょうけど、これはそれほど悪い判断でしょうか?
ちょうど偶数個を強要するリスト構造は気持ち悪い?
とはいえ、こういうパターンは、RELAX NG tutorialでも例に
挙げられているんです。
まぁ、こういう空白によるリスト構造は許せないという人はいるんですよね。
「XMLで文字列内に構造を作る」というのは確かにad-hocな側面もあります。
(RELAX NGでも、少々ややこしい扱いになってますし)
実のところ、私はそういう人の気持ちもわからないでもないです。でも結局、
重要なのは、コンセンサスを得た利用方法かどうかということですね。
「XMLらしい/らしくない」というトピックは、すさまじくcontroversialであることは、
某標準化団体を見ていれば疑問の余地はないでしょうね。
ところで、実用的な面からも、4にはdrawbackがないわけではないですね。
何だと思います?
そういうわけで、今どうするかと聞かれれば、keyやvalを属性で表現することを
選びそうです。<item key="" val=""/>というように。
from himi
Re:なんというか (スコア:0)
>> どうかです。
現状では「酷い仕様」といわざるを得ないよ。
だってあなたのいうそのPCEL用の素敵な統合環境なんて、
今は存在してないんだから。
Re:なんというか (スコア:1)
ああいえばこういうですか? (スコア:0)
Re:ああいえばこういうですか? (スコア:1)
しかし、そこまで実装にこだわるのならば部分的ながら実装をいくつか。
JEX [sourceforge.net] JVM用のプログラムをXMLで書けるようにしたものです。javaからのデコンパイラが開発中です。
Meta Environment [www.cwi.nl]言語の文法とセマンティクスを記述したり、それを使ってプログラムを評価するシステムです。プログラムは文脈自由文法のプログラミング言語からATermというツリー形式に変換されます。XMLとして出力することもできます。
また.NETではC#, VB.NET, JScript.NETとCodeDOMとコモンランゲージ間で相互変換を行うことができます。
>まあ醜い云々は仕様の良し悪しを決める要素の一つに過ぎないでしょうし、他の要素を考慮に入れて判断する必要もあるかもしれません。あるいはそもそも本当に文法的に醜いのだろうかという疑問もあるかもしれません。ですが、少なくともここまでのところ、あなたはそれらについては何も言及していません。
XMLの生の文法がプログラミング言語として醜いかどうかは人と場合によります。私がXSLTのスタイルシートを書く場合はemacsのxml-lite-modeのおかげもありストレス無く記述できます。XSLT1.0のセマンティクスの不備から来るストレスはありますがXMLであるということに起因するストレスはありません。しかしXMLで複雑な数式を書くのは骨が折れそうです。そして読むのはもっと骨が折れるでしょう。まだ使ったことのないXML専用エディタを使えばまた良いのかしれませんが。
そして文法が人と場合によっては醜いという点がスタイルシートによって制御できる以上仕様の良し悪しは別の要素によります。そしてXMLを使うことの利点は何度も言っているようにXMLならば簡単に扱うことができるという点です。lispやCodeDOMやATermなどの同等のものでも良いのですが。
Re:なんというか (スコア:0)
PCELはそういう仕様を持った言語システムなの?
明らかにちがうっしょ。むしろ不本意ながら
ad hocにでっち上げたものとhimiさん自身が言ってるじゃん。
それともあなたは、
表記がXMLであるということを理由に
その言語を元にしたスタイルシートをベースにした
環境が将来実装できる可能性があるから、
その言語は酷くない仕様であるはずだというの
Re:ああいえばこういうですか? (スコア:1)
図言語としてのUML2において、UML表記はUML MOF
モデルの1表記法にすぎず、他にテキスト表現もある。
UMLのアクションセマンティクスはセマンティクスのみが
定められた言語でシンタックスはベンダが独自に決めていい。
古くはlispのM式とS式のちがいみたいなもんで、
新しいアイデアでもない。金物表現ってのもあったな。
AppleScriptは日本語でも表記できるんだっけ。
XMLをその種のモデルの交換形式に用いるのも
ごく自然な考え方だ。
しかし、その交換形式にスタイルシートを適用するで表示できるとか、
emacsのxmlモードで手で編集するだのは、
いいアイデアとはぜんぜん思わない。
XMLを隠蔽した専用の編集モードがあるならいいけど、
そうなるとXMLであることがなんなのか。
DOMで操作できることがそれほど便利かにゃ?
交換形式としてはXMLが便利だけど、
それは当たり前の話じゃない。
Re:なんというか (スコア:1)
PCELの仕様が良くないこと自体は同意しています。
しかしPCELの仕様が良くないことの根拠としてXMLであることが上げられている点へは同意していません。そこに反論しているだけです。私が擁護しているのはXMLやそれと同等のものをベースにしたプログラミング言語(や環境)です。
Re:ああいえばこういうですか? (スコア:1)
そういうのがあるとアスペクト指向的なことも簡単にできてしまいます。
emacsのxmlモードなどはあくまで例で使う側が勝手に使いやすいものを使えばいいです。そして使いやすいものを選べるというのが利点です。
ある人はXMLを直接扱いある人はXMLを完全に意識せずに使うことができます。
また、スタイルシートは表示だけでなく入力系も制御できる(スタイルシート言語の仕様と実装によりますが)ので完全にXMLを隠蔽することも可能です。
Re:ああいえばこういうですか? (スコア:1)
その編集が元のツリーに反映されるようなものはありますか?
XMLを完全に隠蔽した状況で。
いや、私の主張は
-XMLは人間が書くもんではない。
-プログラミング言語は人間と機械(もしくは人間同士)の
意思疎通のための死活的に重要なインターフェースである。
-そのためXMLを前面に出したり存在を意識させるような言語は、
プログラミング言語ユーザとしてのプログラマに対して失格。
XMLが完全に隠されていればまあ許す。
-隠すことを前提に内部データ構造や、
処理系内部で受け渡す中間表現として、
あるいは処理系をカスタマイズする際に見せるデータ構造として、
XML(および関連技術)を選ぶのはあるかも。
GCCのRTLのように。でも、便利に思えないな。
XSLTでオプティマイザ書きますか?いずれにせよ、実装方式の
問題であって比較的閉じた問題。
-プログラミング言語に個人ごとに自分用のスタイルシート
をカスタマイズして使うほどの、表記がぜんぜん変わるほどの
自由度を持ったカスタマイズ性は過剰で不要。
レビューはどうするんだ。メールに引用もできんぞ。
マニュアルや教科書を書くためにもまずある程度無難な
(フォントとかの細部はいいとしても根幹部についての)
標準表記/標準スタイルシートが必要。
んで、私だったらその標準表記以外は使わん。
です。
Re:ああいえばこういうですか? (スコア:1)
重要なのは必要な時に比較的簡単に使えるということです。
内部表現に簡単に触れる言語や環境の例としてMathematicaや.NETの他にMaximaがあげられます。MaximaはLispで書かれていますが通常それは隠蔽されていて普段使うときにLispを意識することはありません。しかしいざとなればすぐにアクセスすることができます。これならばLispをガリガリ書ける人でも「Lispは人間が書くもんではない。」「Lispを前面に出したり存在を意識させるような言語は、プログラミング言語ユーザとしてのプログラマに対して失格」という人でもだいじょうぶです。
>任意のXSLTで変換後のものに対してGUI編集し、
>その編集が元のツリーに反映されるようなものはありますか?
>XMLを完全に隠蔽した状況で。
そのXSLTというのはコード変換のためのXSLTですか? それともスタイルのためのXSLTですか?
コード変換のためであればマクロ展開と同じようにマクロを展開した後のコードをいじって元のコードをいじろうとは普通しません。確かにできないこともないですしできれば嬉しいことも多いのですがそのときは逆変換を行う変換を書くかXSLT変換後の言語にまかせることになります。
スタイルのための変換であれば入力系の制御はXSLT変換後の言語の範疇です。
>プログラミング言語に個人ごとに自分用のスタイルシートをカスタマイズして使うほどの、表記がぜんぜん変わるほどの自由度を持ったカスタマイズ性は過剰で不要。
開発チーム内で共通のスタイルを使えば良いはずです。今でも言語やコーディングスタイルは統一しているはずです。
C言語やPerlだって読みづらいコードのコンテストが行われるぐらい自由に書けますが普段そんなコーディングはしません。
しかもアルゴリズムとスタイルを分離しておけば古いコードを受け継いだとかでチームのコーディングスタイルが変化した時でも柔軟に対応できます。
メールへの引用もXMLコードとスタイルシートを渡せば良いだけでは? そのスタイルシートを使うかどうかは読み手次第ですし。
VBによるGUIデザインについてのメールであればフォーム定義ファイルを添付して受け手側のVBでフォームとして表示して見るなりエディタで直接見るなりするでしょう?
標準のスタイルは確かに重要です。.NETであればそれはC#になるでしょう。でも問題によっては別の言語を使った方がよいこともあります。
そしてスタイルシートでカスタマイズするということは言語全てを変えてしまうという使い方以外にも「関数の定義をリストアップする」とか「ループを折り畳む」とか「データーをグラフにして表示する」とか「関数の呼び出し関係をグラフにする」とか「式の型を表示させる」とか「特定の条件にあった式をハイライトする」とか「関数を一時的にインライン展開して表示する」とか「例外処理を一時的に隠す」と言ったコーディングの補助も含みます。
Re:ああいえばこういうですか? (スコア:1)
> それともスタイルのためのXSLTですか?
あなたが「(プログラミング言語の表現として)XMLが便利だ、
その根拠(の一つ)としては、XSLTが使えるからだ」と主張し
ていますが、その便利に使えるといるXSLTの使い道におい
て使っている範囲のXSLTです。
ちなみに私はモデルにXMLを使うこと以外の方法でモデルとビュー
を分けることについては良いと思っていますよ。
「モデルにXMLを使う」ということの意味が意味不明だけどね。