その本の「はじめに」には、著者の「伝えたいこと」がギュッと詰め込まれています。この連載では毎日、おすすめ本の「はじめに」と「目次」をご紹介します。今日はチャールズ・ペゾルド(著)、酒匂寛(訳)の『 CODE コードから見たコンピュータのからくり 第2版 』。「第2版への序文」を紹介します。
【第2版への序文】
本書の第1版は1999年9月に発行された[日本語版は2003年4月]。そのときは、ついに「改訂不要」の本が書けたと喜んだ! これは、私の初めての著書であるMicrosoft Windows向けアプリケーションのプログラミングに関する書籍とは好対照だった。こちらは、わずか10年の間にすでに5回も改訂していたのだ。そして、私の2冊目となるOS/2 Presentation Manager(覚えている人はいるだろうか)の本は、もっと早く陳腐化してしまった。しかし、この『CODE』は永遠にこのままでいけると確信していた。
CODEの最初のアイデアは、デジタルコンピュータの仕組みを、とてもシンプルなコンセプトから徐々に深く理解していくことだった。この「知識の丘」へ着実に上っていく過程で、私はたとえ話、類推、くだらないイラストの使用を最小限に抑え、その代わりにコンピュータを設計・構築する実際のエンジニアが用いる言葉と記号を使用するつもりだった。私にはとても巧妙な戦術もあった。普遍的な原則を示すために、枯れた技術を使用するのだ。何しろ十分に枯れた技術はこなれていて、これ以上古くなることはないと考えたからだ。それはまるで、フォード・モデルTに基づいて内燃機関の本を書いているようだった。
そのやり方は正しかったと今でも思っているものの、細かい部分では限界もあった。年月が経つにつれて、第1版に古さを感じるようになったのだ。文化的な物言いの中には陳腐化したものもあった。携帯電話や手の指がキーボードやマウスの代わりをし始めた。1999年当時にもインターネットは確かに存在していたが、その後の変化に比べるとまだ何もないようなものだった。世界中の言語や絵文字を統一的に表現するためのテキストエンコードであるUnicode[ユニコード]の記述は、初版では1ページにも満たないほどだった。そして、ウェブに浸透しているプログラミング言語であるJavaScript[ジャバスクリプト]については、全く触れていなかった。
そうした問題はおそらく容易に修正できたと思うが、第1版には私を悩ませ続けた別の側面が存在していた。実際のCPU、すなわちコンピュータの脳、心、魂を形成する中央演算処理装置の仕組みをきちんと説明したかったものの、結局うまくいかなかったのだ。もっとうまくやれたのでは、と感じたりもしたが、最後は諦めてしまった。読者は不平を言わなかったようだが、私にとっては際立った欠陥だった。
この欠陥は、第2版で修正された。本書が100ページ近く第1版よりも長くなっている理由でもある。その通り、本書を読み進めるのは長い旅になる。ページを通して私と一緒に最後までたどり着ければ、CPUの内部にさらに深く潜り込むことができる。これがあなたにとって楽しい経験になるかどうかは、私にはわからない。溺れそうだと感じたなら、息をするために上がってくるように。しかし、第24章を乗り越えたなら、非常に誇らしい気持ちになるはずだし、本書の残りの部分は楽勝であることをうれしく感じるだろう。
本書のウェブサイト
CODEの第1版では、電気の流れを示すため、回路図に赤色を使用していた。第2版でも同じだが、これらの回路の動作を、CodeHiddenLanguage.comという新しいウェブサイトで、グラフィカルかつインタラクティブに見ることができる。
本書を読み進める際に、時折このウェブサイトを思い出してもらうつもりだが、この段落の余白にある、特別なアイコンも使う予定だ。このアイコン(通常は回路図と一緒に登場する)があれば、ウェブサイト上でその回路の動作を確認できる(技術的な背景を知りたい人のために補足すると、これはHTML5のcanvas要素を使ってJavaScriptでプログラミングしたウェブグラフィックスである)。
CodeHiddenLanguage.comのウェブサイトは完全に無料で使用できる。有料プランはなく、目にするのは本書の広告だけだ。いくつかの例ではクッキーを使用するものの、読者のコンピュータにわずかな情報を保存するためだけである。このウェブサイトは読者を追跡したり邪悪なことは一切しない。
また、本書に記載されている内容の補足や訂正のために、このウェブサイトを利用する予定である[日本語版についての補足や訂正は日本語版のサイトに掲載]。
本書の責任者
本書の責任者の1人の名前は表紙にある。以下で紹介する人たちも責任者同様に欠かせない存在だ。
特に、エグゼクティブエディターのHaze Humbertに言及したい。彼女は、私の準備ができていたちょうど正しいタイミングで、第2版の可能性を聞いてくれた。私は2021年1月に本書の改訂作業を開始したが、彼女は試練を通して私を巧みに導いてくれた。たとえ原稿が締切を何か月すぎても、そして私が道を完全に踏み誤っていないという保証がほしかったときにも、である。
第1版のプロジェクトエディターはKathleen Atkinsで、彼女も私がやろうとしていることを理解して、楽しい共同作業時間をたくさん提供してくれた。当時の私のエージェントはClaudette Mooreだったが、彼もこのような本の価値を見抜き、マイクロソフトプレスを説得して出版にこぎつけた。
第1版のテクニカルエディターはJim Fuchsで、彼が私の恥ずかしいミスをたくさん見つけてくれたことを覚えている。第2版では、テクニカル・レビュアーのMark SeemannとLarry O'Brienが、いくつかの間違いを指摘し、本書をよりよいものにするために協力してくれた。
私は何十年も前に「compose」と「comprise」の違いを理解できたと思っていたのだが、どうやらそうではなかったようだ[どちらも「構成する」と訳出できるがニュアンスが異なる。前者は構成する、後者は成る、を意味する]。このようなミスを修正できたのは、コピーエディターのScout Festaの貴重な貢献だ。私はいつも、コピーエディターの優しさに頼ってきた。実際に会う機会はほとんどないが、彼らはいつも言葉の不正確さや乱用と不屈に戦っているのだ。
本書に残る誤りは、すべて私の責任である。
第1版のベータリーダーのみなさんに改めて感謝したい。Sheryl Canter、Jan Eastlund、故Peter Goldeman、Lynn Magalska、そしてDeirdre Sinnott(のちに私の妻となる)。
第1版に掲載された多数の図版は、故Joel Panchotの作品であり、彼は本書での自分の仕事を当然のように誇りにしていたと聞いている。彼の図版の多くは残っているが、回路図を追加する必要があったため、一貫性を持たせるためにすべての回路は作り直した(追加的な技術的背景。これらの図は、Scalable Vector Graphics[SVG]ファイルを生成するSkiaSharpグラフィックライブラリを使用して、私がC#で書いたプログラムによって生成された。そのSVGは、シニアコンテンツプロデューサーのTracey Croomの指示のもと、AdobeInDesignでページを構成するためのEPSに変換された)。
さいごに
本書を、私の人生で最も大切な2人の女性に捧げます。
私の母は、弱い人間であれば挫けてしまうような逆境と闘っていました。彼女は、決して私を束縛することなく、私の人生に強い方向性を与えてくれたのです。本書の執筆中に、彼女は95歳の(そして最後の)誕生日を迎えました。
私の妻、Deirdre Sinnottはいなくてはならない存在でした。彼女の功績、サポート、そして愛情を誇りに思い続けています。
そして、第1版を読んでくださった読者の方々の温かいご感想も、本当にうれしいものでした。
Charles Petzold
2022年5月9日
【目次】


