Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
Matzにっき(2006-08-14)
[go: Go Back, main page]

«前の日記(2006-08-13) 最新 編集

Matzにっき

<< 2006/08/ 1 1. 「Rubyのメッカに」と松江市長,研究・交流拠点「オープンソースラボ」開設
2. U-20プロコン作品応募数
3. 第39回情報科学若手の会
2 1. Ruby Book Sales Pass Perl
2. 「自分だけは大丈夫」,セキュリティ対策を妨げる「正常化の偏見」
3 1. svk(1:21:41)
4 1. 日経Linux 2006年10月号
2. Pickaxe2 8/25発行
3. SciRubyInterviews/BilKlebAndBillWood
5 1. 岡山
2. 「しばらく待て」
3. 「there must be a reason」
6 1. 日曜
7 1. 早朝、ラジオ体操
2. オープンソースマガジン 2006年10月号
3. オープンソースは自由に使えると勘違いしていませんか?
4. RUBY ROUC
5. 一般人はプログラマなんて目指しちゃいけない、死ぬことになる
8 1. 1.8.5 preview3
2. 神々の失墜、崩壊するコピーワンス
3. 平和
9 1. 1.8.5 preview3
2. Rastデータベース壊れる
10 1. 会議
2. HyperEstraier対応
11 1. 論文
2. 帰省
3. おばあちゃんち
12 1. morqメンテ
13 1. 山口支部
14 1. Ruby on Rails will ship with OS X 10.5 (Leopard)
2. Segmented Garbage Collection
3. XMLのメリット、デメリット
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 >>
Dr.Web 予測するアンチウイルス 販売開始一周年!
ユーザ・サーバ数が無制限のライセンスも低価格でご利用いただけます。

2006-08-14 [長年日記]

_ [Ruby] Ruby on Rails will ship with OS X 10.5 (Leopard)

LeopardにはRailsやらRubyGemsやらが標準添付されるという話。

OSXはますますRuby(Rails)的開発環境になるなあ。

そろそろMac OS Xを入手して、Rubyの主要開発環境とすべきか。 とはいえ、先立つモノが...。

_ Segmented Garbage Collection

夕べ、布団に入ってつらつらと考えていると、 (また)GCの新しいアイディアが湧いてきた。 で、その場でメモしておいたのだが、 一晩寝てから考えると、そんなに性能は出ないような気がしてきたなあ。

実際に実装してみないとわからないけど、批判的モードの目で見ると、 ライトバリアのコストと、 リメンバードセットの(空間)コストが馬鹿にならないような気がしてきた。

まあ、時間作ってダメもとで実装してみるかなあ。

_ XMLのメリット、デメリット

XMLのメリット・デメリットについて改めてまとめてある。

問題はメリットの方。ここであげられているのは以下のもの。

XMLとその関連技術をひととおり学んだら、XMLを使用する際のメリットとデメリットを自分なりにあらためて整理しておくことをお勧めする。
  • データ公開の容易さ

    XML はHTMLと同様にWebとの親和性が高く、データをWeb上に公開することが容易である。そして公開されたXMLデータに対しては、URLの入力により簡単にアクセスできる。データを利用する側では、公開されたXMLデータをいつでも取り込み、有効に活用することができる。

  • データの再利用性

    XML をアプリケーションやシステム連携の際の共通フォーマットとして利用すれば、データの再利用性が高まる。例えば企業内の既存システムには、さまざまなデータが蓄積されているが、XMLフォーマットを活用することで、社内ネットワークを通じてイントラネット上でデータを表示することができる。つまり、データの2次利用が容易にできる。

  • データの拡張性

    現在公開されている RSSデータに対して、既存の要素とともに、これまで使用されていない新しい要素を追加することができる。既存のアプリケーションでは既存の要素のみを処理し、新しく作成されるアプリケーションでは、既存の要素とともに新しい要素も処理できる。このようにXMLフォーマットには拡張性がある。

  • データの長期保存性

    XML データはテキストで記述することができ、特定のOSやアプリケーションに依存せず、データを長期保存する際に適している。また前述のようにデータに拡張性があることは今後長期にわたってデータを扱ううえでの運用上のメリットであり、データの長期保存性を向上させる。

