以前、とある単純なデータ処理を「VB でやれ」という指示があって、いろいろ勉強を始めた。で、入門書を1冊やり終えたのだけれども、結局、その程度では仕事に使えなかった。半角空白で区切られた12万行×30列くらいのデータがあって、3列目のデータが一定の値以上になっている行の1列目と5列目のデータを抽出する、というのが課題の具体的内容だったのだけれども、awk の本を10ページくらい読んだら簡単に解決してしまったのでガックリきたことを覚えている。ごく単純にいうと、簡単なことをやるには簡単なツールでいい、ということなのだった。しかし課題が深化するにつれて、awk ではいささか無理が出てくる。結局、perl で片がついた。
perl は確かに、簡単なことをするには awk と比べて大袈裟だ。しかし、目的次第ではその大袈裟なところが効いてくる。経験的に、簡単なものは簡単な目的にしか使えない、と私は思っている。XML の活用範囲が広いのは、単に XML を利用する側の問題であって、XML 自体はつまらないものだ。XML が単純なものだから、XML を扱えるいろいろなアプリケーションが登場したわけだけれども、XML そのものだけでは何の役にも立たない。単なる静的なデータに過ぎない。HTML も、そう。WWW の素晴らしさ、というのは実のところ、HTML 自体の素晴らしさではない。XML や HTML のような例でもって、シンプルさと高度な利用方法を両立することは可能だとかおっしゃる方が出てくると、ちと困る。
単純な仕組みで高度な作業をするのって、ものすごい天才スキルが要求されるよね。
と otsune さんが書いていらっしゃるけれども、まさにその通りだと思う。awk に耐えられずに perl を勉強したのは、まさにそういう理由だった。awk をマスターすれば、私が音を上げた程度の課題は、難なく解決できたのだろう。しかし、私には無理だった。
ところで、これだけ大勢の人が言及したのは、高林さんがUnix 上で広く使われているツールとしてはTeX, Emacs, sendmail, bind, perl, gnuplot, procmail などは、役に立つツールであると同時に、その 複雑怪奇な仕様によって長年に渡ってユーザを苦しめ続け、バッド ノウハウの温床として悪名が名高い。
と、名指しで書いたこともひとつの要因であるように思った。
ちなみに私は TeX(注:私が使ったのは正確には pLaTeX だから、結城さんの定義では「グッドラッパー」にあたるものしか扱っていないことになる)と Emacs と perl は少しだけ触れたことがあるけれども、いずれも何の不満もなかった。これらには、シンプルな目的を実現するシンプルな方法が用意されていて、そんなに非難されるようなものとは思えない。
Web デザインにおけるクロスブラウザの問題とか、そういった本来の技術仕様と関係のない部分における手間は、なるほど、なければないに越したことはない。しかし高林さんが挙げたのは、そういう例ではなかった。私は pLaTeX も Emacs も perl も基幹部分についてはよく考えられたツールだと思っている。わけもなく奥が深い
わけではない。おそらく、もっと整理することはできるのだろう。しかし、複雑怪奇
はいくらか改善できるとしても、奥深さは解消しようがないのではなかろうか。