担当していた『On Lisp』が今月下旬に発行される。遅くなってごめんなさい。でもなんとかお届けでき
そうで、うれしい。
On Lisp
Paul Graham 著, 野田開 訳
http://user.ecc.u-tokyo.ac.jp/~t50473/
http://www.komaba.utmc.or.jp/~flatline/
http://www.paulgraham.com/onlisp.html
http://www.amazon.co.jp/dp/4274066371/
野田さんが公開していた日本語訳を改めて推敲してもらって、その紙版を翻訳発行するも
の。内容については巻頭の前書きと巻末の訳者後書きを読んでもらうとして、推敲前後の
変化と所感をつれづれにメモ。
----
草稿からの改善点で一番大きいのは、やはり全般的に見直され、不具合が訂正され、表現
が読みやすく改められたことだと思う。
そもそも野田さんの初稿が技術的な正しさ・日本語表現とも素晴らしかった。理解して訳
している人特有の安定感があり、日本語表現の語彙も豊富で使いどころの判断が適切。書
き下ろしでも翻訳でも、技術面の正しさと日本語の読みやすさを両立できる人はなかなか
いないんだけど、野田さんの訳は最初から両方とも高レベルだった。それでももちろん複
数人の目で見るうちに不具合がたくさん見つかったけれど、対処できる不具合なら問題な
い。
それがさらに、shiroさんと萩谷先生と平岡さんにみっちりレビューしていただいた
おかげで、とても高いレベルでの改善ができた。意味が正しいかどうかではなく、正しい
のは前提で、どう表現するのが一番かを議論するという感じ。あれだけのフィードバック
を受けて、学業と並行で推敲をこなした野田さんもすごかった。こんなにレベルが高いケ
ースはなかなかない。ついていくのが大変だったけれど楽しかった。
表現の改善の例(前書きより)。字面の上では5-10%程度しか変わっていないけど、読
んでみてほしい(shiroさん曰く調子をみるには音読するといいとのこと):
原文:
It's difficult to convey the essence of a programming language in one sentence, but John Foderaro has come close: Lisp is a programmable programming language.
There is more to Lisp than this, but the ability to bend Lisp to one's will is a large part of what distinguishes a Lisp expert from a novice. As well as writing their programs down toward the language, experienced Lisp programmers build the language up toward their programs. This book teaches how to program in the bottom-up style for which Lisp is inherently well-suited.
推敲前:
あるプログラミング言語のエッセンスを一文で伝えるのは難しいが,John Foderaroの言葉はかなりそれに近い: Lispはプログラム可能なプログラミング言語である.
Lispはそれだけのものではないが,Lispを自分の意図に従わせることのできる能力は Lispエキスパートと初心者との違いの大部分を占める.熟練Lispプログラマは,プログラミング言語に従ってプログラムを書くのと同じように自分の書くプログラムに向けてプログラミング言語を構築していく.この本では,Lispが元々適しているボトムアップ・スタイルでのプログラミング方法を教える.
推敲後:
あるプログラミング言語のエッセンスを一文で伝えるのは難しいが,John Foderaroの言葉はかなりそれに近い: Lispはプログラム可能なプログラミング言語である.
Lispはそれだけのものではないが,Lispを自分の意図に従わせる能力こそはLispエキスパートと初心者との大きな違いだ.熟練Lispプログラマは,プログラミング言語に従ってプログラムを書くのと同じように,自分の書くプログラムに向けてプログラミング言語を構築していく.この本ではボトムアップスタイルでのプログラミングの方法を伝えたい.それこそLispが本来適しているスタイルだからだ.
こういう細かい改善の積み重ねの効果は、読み手が注意していなければ意識されない。で
も、気がつかなかった人も「なんだか読みやすかったな」と感じるはず(感じてほしい…
…)。
この調子で全章が見直されている。全ページに手が入ったと言っても言い過ぎではないく
らい。もちろん日本語の表現だけじゃなく純粋に技術的な面でも、びっくりするくらいた
くさんの問題点が洗い出されて改善された。原書のerrataに載っていない不具合も
いくつか見つかったほど。
その他の違いはこんなところ。
- 原書のerrataを反映
- 原書PDFで欠けていたダイアグラムを紙版の原書から起こして図に追加
- 未訳だった部分(前書きの謝辞および後注)の訳を追加
- 訳注を適宜追加
- 訳者後書き追加
- 原書と照合し、コードや本文のインデント・段落区切り・スタイルなど、細かいところを改善
- 原書の索引と同等の索引
- 落ち着いた装丁
編集者のほうでできることも、できるだけやったつもり。自分だけでなく同僚にもえらく
助けてもらった。ありがとう。
という感じなので、草稿で読んでしまった人にとっても読む価値があるんじゃないかと思
う。
--
予想外に苦労したのは、権利関係だった。
絶版になっていたので版権が原著者に返還されており、権利の確保が簡単ではなかった。出
版社相手のときのように型どおりには進まない。けれども、Franz Inc.の日本支社ことOさんが仲立ちしてくださったおかげでなんとか切り抜けられた。P
aulさんは多忙なので、Oさんが直接会ってその場でサインをもらってくれなかったら、契
約がまとまらず発行できなかっただろう。ほかにも、Cさんが宝物のように大事にしてい
た貴重な紙版の原書をお借りしたり(おかげでダイアグラムを補完できた)、本当にあり
がたい。
--
いっそう個人的な感想を少し。
この本は、表向きはCommon Lispのマクロプログラミングを教える本。でも、若きLispプログラマの主張を綴
ったエッセイとして読んでも面白い。特に前書きと第1章と後注を読むと、1990年代
はじめのLispプログラマの思いがなんとなく想像できる。Lispがいかに素晴らし
いかという主張、そしてそれが理解されないもどかしさ。実用のための本なのに、そこか
しこでふつふつとたぎるものが感じられる。
Frederick Brooksが『人月の神話』(The Mythical Man-Month) の中で示唆したのは,プログラマのグループの生産性はその規模に対して線形には増大しないということだった.グループのサイズが増大するにつれ,個々のプログラマの生産性は低下してゆく.Lispプログラミングの経験は,この法則のポジティブな捉え方を示唆している:グループのサイズが減少するにつれ,個々のプログラマの生産性は向上してゆくのだ.相対的に小規模なグループが勝利を収める.理由は単純,小さいから.小規模グループがLispによって可能になるテクニックを活用するとき,完全な勝利が待っている.(第1章より)
今でこそ成功して後進の若者たちに出資する立場にいるけれど、この本を書いた当時はま
だ無名の若手だったらしいことを考えあわせると、言っていることの確かさと、自分が言
ったことをやってのける実行力にしびれる。