もちろん、描画そのものはクライアントで行いますけどね。

先日も書きましたが、モデリングツールのように複雑なものをブラウザ上で描画する際には、SVG や VML を使う必要があります。私が悩んでいるのは、SVG や VML をどこで生成するかです。Client(JavaScript)で生成するか、Server(Ruby)で生成するか。

Client で生成するメリットは、(おそらく)Server に負荷が集中しないことです。SVG や VML を出力するだけなら、負荷という観点ではそれほどの影響がないような気もしているのですが。Server で生成するメリットは、描画ロジックを Server に置けるので、Client なしでも描画が行えることです。Server が定期的に画像ファイルを所定の場所に出力するなんてことができそうです。書いたモデルを blog に張るような場合は、モデルを変更できる必要性がないので、静的コンテンツにしたい場合が多そうです。
あ、後もうひとつメリット発見。私は JavaScript よりは Ruby の方が慣れています。(^^;

うーん、どうしたもんだろ。

Posted by あかさた
Kodougu は Web 上で動作するモデリングツールです。今私が頭を悩ませているのは、クライアントにどの技術を選択するのかです。ざっくりと以下のような候補が考えられます。
・ JavaScript(VML or SVG)
・ Flash
・ JavaApplet

今の世の中の流れを考えれば、間違いなく JavaScript です。ただ、モデリングツールのようなアプリケーションを開発する場合、ベクトル形式の描画処理が必要になってきます。JavaScript の世界では、ベクトル形式の描画の決定的な方法が存在しないのです。ベクトル形式の描画用の技術としては、VML や SVG が存在していますが、これがめちゃくちゃブラウザ依存の世界で、とてもですがまじめに実装する気が起こりません。

Flash や JavaApplet は、モデリングツールに必要な機能はそろっているのですが、世の中の流れからは逆行しちゃいますし、ブラウザだけでモデリングができるという Kodougu の利点と若干相容れないことになってしまいます。
# それに私はあまりこれらが好きじゃないですし。

この辺の事情から Gliffy も Flash で実装されているんだと思うんですよね。はぁ、どうしたもんだろ。

ちなみに、未踏の提案では JavaScript と言っちゃったので、最終的には JavaScript で実装しちゃうのだと思います。クロスブラウザな設計にして、未踏の期間中は IE だけで動作って感じですかね。うーん・・・。

Posted by あかさた