さて、このメリットのいずれも「XMLならでは」ではない。 プレーンテキスト、S式、YAMLなどでいけない理由はない。

この記事は一応は「XMLのプロ」による記事なのだと思うのだが、 それで改めてメリットを紹介するのに、この程度のメリットしか出てこない というのはどういうことなんだか。

XMLの「本当のメリット」ってなに?

(追記)

いろいろと反応があって嬉しい。 「XMLの本当のメリット」について、いろいろな意見をいただいた。 せっかくだからまとめておこう。

なお、独断と偏見によってあらかじめ分類している。

  • 非技術的(政治的)なもの

    頭から否定するわけではないが、あまり感心はしないものが多い。

    • 捺印ナビリティ(zundaさん)
    • 仕様が決まっていること。スタンダードであるという事(takahashimさん、苺さん)
    • 頭文字が"X"なのが格好いい(ほるほるさん) - 意外と重要なことかも
    • 標準と思われていて皆が使うから(MMXさん)
    • とりあえず流行っちゃってること(uruさん)
    • namespaceの仕様が標準化されている(るとさん)
    • API(DOM)が標準化されていて普及しているのが大きなメリット(ikemoさん)
  • XML独自の利点ではないもの

    そういう利点はあるかもしれないけど、別にXMLでなくてもいいよね、というもの。

    • 構造のあるデータが書けること(すずきひろのぶさん)

      別にS式でもYAMLでも書けますよね。拡張性のあるテキストのマークアップという意味(テキストが主、マークアップが従)ならSGMLの系譜を否定しませんが、データ記述や設定ファイルにまでとなると話は別です。

    • プログラミング言語に依存しない(maedaさん)

      YAMLもJSONも依存しませんね。

  • その他
    • タグの意味が標準化されている(maedaさん)

      XMLのタグの意味はごく一部(preludeとか)以外は標準化されていないんじゃないでしょうか。標準化されているのはXML文法を利用した規格(SVGとか)ですよね。それでは「野良XML」を説明できません。

    • 誤り訂正に強い?(tamotoさん)

      そういう話はありますね。でも、デメリットを上回るメリットかどうかは疑問です。

マインドシェアと標準化について

「XMLは流行ってるから」とかいう理由を否定するつもりはない。 けど、技術者としては(この「Matzにっき」のような場所では)、政治的な思惑を離れて本音ベースで「これこれこういう技術的メリットがあります」というような話がしたい。

その点、「標準化されている」というのは、 実際には「流行ってる」と同じようなことを表現していても、 技術者的に納得しやすい(よく使われているからこそ標準化されるわけで)。 もっとも、「標準化されていないと使えない」という話になれば、 RubyもPHPもPythonも使えないわけで。 Javaもちょっとだけ怪しい(最終的には私企業の仕様だから)。 その点ECMAに提出されたC#は意外にも安心だ。

逆にこれらが使えるという環境であれば、 ある程度安定していれば「標準化されているかどうかは関係ない」とも言えるかもしれない。

namespaceとDOMについて指摘してくださった方もいらっしゃるが、 「野良XML」のほとんどはnamespaceを使ってないような気がするし、 DOMも結局はそのフォーマットに対するアクセスAPIがあるかどうか というだけのような気もする。

言うほどそんなに人は言語やライブラリを渡り歩かないし。

本日のツッコミ(全26件) [ツッコミを入れる]
_ あらいしゅんいち (2006-08-18 04:27)

HTMLと似ている、とか。

_ zunda (2006-08-18 04:39)

捺印ナビリティ?

_ Ayato (2006-08-18 05:12)

RubyCocoaも搭載されるようですよ。
WWDCのCocoaブースではRubyの事を絶賛してたそうです。

_ すずきひろのぶ (2006-08-18 08:13)

