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

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


2007-05-01 (Tue)

[Books][UNIX][Thoughts] UNIX システムプログラミング三大名著と図書館

2007年版の「UNIX システムプログラミング・お勧めの書」として、以下の3冊を紹介してきました。

W. Richard StevensAdvanced Programming in the UNIX Environment (APUE) 2nd Ed.
Marc J. RochkindAdvanced UNIX Programming 2nd Ed.
Bruce MolayUnderstanding Unix/Linux Programming

UNIX 誕生から30年以上経過した現在でも、3冊の発行は続けられていますが、残念なことに三大名著を揃える国内の図書館は数少ないようです。3冊の特徴を簡単に振り返った後に、この状況を確認してみましょう。

Understanding Unix/Linux Programming

Understanding Unix/Linux Programming UNIX システムプログラミングの入門書として、本書を越える書籍は現時点でこの世に存在しないと、私は断言致します。ハーバード大学での授業をもとに練り上げられた本書の内容は、群を抜いた独創性に満ちており、ある意味 Stevens 氏の APUE を凌駕しています。

説明図、題材として使われるプログラム、すべてに工夫が凝らされており、「教育者たるもの、かくあるべし」というお手本のようなテキストです。学生はもちろんのこと、教育現場で UNIX プログラミングの講義を行う立場にある先生方も、本書には教えられるところが多いでしょう。

私自身、これまでの執筆活動の中で、「読者の理解を助けるための工夫」を行ってきたつもりだったのですが、Molay 氏の努力にはまだまだ遠く及ばないことを痛感させられると共に、大いなる刺激を受けました。

原書自体がページ数(530p)の割には高価(US$76.00)であるためか、未だに国内で翻訳本は出版されていませんが、英文は十二分に平易ですし、内容が優れているため、洋書初心者でも比較的容易に "完読" できる奇跡のような作品です。

初めて洋書に挑戦する時のコツは、優れた平易な文体と、小説のように引き込まれる魅力的な内容をもった書籍を選び、ともかく読み切ることです。読み切れば、大いなる達成感を味わえると共に自信が付きますし、新しい視界も開けます。そして、「辛い思いもしたけれど、英語を勉強しておいて良かった!」と、喜びと感謝の気持ちを噛みしめることができるでしょう。

本書は、日本の読者をそのような境地に導いてくれる、希有な書籍にして "羅針盤" です。

Advanced UNIX Programming

Advanced UNIX Programming 2nd Ed. 本書の特徴を一言で表現するならば、「実践的 (practical)」と言えるでしょう。三大名著の中では、経験を積んだ UNIX プログラマー向け(玄人志向)の作品に位置づけられます。

本書を読んでいて面白い点は、UNIX 上でシステムコールやライブラリ関数を使用する際に、プログラマーが陥りやすいピットフォールの数々が "何気なく" 解説されていることです。そう、"何気なく" 。

通常、著者は重要な箇所とそうではない箇所を緩急を使い分けることで、読者に伝えますが、Rochkind 氏の場合は粛々と文章が進み、書籍全体が一本調子となっています。ところが、目を凝らしてよく見ると、ページの片隅の脚注や文中に、チラリと重要かつ貴重な情報が書かれていたりするのです。ですから、読書中は全く気が抜けません。正直、読んでいて疲れる書籍です。

そうかと思うと、さして大事でないところで妙にテンションが盛り上がり、個人的な感情が発露してしまう始末・・。この点、本書は The elements of style の説く、"Do not inject opinion" の禁 を犯していることになりますが、APUE には書かれていない「現場で役立つポイント」が織り込まれているのも事実ですから、薬だと思って我慢しましょう(?)。

なお、本書の原書第一版は、1987年に国内で翻訳出版されています。私の手元にその初版本がありますが、訳語は日本語というよりは、"宇宙語"。5行読み進めるだけで、頭がクラクラしてくるような代物です。この影響もあってか、第二版はいまだに翻訳されていません。

恐らく、Rochkind 氏は日本におけるこの状況を把握していないのだと思いますが、名著だけに残念であると同時に、一日本人として申し訳なく思います。

