新千葉 ガーベージ・コレクション

FPGA マガジンやインターフェースで書けなかったこと等をちょぼちょぼ書いてます。@ryos36

ごったにをすてて関数型へ

結局、オブジェクト指向データベース的ごった煮はダメなのだと思う。Web はあくまで可能な限りスタティックに作るべきだ。私の知っている、とんでもないウェブサイトは DB に HTML を部品として記録していく。そしてアクセスがあるたびに HTML を動的につくる。そもそも DB(リレーショナル) の必要性がない。履歴をとりたいのなら履歴管理のソフト(RCS, CVS, SVN, git)をつかえばいいのだ。ついでに書くと、そのサイトは製品リストも DB に登録し動的にページを作っている。製品リストを見せるたびに HTML を動的に作るから、肝心の製品リストを表示するのがとてつもなく遅い。データベースの使い方を間違っているとんでもない例だ。
あと、そのサイトは JavaScript などを屈指して、wiki 的に HTML を編集できるようになっている。wiki 自身はすばらしい技術だと思うが適用を間違うと、作業効率を落としてしまう。結局、担当者はサイトの HTML エディターを使わずに、HTML を表示させて、手元の Windows のアプリの HTML エディターにコピーし編集する。編集が終わったらまたコピー&ペースト。実にばかげている。細かい、ライブラリ化ができないので、更新も迅速にできない。ところどころに誤った過去の情報が散在し、収拾がつかない状態となる。(なっている)当然、これなら 10,000 円もしない HTML Editor のほうが機能も効率も上なのである。
ついでに書くと折角 DB をつかっているのに在庫管理がなされていない、、、、

ごったに的

私も最初、ごった煮的な Web 構築法がいいのかと思っていた。全然ダメ。wiki のほうが簡単でデータの出し入れもスムーズにいく。へたにみょうちくりんな DB をいれられると、結局、コンテンツがデータとして生きてこない。小さな技術系の会社の Web は妙な GUI ツールを入れずに、自前でやったほうがよい。関数型でなくてもよい。ライブラリ化できコンテンツが生きてくるなら市販の安いエディターで十分なのだ。

vi + lisp

cl-who と vi の相性がすごく良い。いま、結局、cl-who にいくつかの自前の関数を書いて管理している。ライブラリ化も簡単だ。なにしろ、who 形式の HTML の中に lisp の関数が書けてしまう。JSP が一生懸命 JavaXML をなじませようとしたり、WPFXML と CS を分離しようとしたりと、涙ぐましい努力をしているが(どちらも素晴らしい技術だとは思うが、、、、とりわけ WPF は素晴らしい)、結局、lisp のデータと関数が同じ形式という武器には太刀打ちできない。ただし、、、普通のエディターを使っていてはだめだ。括弧の対応が簡単にわかり、カットやペーストができるエディターじゃないといけない。Emacs でもいいかもしれない。私は vi。
例えば

(:h2 "タイトル")

こんな漢字で書くわけだが、最初の ( で %d と押せばカットできる vi は非常に楽だ。みなさんどうやって Editor を使っているか知らないが、強力な Editor なら

<h2> タイトル </h2>

と h2 にカーソルがあたっているときにきっと対応したタグの終わりを認識できると思うが、、、、しかし、多くの人が一生懸命マウスやカーソルの複雑なコンビネーションで編集しているのでしょうね、、、お気の毒としか言いようがない。
C/C++ もそうだけど、begin/end じゃない言語であるというは非常に作業効率にとって重要だな。xml も基本的に begin/end の焼き直しの上に、特殊ルール
なんてのもつくって、より複雑に物事をしてしまっている。括弧を受け入れるとこの複雑な世界から解放される。