バッドノウハウについて、ふたたび

apkz2004-03-16


(3/22 追記)さらに書き直しました。→バッドノウハウと TeX と書籍組版

何度も同じことについて微妙に違ふことを書いてると頭が妙になりさうだけど負けない。→バッドノウハウと「奥が深い症候群」より引用。

バッドノウハウは、ソフトウェアの複雑怪奇な仕様が歴史的に引きずられ、根本的な改善は行われないまま、そのノウハウが文書によって受け継がれることによって蓄積が進行する。Unix 上で広く使われているツールとしてはTeX, Emacs, sendmail, bind, perl, gnuplot, procmail などは、役に立つツールであると同時に、その複雑怪奇な仕様によって長年に渡ってユーザを苦しめ続け、バッドノウハウの温床として悪名が名高い。

ここで「バッドノウハウの温床」の実例として、TeX が挙げられてゐることに、違和感を感じた。

TeX はそもそも、本格的な書籍組版にも耐え得る高度な組版システムとして設計されてゐる。書籍の自動組版は、それ自体非常に複雑怪奇な処理であり、そこに蓄積されるノウハウは必然的に複雑怪奇なものとなる。

書籍の自動組版は、恐ろしく複雑なものだ。たかが HTML+CSS 程度でこんなにも発散してしまつてゐるウェブブラウザ業界を見れば、書籍がいかに高度で安定した体裁指定の上になりたつてゐるか、ある程度はご理解いただけるのではないかと思ふ。

TeX は、現存する組版システムの中では、最もエレガントで現実的な部類に入る。これは間違ひない。現状では「TeX よりも優れた組版システムは存在しない」と断言しても問題ないだらう。唯一 XSL が、仕様書の上では TeX と同レベルにある。が、XSL の全機能を実装した処理系は現時点では存在しない。

組版システムである TeX を使ひこなすには、組版の知識に基づいた、様々なノウハウが必要である。当たり前だが、これは、組版の知識を持たない人にとつては、わけの分からないノウハウと感じられるだらう。「バッドノウハウ」としか思へないだらう。

でもそれを「バッドノウハウ」呼ばはりするのは言ひがかりだ。組版を知らない人が組版システムを使へないのは、当たり前だ。組版を知らないくせに組版システムを使はうとして、勝手に「分からない」「バッドノウハウだ」などと言ふのは、あまりにひどい。

たとへば、Emacs は「エディタ」であり「シェル」であり「lisp インタプリタ」である。コンピュータ技術者が使ふツールである。この Emacs をコンピュータ技術者が使はうとして、奇妙に複雑なノウハウが必要なのだとしたら、それは「バッドノウハウ」だ。

TeX組版技術者が使ふツールだ。そこに蓄積されるノウハウが、通常のノウハウなのか、それとも「バッドノウハウ」なのかを判断するのは、組版技術者でなくてはならない。コンピュータ技術者には判断できない筈だ。

バッドノウハウと「奥が深い症候群」では、さういふ意識もなく、TeX を「バッドノウハウの温床」として挙げてゐるのではなからうか。組版技術者でないのに、TeX を「バッドノウハウの温床」と決め付けるのは、非常に馬鹿げてゐる。TeX に対して失礼だ。