1987年というと、バブル時代の真っ只中ですが、未だに日本のコンピュータ出版界に根強く残る「トンデモ訳本」の源流は、この時代に誕生したのかもしれません。

Advanced Programming in the UNIX Environment 2nd Edition

Advanced Programming in the UNIX Environment

本書は、敢えて紹介するまでもなく、三大名著の中でも圧倒的に有名な UNIX プログラミングのリファレンス書。APUE の略称で、古今東西の読者から愛読され続けています。

私にとって、APUE は Comfortable English を具現化した Technical writing の聖典でもあります。

Stevens 氏が書く英文は、専門用語を抜きにすれば、日本の中高生でも容易に理解できる内容となっています。それは、余分な副詞や難解な表現、文章を読みづらくする受動態が、極力排除されているおかげなのですが、このレベルに達している Technical writer は、私がこれまで出会ってきた著者の中で Stevens 氏ただ一人。

参考までに、第一章 Introduction の Files and Directories で登場する数行を抜き出してみましょう。

The Unix filesystem is a hierarchical arrangement of directories and files. Everything starts in the directory called root whose name is the single character /. A directory is a file that contains directory entries.

いかがでしょうか。ファイルシステム概論のさわりですが、大変簡明に書かれていることがお分かり頂けるかと思います。Stevens 氏の文章は、自然体であり、水が流れるように進むことが特徴です。

日本語翻訳の限界

唯一の欠点は、あまりに自然であるため、読者がその文章に込められた "真意" を見逃してしまいがちなことでしょうか。例えば、引用の最終行 "A directory is a file that contains directory entries." に注目してみましょう。この文章は、大木敦雄氏翻訳による "詳解 UNIX プログラミング" 中で、次のように訳されています。

ディレクトリは、ディレクトリ項目を収めたファイルである。

大木氏の翻訳は「トンデモ訳本」とは違い、きちんとした "日本語" になっていますし、"一般的には" 模範解答と言って良いでしょう。ところが、この訳文は原文が持つ内容を半分も伝えていないのです。なぜか?ここで、原文をもう一度見てみましょう。

A directory is a file that contains directory entries.

英文上に配置された不定冠詞と名詞変化は「directory, file は単数、entry は複数形」であることを主張し、さらには動詞変化がその事実を強調しています。この文章を書きながら、Stevnes 氏の思考は、次のような経過を辿ったのではないかと思われます。

ディレクトリの実体は、ディレクトリに "一対一" で対応するディレクトリファイルであるから、directory と file にはそれぞれ不定冠詞を添えよう。UNIX ではディレクトリ上に、少なくとも ".", ".." の2エントリが存在するから、ディレクトリエントリは複数形で記述しなければならない。

「ここまで細かいことを言わずとも・・」という方もおられるかもしれませんが、ひとつの言葉が持つ意味は重いのです。一流の Writer は、言葉の重みを知っており、簡明な文章を通じて、自らの思考を読者へ正確に伝える術(すべ)を身につけています。

言葉に託された Stevens 氏の意図は、残念ながら日本語訳文から欠落しているようですが、彼の真意を日本の読者に伝えるためには、

ひとつのディレクトリの実体は、単一のファイルであり、このファイル中には複数のティレクトリエントリが含まれる

と、意訳する必要があるでしょう。ご覧の通り私の訳文は冗長であり、原文のスマートさは、もはや損なわれています。ページ数の問題もありますので、書籍で逐一このような翻訳を行うことは、現実的には不可能でしょう。これが日本語訳の限界です。

訳本を読むことは、原著を "磨り硝子越しに読む" 行為に等しく、細部は往々にして失われてしまうことを覚悟しなければなりません。一方、優れた英文に接することにより、これまで日本語で曖昧に解釈していたことに気づき、知識の "ほころび" を繕うことができるのです。

国内図書館における蔵書状況

洋書に記された知識を入手する上で、最も良い方法は原典のみにあたることですが、難しい場合もあるでしょう。こんな時は、翻訳書をベースとして読み進めながら、訳文の意味が明瞭に読み取れない場合や、原文が気になる時だけ、原書にあたる方法が効果的です。

しかし、困ったことに洋書はとても高価。学生さんには、かなりの出費となってしまいます。そこで、頼りにしたいのが図書館。大学図書館の蔵書を対象にした検索サービス Webcat で、三大名著を調べてみましょう。

