XML vx (HTML+CSS)

【最初にお断り:そろそろボロが出る頃だと思うので、間違ってるところ(特にHTML+CSS+JS:もう何年かいじってないのよ)があったらツッコんでください。】
えーと、かなり既出な意見だと思うけど。
まず、将来的なwidget/gadget作者数から言うと、どう考えてもHTML+CSSの圧勝になるでしょう。
現在、Konfabulatorの公式Galleryにwidgetを登録している作者の数は559人*1。登録していない自分専用オンリーを自作する人なんかまで含めてもせいぜい1000人にも満たないと思うんだけど、どうだろ? 「Mac用の一シェアウェアにすぎない」ってことを考えると、そこそこにすごい数字だと思うけど、それでもHTML+CSSを書いた経験のある人の数の足下にも及ばないと思う訳で。

次に、どっちが見やすいかというと、個人的*2にはKonfabulatorの方に軍配を上げますな。最初から「DAみたいなもの」だけを意識してるんで、なんと言うか構造/階層が単純なんですよ。
Konfabだと基本的に大抵のものは基礎になるところ(widget)の直下にあるオブジェクトとして扱うんで*3

ってな感じ。
これに対してDashboardだとwindowをベースにして

  • window
    • document
      • image*4
      • element

で、imageをいじろうと思ったらKonfabでは

  • image
    • src
    • width
    • hOffset(左端の位置:cssでいうleft)

Dashboardでは

  • image
    • src
    • width
    • style*5
      • left

で、えこひいきバリバリにKonfab有利なコードを一つあげると

hogeImg.src = "hoge.png";
hogeImg.width = 100;
hogeImg.hOffset = 10;

document.images["hogeImg"].src = "hoge.png";
document.images["hogeImg"].width = 100;
(document.images["hogeImg"].style.width = "100px";)
document.images["hogeImg"].style.left = "10px";

ってな程度には*6ややこしいでしょう。

ただし不公平はイクナイので、textとelementの比較もつけとく。

hogeTxt.data = "HOGEHOGE";
hogeTxt.style = "bold";

document.getElementById("hogeTxt").innerHTML = "<B>HOGEHOGE</B>";

もちろん後者はcss的とは言いがたいけど、そういうことも出来るわけで、見やすさはともかくこれはいろいろ出来そうな予感。
document.writeとかもあるし、widget/gadget作りにおいては、多分HTML+CSSの方がはるかに変態的なコード「も」作れるでしょう*7

まぁKonfabulatorに慣れちゃった立場から言うと「widgetはHTMLと違って『文書ありき』ってわけじゃないのに、『文書構造と見た目を分離する』って何よ?」とか「なんでimageのsrcとleft(=hOffset)の階層が違うのよ?」とかが、エレガントに見えない部分になってるのは確かなんだけど、でも共通規格と整合性がとれるとか、潜在開発者数が無茶苦茶増えるというメリットと天秤にかけたなら、十分受け入れる理由にはなると思うのです。
ただ、もうちょっと別の視点からいうとRSSのようにXMLで成功してる例もあるわけで、Konfabがそっちを目指すというのは十分に「有り」だとも思うのです。ただしそのためにはクロスプラットホーム化を進めて「widget markup langauge」とでも言うべきものの、デファクトスタンダードとしての立場を勝ち取れるかどうかというのが今後ますます大事なのではないかと。

*1:この人が最新の登録者 http://www.widgetgallery.com/?author=559

*2:「一応はKonfabulatorとweb用のJavaScriptの両方で遊んだことのある人」って位置づけで

*3:この構造のせいか、現バージョンではwidgetにある全オブジェクト数を調べたりってのが出来なかったりするという不満があるのよね

*4:上との対比のためあえてelementと並記してます

*5:ここでもstyle.widthとかいじれるんだよね…

*6:慣れれば大差ないと思うけど、XMLでもHTML+CSSでもこれから一から覚えないといけない初心者にとっては差が出るかな?

*7:そういうのに弱いんだよなあ>俺