データが構造を持てること。マークアップランゲージの一般的な性質。

_ まつもと (2006-08-18 08:13)

あらいさん、zundaさん。

HTMLに似ているのは技術的にはメリットになりませんよね。
今やHTMLを直書きする人はどんどん減ってますし。

「捺印ナビリティ」はありそうな話ですが、これも技術的ではないですし。

結局、「XMLには技術的にはたいしたメリットはない。メリットは政治的なものだ」ということなんでしょうか。それはそれで否定しないんですが、技術的なメリットがあるフリをするのはフェアじゃないと思います。

_ まつもと (2006-08-18 08:14)

Ayatoさん。
「Ruby絶賛」ですか。嬉しいなあ。

_ すずきひろのぶ (2006-08-18 08:18)

なんか書いている途中でサブミットしてごめん。で、マークアップランゲージ一般の性質なんだからXMLでもYAMLでもかまわない。XML等のメリットでしょう。S式は面倒なのでかんべんだな。むかしはデータ構造が記述したいがために本当にS式で書いていたりしたから。

_ まつもと (2006-08-18 08:29)

「構造のあるデータが書けること」がメリットなのはわかります。
が、それを人間が読み書きすることを第一に考えるのであれば数ある構造化テキストの中でもXMLは繁雑ではないかと。それこそS式以上に。
あまりに読みにくいので結局機械で読み書きする手段を提供しているのが現状ではないかと。

_ maeda (2006-08-18 10:25)

S式等に比べたXMLの利点は「タグの意味が標準化されている」「プログラミング言語に依存しない」とかじゃないでしょうか。つまり、相互運用性。

_ maeda (2006-08-18 10:26)

また、XMLの主な用途は機械による読み書きであって、人が書くことを意図していないと思います。

_ すずきひろのぶ (2006-08-18 10:34)

マークアップランゲージはどれも似たようなものだと思うけど。多くのユーザは既にHTMLなんて手で書かないし。80年代の頃にSGMLが出ていて、まったく同じことをいっていた。歴史の繰り返しを観ているようだ。S式はですね、Lispになれていたらいいんだけど。たとえばcannaなんて初期設定ファイルを読むために内部にlispインタプリタを用意していたんだけど、あの頃はプログラマー側はそんなのが普通の感覚だった。でも普通のユーザには意味不明。ちょっと可哀想だな。XMLもスキーマ定義の仕方で読みやすくもあり、読みにくくもありといえるといえる。理想的なDTD定義をして「簡単だ」ということもできるし、ひどい定義を指して「わけわからん」といえる。そこがある意味、落し穴だと思う。

_ takahashim (2006-08-18 10:45)

XMLのメリットは仕様が決まっていることではないでしょうか。
YAMLはいまだworking draftしかないような気がします。

_ MMX (2006-08-18 10:47)

XMLの「本当のメリット」,
QWERTY配列キーボードと似ている、標準と思われていて(マインドシェア)
皆が使うから、そこに集積のメリットが獲得できた。
人が読み書きする場面では、XML互換の簡易構文を提案が絶えません
(行数 水ぶくれは、誰の目にも明らか)
例:XSLTXT - the XSLT compact form
http://www.zanthan.com/ajm/xsltxt/index.html
スキーマの簡易構文もいくつか あります。

_ uru (2006-08-18 11:47)

とりあえず流行っちゃってること

_ ikemo (2006-08-18 12:23)

個人的にはAPI(DOM)が標準化されていて普及しているのが大きなメリットかな。どの環境でもこれさえ知ってればXMLを読み書きするプログラムは書けるので。

_ tamoto (2006-08-18 12:53)

誤り訂正に強い?
http://www.cuspy.org/blog/2006/05/30/

_ ると (2006-08-18 14:02)

takahashim氏と似ているのですが、namespaceの仕様が標準化されているのは大きな利点だと思います。
これにより安心して拡張することができます。

_ masao (2006-08-18 16:00)

なんでいつもお約束の「ユニコード標準に基づく国際化」が出てこないのでしょうねえ。
# YAMLはUTF-8限定なのがイマイチ。。。