Webcat への登録は手間暇がかかるためか、すべての蔵書が登録されている訳ではありませんし、大学によってもバラツキがあるようです。しかし、日本の高等教育機関における蔵書状況を知ることができる、大変貴重なデータベースと言えるでしょう。

以下に、2007年5月における検索結果を示します。まずは、APUE から。

書名出版年蔵書数
Advanced Programming in the UNIX Environment 初版199266
同上 初版 日本語版 詳解UNIXプログラミング (ソフトバンク)199458
同上 初版 日本語版 詳解UNIXプログラミング (ピアソン・エデュケーション)2000113
同上 第二版20057

APUE 初版の翻訳本は、ソフトバンクを経て現在はピアソン・エデュケーションから出版されていますが、この二者を有する図書館は171館となります。さすがは、UNIX プログラミングのリファレンス書。翻って原書66館というのは、これに比べて少ないような気もしますが、2005年に発行された原書第二版を見てください。たったの7館です、思わず絶句・・。21世紀、日本の大学は再び鎖国への道を歩んでいるようです。

ちなみに、APUE 第二版の価値を認め、購入の英断を下した図書館は以下の通り。

  • 京都工芸繊維大学 附属図書館
  • 九州産業大学 図書館
  • 総合研究大学院大学 附属図書館
  • 小樽商科大学 附属図書館
  • 東京医療保健大学 附属世田谷図書館
  • 兵庫県立大学 神戸学術情報館
  • 北九州学術研究都市学術情報センター

いわゆる旧帝大は、影も形もありません。我が日本、大丈夫でしょうか。続いて、Advanced UNIX Programming を見てみましょう。

書名出版年蔵書数
Advanced UNIX Programming 初版198530
同上 初版 日本語(?)版 xxxxx (xxx 社)1987142
同上 第二版20044

例の「トンデモ訳本」は142館と、"詳解UNIXプログラミング" に迫る勢いです。本来範を垂れるべき日本の高等教育機関が、悪書を買い支えてどうするんでしょうか?これでは、良心的な翻訳に励んでいる訳者や出版社が報われません。ちなみに、原書第二版を揃えている図書館は、わずか4館です。

最後に、Molay 氏の名作を見てみましょう。

書名出版年蔵書数
Understanding Unix/Linux Programming20033

とうとう、3館になってしまいました。「枯れ木も山の賑わい」どころではありません。ちなみに、3館は以下の通り。

  • 九州大学 附属図書館 理系図書館
  • 三重大学 附属図書館
  • 兵庫県立大学 神戸学術情報館

APUE 第二版も揃えている、兵庫県立大学 神戸学術情報館に拍手。

原書の蔵書数は減っているのか?

上記の結果を良いように解釈すれば、「経費削減のために、初版があるものは第二版以降の購入を控える」ということも考えられます。そこで、比較的改訂の激しい "Understanding the Linux Kernel (邦訳 詳解Linuxカーネル)" を見てみましょう。

書名出版年蔵書数
Understanding the Linux Kernel 初版200117
同上 初版 日本語版 詳解Linuxカーネル (オライリー・ジャパン)2001100
同上 第二版2002なし
同上 第二版 日本語版 詳解Linuxカーネル (オライリー・ジャパン)2003125
同上 第三版20056
同上 第三版 日本語版 詳解Linuxカーネル (オライリー・ジャパン)200717

ご覧の通り、"詳解Linuxカーネル" は改訂される度に買い揃えられていますが、原書についてはさっぱり・・。日本の図書館に、原書を揃える意識や余裕は、最早ないようです。

原書と邦訳本が並ぶ本棚

若い方々の夢を折るようで心苦しいのですが、残念ながらこれが日本の現状です。向学心に燃える学生さんが、大学の図書館で原書を好きなだけ読みふけるというのは、現時点では叶わぬ夢でしょう。

私が理想とする、図書館の本棚。そこでは ISBN の枠を超えて、良質の原書と邦訳本が仲良く隣同士で並んでいます。こんな本棚がひとつでも、ふたつでも、日本に増えていくことを願っています。