/ «2007-02-10 (Sat) ^ 2007-03-01 (Thu)» ?
   西田 亙の本:GNU 開発ツール -- hello.c から a.out が誕生するまで --

Categories Books | Hard | Hardware | Linux | MCU | Misc | Publish | Radio | Repository | Thoughts | Time | UNIX | Writing | プロフィール


2007-02-18 (Sun)

[Books][UNIX] Advanced Programming in the UNIX Environment 2nd Edition

Advanced Programming in the UNIX Environment 2nd Edition 2002年の初頭、旧サイトのお勧めの書というページ上において、2冊のUNIX プログラミング解説書を紹介しました。早いもので時を経ること、5年。この間、私も色々勉強しましたし、テキストに対する見方も変わりました。そこで、5周年(?)を記念して、2007年版 UNIX プログラミングお勧めの書、5冊をシリーズでご紹介しましょう。

トップバッターは、Advanced Programming in the UNIX Environment の第二版 。通称、APUE。UNIX プログラミングに関する、世界的リファレンス書として有名です。残念ながら、著者である Stevens 氏は1999年48歳の若さで亡くなりました。

APUE の初版執筆は1992年、4.4BSD が発表される前のことです(出版は1993年)。彼の死後も、UNIX は進化を続け、PC-BSD や Linux、新しい標準化案などの登場により、UNIX を巡る環境は大きく変わりました。

APUE の改訂版を望む声は強く、Stevens 氏の意志を引き継いだ Rago 氏が、古い内容の刷新や、新しい記述の追加を行い、第2版が2005年に発刊されました。大きな変更点についてまとめますと、

  • 第二章 "UNIX Standardization and Implementations" が大幅に刷新。ISO C, IEEE POSIX, The Single UNIX Specification などの標準化仕様と共に、実装系では FreeBSD 5.2.1, Linux 2.4.22, Mac OS X 10.3, Solaris 9 が登場。中でも Linux と Mac OS X については、要所要所注釈の形で丁寧に言及。
  • 新しく Threads, Thread control と題する2章が登場
  • Solaris が実装している STREAMS モジュールに関する解説を追加

初版は744ページでしたが、全体を通じて細かな加筆が行われており、総ページ数はなんと927ページ。数あるコンピュータ書の中でも、超弩級の迫力を誇ります。本書の殺人的なまでの厚さと威容に圧倒され、思わず引いてしまう方も多いと思いますが、何を隠そう私もその一人です。「厚すぎ」、つまり「冗長」な点は本書が抱える大きな欠点のひとつでしょう。

しかしながら、「文章の明快さ」は他に比類がないほど素晴らしい。余分な修飾語や感情は、徹底的にそぎ落とされ、そこにはエッセンスだけが残っています。なぜ、ここまで完成度の高い文章が書けるのか?それは、著者と編者が "Be clear." と "Do not inject opinion." を厳守し、かつ実践しているからではないかと、私は考えています。

The Elements of Style

The Elements of Style

このふたつの教えは、英語圏における Writing の聖典とされている The Elements of Style が説く「良きスタイルのための21箇条」で登場します。

  • Be clear.
  • Do not inject opinion.

前者は当然として(とは言え、実行は極めて難しいのですが)、後者は意外に思われる方も多いのではないでしょうか。

著者は往々にして、「自分の思いや考え」を文中で語りがちですが、これは読者に対して「雑音」として作用します。白状しますと、私自身連載執筆中は、"Do not inject opinion." という視点を持ち合わせていませんでした。しかし、連載終了後のある日、久しぶりに手にした岩波新書の一冊を読み、自分が書いてきた文章が、いかに一人よがりで子供じみたものであったのかを恥じ、猛省した次第。自費出版に至った、きっかけのひとつでもあります。

Clear or dry

簡潔明瞭な文章は読者から "clear" として好まれる一方で、執筆する当人にとっては、時間をかけて書き上げた言葉や思いを editor に削り取られることを意味しています。これは辛く、受け入れ難いことであり、editor や reviewer から「ケチ」を付けられる著者の目に、簡潔明瞭な文章は "dry" であると映ります。

「clear と dry のせめぎ合い」、これなくして名著の誕生はあり得ませんが、日本のコンピュータ関連の出版界を見ていると、著者の原稿を dry なまでに磨き上げる "国語力" を持った編集者は、数少ないようです。

APUE が誇る clear なスタイルは、類い希なるお手本のひとつと言えますし、この文体を学ぶだけでも本書を購入する価値があるでしょう。しかしながら、極めて大変残念なことに、APUE は内容までもが dry になっているのです。

Stevens 氏が語る各論は、長年にわたり他者の追随を許さぬほど完成度が高いものですが、残念ながらその内容は強弱に欠け、単調過ぎるように思います。平たく言えば、メリハリがない。しかも大作であるため、読破に際して読者には、並々ならぬ集中力と体力が要求されます。

世界的名著ということで、これまで本書に挑戦された方は多いと思いますが、途中で力尽きた方もおられることでしょう。しかし、決して自分を責める必要はありません。私が思うに、APUE には長い学習の旅を続けるために必要な The Sense of Wonder が欠けています。内容にワクワク感、高揚感がないのです。俗っぽい表現をすれば、"UNIX に対する愛" がない。

「"Do not inject opinion." を引用しておきながら、なにぬかすねん!」と怒られそうですが、ここが本の面白いところです。世の中に、完全無欠のテキストなど存在しません。しかし、名著と呼ばれるものは必ず独自のスタイルを持っています。一冊一冊は不完全ではあるけれど、様々なスタイルを吸収しながら、自分の中に独自のテキストを構築する。これこそが、読書を通じた学習の醍醐味と言えるでしょう。

次回は、"UNIX love" なスタイルを持つ名著をご紹介しましょう。