_ kin (2006-08-18 23:35)

XML禁止。プレーンテキストのみ可。
となったら不便に思うことはないでしょうか。
テキストが送られてきた。この文字は何の属性だろう。
それを送り手受けてで決めておこう。そういう発想は
でてくるはずです。決めようとしてやってみているところに価値があると思います。(メリットといえると思います。)
(YAMLとかと比較した場合のメリットはまた別の観点になりますね。)

_ (2006-08-19 00:32)

スタンダードであるという事
賛同する人が多い事がメリットだと思います。

_ ほるほる (2006-08-19 16:28)

頭文字が"X"なのが格好いい。

_ roku (2006-08-19 19:35)

SGMLやXMLは、部屋を整理しようと思って収納家具を買い過ぎて部屋が狭くなっている感じ。

_ 野分 (2006-08-20 03:20)

……ちょっとまじめに比較してみましょう。突っ込み歓迎します。

・対プレーンテキスト
 ○木構造を表現できる
 ×<>をエスケープする必要がある。

ていうか別物でしょう、これ……。同列に語るのはちょっと……


・対S式
 ○標準化されている(文字コードやエスケープなどの扱いも含めて)
 ○『属性』という特殊な要素を扱える
 ○エラー検証能力が高い(閉じタグに名前が付いているから)
 ×タイプ量が増える
 ×パースしづらい

いいとこ取りしたSXMLなんかもありますね。


・対YAML
 ○インライン要素が扱いやすい
 △YAMLはデータ構造の詳細まで規定しているのに対し、
  XMLは木構造を作る部分までしか規定していない
  #あくまでメタ言語。
  #そのかわり、XMLは周辺規格も充実しているわけですが。
 ×読みにくい

『YAMLはXMLに改良を加える』
http://www-06.ibm.com/jp/developerworks/xml/030124/j_x-matters23.html
の序文でも記載されていますが、XMLはより汎用的なメタ言語、
YAMLはデータ構造に特化した言語ということなんでしょうね。

_ 名無し (2006-08-20 08:29)

>また、XMLの主な用途は機械による読み書きであって、
>人が書くことを意図していないと思います。

これよく言われますけど、SGMLから派生した言語って皆
機械に読ませるにはやたら文法が冗長でなおかつ
機械が読みにくい文法になってませんか?

極端な話機械に読ませるのが主な用途なら
バイナリデータの仕様を統一すればいい話ですし。

_ tsekine (2006-08-20 12:18)

個人的には、現時点では X Schema が標準化されてることがメリットでしょうか。XML で XML のフォーマットが規定できるというのは、体系としての美しさという点で重要かと思います。

ただ、技術的なメリットとは激しく言い難いですね。それだけ XML がオーバースペックであることの証明だと思います。

「野良XML」に関しては、極論すればそれは「XML っぽいもの」だったり、単に『XML を扱えるライブラリ』で扱えるファイル程度の意味しかないでしょう。「野良XML」を比較対象に持ち出して技術の優位性云々を言うのはこの場では『この「Matzにっき」のような場所では』不公平だと思います。

_ tsekine (2006-08-20 12:19)

個人的には、現時点では X Schema が標準化されてることがメリットでしょうか。XML で XML のフォーマットが規定できるというのは、体系としての美しさという点で重要かと思います。

ただ、技術的なメリットとは激しく言い難いですね。それだけ XML がオーバースペックであることの証明だと思います。

お名前:
E-mail:
コメント:
本日のTrackBacks(全1件) [TrackBack URL: http://www.rubyist.net/~matz/tb.rb/20060814]
_ memolog:XML とか YAML とか (2006-08-19 02:19)

メタ言語から作られた言語を車輪の再発明することなしに使えることだと思う。

本日のリンク元
アンテナ
検索
以前の日記へのリンク元
アンテナ
検索


RSS feed meter for http://www.rubyist.net/~matz/ Creative Commons License This work is licensed under a Creative Commons License.