このサイトの更新はしばらくいい加減になっていたわけだが、なんで更新が止まったかというと、その「作りの悪さ」に困っていたから、というのが一番の原因であった。
もともとこのサイトはかなり早い時期(7年位前?)から、HTMLの表示部分と中身を分けて管理すること、いわゆる「データの分離」を行ってきたのであるが、RSSだブログだといった形で情報を提供するにするには、それだけではどうにもならないのである。
10年も前にさかのぼれば、個人のウェブサイトはスタティックなHTMLファイルが普通だった。ダイナミックな処理をするプログラムを書くとしても、必要な作業はせいぜいデータの格納方法を決めることと、データを読み込んで整形して表示することくらいだった。データはCSVファイル(カンマ区切りファイル)であったり、あるいはRDBだったりするだろうが、そのデータの編集には、別途他のアプリケーションを利用すればいい。CMS(コンテンツ管理システム)の必要はあまりなかった。簡易CMSと言えなくもない掲示板のログだって、不具合があれば直接エディタで編集するものだったわけだ。ということは、かなり昔からデータの分離を行っていたこのサイトは、当然裏側で山ほどのデータファイルを抱えていたわけである。
ブログスタイルのページを生成しようとすると、30個くらいのXMLやTSV(タブ切りのテキストファイル)を読み込むことになった。日記のファイルは個別に分かれているし、トップページのイラストの履歴とか、アーカイブに入れたイラストの説明文だとか、その他の更新情報を格納したファイルだとか、イベントの参加ログだとか、まあとにかく、ものすごい数になる。毎回これらをパースしてはいられないから、当然、RSSやブログのための中間ファイルを生成することになる。かなりエレガントじゃない実装になった。以前、その実装の汚さと動作の鈍重さから、蛇蝎のごとく忌み嫌った、とある日本製のブログシステムと、ほとんど変わらないような状態になっていた。
大昔からパッチを当て続けて使ってきたこのサイトの管理システムは、エディタのマクロとか、アップロード用の画像を生成するスクリプトとか、実際にアップロードするスクリプトとか、データをパースするプログラムとか、サイト全体で考えると、恐竜のように肥大化しすっかり煩雑で萎え萎えなものになっていた。
仕方ないので、CMSをゼロから作り直して、古いデータはある程度コンバートしてRDBに流し込むことにした。CMSを作るってのは、情報を完全にゼロからデザインするってことでもある。いまさら新しく作り直すのは車輪の再発明だといえばその通りかもしれないが、その過程で考えられることは多かった。
なんといっても、CMSというバックエンドを作る方が、表側のサイトとして見える部分を作ることより、圧倒的にめんどくさい。

図1. 自家製CMS画面(ブログ管理)

図2. 自家製CMS画面(画像管理)
10年前は、まだ常時接続が多くはなかったから、ウェブに載せる具体的なデータの部分はオフラインで処理することが多かったと思う。以前俺が公開していた、Excelなどの表計算ソフトで作ったデータを処理してリンク集にするためのスクリプトも、そういう方針であった。
常時接続が当たり前になった2000年くらいから、ウェブ上のCMSでデータを操作したいという欲望が強くなってくる。当然、ウェブサイトはデータを操作するツールごと作らねばならない。ここら辺の時期に、ユーザと技術者とが完全に分断したんじゃないかなぁ。普通の人がCMSを作るのは無理だ。当然、誰かが作ってくれたCMSを利用するだけになる。多くの技術者も、自分でCMSをとやかくする気は、かなり失せた。ある程度以上の技術者にとって、ウェブ用のCMSを自分で実装することは全然難しいことではない。だが、あまりにも工程が面倒くさい。ウェブは、サービスの提供者と利用者とに綺麗に分断された。ウェブは、「作る世界」から「使う世界」に変わったのだ。これが「ブログの普及」という言葉で表される現象だろう。
ほとんどの人が、誰かが作ったお仕着せのCMSを使うことに何の不安も疑問も恐怖も感じないこと。それが「Web2.0」の特徴の1つなんだと俺は思う。
ウェブ自体も、ティム・リーが作ったお仕着せの仕組みだといえばその通りだけど、彼は出来るだけユーザーから中立的な仕組みを作ろうとする努力を欠かさなかった。『Webの創世』で彼はこう述べている。
私はCERNにやってきた数多くの開発者が、情報を体系化するのに「役に立つ」システムを押し付けてくるのに立ち会った。彼らはこういうふうに主張するのだ。「このシステムを使うには、すべての文章を4つのカテゴリに分割するだけでよい」とか「それぞれのデータをWordWonderful文書としてセーブしさえすればよいのだ」とかである。私はそういった提案者が次々と、憤慨した研究者たちによって炎の中で打ち倒される姿を目撃した。というのも、これらのシステムの開発者たちは、研究者たちの仕事をシステムに適合するように強制的に再編成しようとしたからである。私は誰もが受け入れることが可能な共通した決まりに従ったシステムを創造する必要があった。これは、でき得る限り何も決まりがないというのに等しいことを意味する(p. 27)
だからhttpは、仕様も実装も限りなくシンプルだ。
ブログはどうだろう。CMSは、定型のフォーマットに流し込むための定型のデータを求める。インタフェースはどれも似たようなものになる。そのお陰で書く側も見る側も分かりやすくなったし、サイト内で迷子になることも少なくなった。でも、CMSは、かなりのバッドノウハウの習得をユーザに求める。複雑怪奇なWikiの文法はその好例であろう。そしてCMSは、HTMLを利用して実現可能な表現より、ずっと狭い範囲でしかアウトプットしない。ユーザにできるだけ多くのことを許すように作られては、いない。
ブログは言論の開放なんだっていう言説は、伊藤穣一を嚆矢として社会学系の学者からもよく出てきたけど、それはある程度正しいがやっぱり半分は嘘だ。誰かが作ったシステムという、他人の手のひらの上で踊るコトも、確かに言論の自由ではあるだろう。でもそれは、言葉が起こせる範囲での変革だ。書籍に情報を載せることと、根本的には変わりはない。しかし、新しい情報システムを自由に作れることというのは、文字通り世界をひっくり返しかねないことだ。その昔インターネットに胸躍らせた本質はそこであって、言論の自由のレベルじゃ変革の可能性が一段違う。情報システムが世界をひっくり返すなんてアホかという、昔の佐藤俊樹みたいな反論を試みたい人は、GoogleやWinnyやSkypeのことでも考えてくれればいいと思う。
世間が、お仕着せのCMSを利用することが「ブログ」や「インターネット」だと思っているとしたら、それには抗ってみるべきだ。CMSをゼロから作り直すってのは、ブログを書くだけじゃなく、ブログがどうできるのか、httpはどういう仕様なのか、Apacheの実装はどうなっているのか、OS って何なのか、CPUってどう動いてるのか、そういう「下のレイヤ」へ興味を持つことの意味を、Web2.0で浮かれる世界の中で考えるには、良い機会だった。
やっぱ時々は車輪の再発明しないと技術も教養もつかないのかなぁ、とか考えながら、CMSを作ること自体は結構楽しかったのでした。
著作者 : 未識 魚
最終更新日 : 2006-10-21 17:36:30