あどけない話

Internet technologies

書評「Coders at Work」

「Coders at Work」は、15人の有名プログラマーに対するインタビューをまとめた本だ。私は5人のインタービューを読んだ時点でこの記事を書いている。

Coders at Work プログラミングの技をめぐる探求

Coders at Work プログラミングの技をめぐる探求

インタビューを受けた15人は、以下の通り。(括弧内は、その人の業績の一例。一言で表現する愚かな試みを許してほしい。)

  • Jamie Zawinski (初期の Netscape 開発者)
  • Brad Fitzpartrick (memchached の開発者)
  • Douglas Crockford (JavaScriptエバンゲリスト)
  • Brendan Eich (JavaScript の生みの親)
  • Joshua Bloch (Java アーキテクト)
  • Joe Armstrong (Erlang の父)
  • Simon Peython Jones (Glasgow Haskell Compiler の開発者)
  • Peter Norvig (Google の研究部門責任者)
  • Guy Steele (Scheme の父、Common Lisp の母)
  • Dan Igalls (Smalltalk の母)
  • L Peter Deutsch (Ghostscript の作者)
  • Ken Thompson (Unix の父)
  • Fran Allen (女性初のチューリング賞受賞者)
  • Bernie Cosell (ARPANET の開発者)
  • Donald Knuth (知らないならこの本はあなた向けではない)

こういった本は他にもあるのだけれど、他と違うのは、まず著者も凄腕のプログラマーだということ。著者 Peter Seibel は、「実践 Commn Lisp」の著者としても知られてる。

実践Common Lisp

実践Common Lisp

次の特徴は、インタビューが長いこと。一人の話を読むのに2時間弱ぐらいかかる。それだけに、話題はプログラミング言語の好みから、デバッグの方法までに及ぶ。Peter は、実に素直に相手から学ぼうという姿勢で質問を投げかける。

第三の特徴は、訳がすばらしいこと。三つの特徴のおかげで、有名プログラマーの考えが、ゆがめられることなく、そのまま読者に届いているという印象を受ける。

今まで読んだインタービューで、印象に残った部分を引用することで、書評に代えたい。

Douglas Crockford

私が最初にしたのは Java のクラスのようなものをどうやったら JavaScript で模倣できるかということでした。しかしある部分でそれがうまくいきませんでした。私はいつもそういう壁にぶつかって痛い思いをしていました。

結局はそのようなクラスは必要ないのだといことを理解し、そうすると JavaScript がうまく使えるようになりました。格闘することがなくなり、代わりに力が得られることが分かりました。

Joe Armstrong

再利用性の欠如はオブジェクト指向言語から来るもので、関数型言語では話が違います。オブジェクト指向言語の問題は、それが周りに引きずっている暗黙の環境にあります。バナナが欲しかったのに、手に入れてみたら、バナナを握ったゴリラと、それにジャングルまでついてきたというようなものなのです。

Simon Peython Jones

Guy Steele からの「STM は世界を救うか?」という問いに対して:

まさか。STM 自体は世界を救うものではありません。平行性、そして並列プログラミング一般は、多くの側面をもつ獣であり、一発の弾で仕留められるものだとは思いません。平行性に対して、私は多角主義者です。

Guy Steele

私に一つ変えることができるとしたら、バカみたいに聞こえるでしょうが、昔に戻って1つ変えられるのだとしたら、文字が現れる以前の人々に、数を数えるときに親指を使わないように言いたい。それが標準になっていたら、現在においてたくさんのことがずっと簡単になっていたでしょう。