種別[column] cocolog:9846668
セクションJRF の私見:雑記
日時2006年02月07日 23:26:30
元URLhttp://jrf.cocolog-nifty.com/column/2006/02/post_11.html
タグ[近況] [情報工学・コンピュータ科学]

オブジェクト指向にできないテキストフィルタの難しさにヘタれる

現在作っているプログラムは昔ながらの「テキストフィルタ」になるのですが、少し処理が複雑なため、あちらを直せばこちらにバグが出るといった感じになっています。今の GUI のソフトのように簡単なプログラムを積み上げてくという感じにはなっていないので、ちょっと大変です。

そういえば、学生時代にオブジェクト指向言語 SmallTalk でファイルを読み込んで処理するプログラムを書いていると、エラい先生に、オブジェクト指向は小さなプログラムを積み上げるもので、そんなに大きな関数を作ってはいけないと注意されたことがあります。

「だったら、お前、再帰バリバリの関数呼び出しで parser を書いて見ろよ」といいたくなりましたが、まぁ、オブジェクト指向に大きな関数は作るべきでないのは事実だし、何を作っているかの説明も面倒だったので、黙っていました。

だからこその XML なんでしょうね……。ツリー構造に落としてしまえば、まさに再帰関数の呼び出しに都合がいいし、タグの定義部は別実装だから変数束縛のスコープも考えなくていいし。

私は XML 自体は好きなんですが、あの冗長で読みにくいソースをユーザーに書かせるというのには強い抵抗があって、そのくせ、WYSIWYG の GUI バリバリの Office 製品も好きになれないんです。

だって、プログラマにとっての推論のしやすさが、ユーザーにとってのわかりやすさになるとは限らないし、ユーザーにとっての見た目の良さが、操作の簡単さにつながるとも限らないわけですから。

そういったわけで、エディタ内でだいたい自由にエディットすると、それと本質的には見た目が同じなんだけど、ちょっと見ばえが良い形に成型される……って辺りを狙ってるんですけど、私のプログラミングレベルでは難しいんですよ。

インデントの位置の変わった変わらないをどう判定するか、とか、リンクやイメージの埋め込みのために代入のような形式を認めるとしても lazy evaluation をどこまで認めるか、とか、イメージの再利用やサイトとの同期をどうするか、とかね。実装でもいろいろ迷うし、微妙なつじつま合わせがあって結構タイヘン。

更新:06/02/07
初公開:2006年02月07日 20:42:15

後方参照 (1 件)