「言語設計者たちが考えること」を献本いただいた:-)。この本,著名なプログラミング言語(C++,Python,Perl,Ruby,JavaやBASIC,Objective-C,ML,HaskellからLua,SQL,PostScriptなど)の設計者,作者たちのインタビュー集。他の技術書に類を見ないほど「面白い」。インタビューアーの質問が秀逸で,かつ答える人のキャラが立っている。
たとえばPythonの設計者Guidoへのインタビュー。
■言語のデバッグはどのように行うのですか?
Guido : デバッグはできません。
これはGuidoへのインタビューのかなり冒頭の部分。一見,質問の意図を読んでいないような,KYな返答のように見える。以前Perlの作者Larry Wallに「Perlの高度な正規表現はどうやってデバッグしているんですか?」と聞いたことがあった。優しい口調で「沢山適切なテストケースを書くしかないね」とまっとうな答えをもらったんだけど,それが普通だよね。実際,生でGuidoみたいな返答をもらったらギョッとするはずだ。
でも,後の方を読んでいると,件の返答は,プログラミング言語というのは,広まる前にバグ的な不具合,または言語設計上の不具合がなくなっているべき,というPythonという言語を作ったGuidoのらしい考え方をよく表している言葉なんだということが分かってくる。その後をよく読むと,言語のコアは小さく,パーサーは小さくあるべきで,機能追加もあまりしないし,といったPythonの言語的思想が語られて,やっと言葉の意図がつかめてくる。最初の方にこの質問を持ってきて,さらにこんな風に答えるのはスゴイと思う。
この書籍,基本的に言語設計者のひととなりとかバックグラウンドとか,言語を作るに至ったモチベーションといった情報がちりばめられている。その隙間隙間に,ウマいインタビューアーと,個性豊かな言語設計者たちの応酬が見て取れて面白い。
例えば
■Luaをどのように定義しますか?
Roberto Ierusalimschy : Luaは本当の意味におけるスクリプティング言語と言えます。
とか
■やはりC++は複雑過ぎますか?
Tom Love : もちろん。
■ではObjective-CよりもC++がよく使われてきた理由は何でしょう?
Tom : AT&Tの威光があったから。
きりがないのでこのへんでやめておくけど,こういう癖のある言動が至るところにあってとても面白く読んだ。
巻末には,日本語版だけの特典としてRubyのまつもとさんのインタビューが収録されている。弾さんも書いてるけど,まつもとさんのホットさは,ほかの言語設計者たちの癖の強さと対比もあってステキだと思った:-)。