読者です 読者をやめる 読者になる 読者になる

2012 年書籍ベスト 10

書籍

2012 年に読んだ本の中で、良かった本をここに記録しておく。
技術書編と非技術書編に分けて、それぞれのベスト 10 。

2012 年に発売されたものではなく、あくまで 2012 年に自分が読んだもの。

ではまず技術書編から。

技術書編

10. ドメイン特化言語

ドメイン特化言語 パターンで学ぶDSLのベストプラクティス46項目

ドメイン特化言語 パターンで学ぶDSLのベストプラクティス46項目

  • 作者: マーチンファウラー,Martin Fowler,角征典,ウルシステムズ株式会社,レベッカパーソンズ,Rebecca Parsons,平澤章,大塚庸史,坂本直紀
  • 出版社/メーカー: ピアソン桐原
  • 発売日: 2012/05/02
  • メディア: 単行本(ソフトカバー)
  • 購入: 3人 クリック: 61回
  • この商品を含むブログを見る

記法について、我々プログラマはもっと重要視すべきだ。プログラマは一体どれだけ他人が決めた記法に左右されているのだろう。当たり前のように既存の記法に従いながらコードを書いているが、記法によって生産性が向上する可能性についてもっと考慮すべきだ。

近年流行の言葉として定着しつつある DSL について知ることは、記法についての知識を深めることに等しい。DSL の利点や問題点を知り、記法を探求し、より生産性を向上させることにもっと目を向けようではないか。

9. 継続的デリバリー

継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化

継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化


継続的インテグレーション、いわゆる CI は定着した。実装とともにテストコードを書くことは当たり前になり、コミット毎にテストを実行することは今となってはなんの目新しさもなく、むしろ CI がなかったらそれだけでレガシーと烙印を押される時代だ。
さて、継続的インテグレーションの次はなんだろうか。継続的デリバリーだ。いくら CI によってバグを即座に発見したり防いだりすることができても、ユーザーが触れるコードからバグを取り除けなかったらそれは品質が高いとは言えない。バグがあったら、取り除くだけで満足せず、ユーザーに素早く届けるところまで追求すべきだ。

8. 並行コンピューティング技法

並行コンピューティング技法 ―実践マルチコア/マルチスレッドプログラミング

並行コンピューティング技法 ―実践マルチコア/マルチスレッドプログラミング


ふと気が付けば、CPU のコアは 4 コアが当たり前になった。シングルコアの CPU なんてものはもはやなんの価値も無く、今はモバイルデバイスであっても 4 コア CPU が搭載されるようになった。今後もどんどん多コア化が進んでいくこれからの時代を生き延びるのは、今までのシングルコアでの仮想並行処理ではなく真の並行処理を扱えるプログラマだ。まだ現在はシングルコアの処理速度でもなんとかなることが多いが、32 コアや 64 コア CPU が一般家庭まで降りてきた時にコードの価値は変わる。1コアの処理速度で性能が制限されるようなコードは「所詮その程度のコード」と扱われる日が来るだろう。そのような時代に備えて、本書を。


並行コンピューティング技法を読んだら、ついでにインテル・スレッディング・ビルディング・ブロックもペアとして購入しておくと良いだろう。
どちらもページ数はさほど多くないし、何よりどちらも解説が丁寧だ。並行処理プログラミングは本質的に困難であることが知られているが、「よくわからないけど並行処理怖い」とならないためにも、並行処理の良書は手元に置いておきたい。

インテル スレッディング・ビルディング・ブロック ―マルチコア時代のC++並列プログラミング

インテル スレッディング・ビルディング・ブロック ―マルチコア時代のC++並列プログラミング

7. Java並行処理プログラミング

Java並行処理プログラミング ―その「基盤」と「最新API」を究める―

Java並行処理プログラミング ―その「基盤」と「最新API」を究める―


8位の並行コンピューティング技法をよりモダンで高級なレイヤーに移したのが本書だ。本書もまた大変に素晴らしい。Java 並行処理と名がついているが、Java に限らず並行処理の良本である。C/C++ の面倒な部分を上手く隠蔽し、分かりやすさや簡潔さでは今のところ本書がベストだ。また、Java には大変素晴らしいマルチスレッドプログラミングのライブラリが揃っている。それらのツールを上手く使えば、マルチコアで動かすためのコーディングの時間にほとんどオーバーヘッドを取られずコーディングすることすら可能になるだろう。

6. 素数夜曲: 女王陛下のLISP

素数夜曲: 女王陛下のLISP

素数夜曲: 女王陛下のLISP


本ブログの言及エントリ
LISPプログラミング言語の王様だ。Haskell のような若手でも才能あふれる言語もあるが、やはりその礎を築いた言語である LISP が王様だろう。LISP と数学という2つの道具の取扱説明書である本書は、優しい。難易度的にも、好奇心を支えてくれるパートナーとしても。数学は面白く、コンピューターもまた面白いということを知れ、かつ再確認できた。そういう意味ではもう少し若い頃に本書に出会いたかった。年末年始、時間のある高校生に是非オススメしたい一冊。
本書に刺激され、いずれ大成する人間もきっと出てくるに違いない。

5. ふつうの Linux プログラミング

ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道

ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道


本ブログの言及エントリ
「ふつう」であることは難しい。普通であるということは、その枠組の中に溶け込んでいることなのだから。本書は、Linux プログラミングの入門という位置づけでありながら、単に Linux プログラミングへの入り口となるだけでなく、溶け込むためへの工夫が凝らされている良書だ。その要因は、なんといってもエラー処理をきちんと書いていること。「サンプルはシンプルに」の原則は破られた。エラー処理もちゃんと書いてこそ、普通になれる。エラー処理のないコードなど死んでいるも同然、ゴミにほかならない。
初めて Linux プログラミングの入門本を読むのが本書の世代の人たちが羨ましい。

4. 初めての人のためのLISP

初めての人のためのLISP[増補改訂版]

初めての人のためのLISP[増補改訂版]


竹内郁雄先生のユーモアあふれる LISP 本。技術書らしからぬ文体で、わかりやすく、丁寧に、そして抜けなく解説している良書。初めて LISP を知るには本書で決定だろう。
本書には竹内先生の魅力があふれている。もし自分がもっと頭が良ければ、東大に入って竹内先生の講義を受けることができたのに、後になってこんな形で後悔するなんて考えず脳天気に将来を無視していた若いころの自分に腹が立つ(もっとも、仮に当時勉強したところで東大どころか最低ランクの国立大学すら受かるかどうかはかなり怪しいレベルだったのだが)。

後半の、LISPLISP を作る章は必読だ。言語の面白さが凝縮された章だ。あの章だけでも本書を買う価値はある。間違いなく。

3. 言語設計者たちが考えること

言語設計者たちが考えること (THEORY/IN/PRACTICE)

言語設計者たちが考えること (THEORY/IN/PRACTICE)


上でも述べたように、記法は偉大だ。記法はほんの少しの差で書きやすさが大いに変わる。そして生産性も変わり、コードの品質として現れる。それだけに記法は面白く、追求しがいのある分野だ。本書はその点を最高に追求した本である。技術書というよりは言語設計者たちのインタビュー集なのだが、彼らの考えることを知るというのはプログラマとして大変刺激を受ける。

普段の日常の中で、ぼんやりとした意識で「言語に使われるプログラマ」になってないだろうか?本書を読めばすぐ、というわけにはいかないが、Programmer の語源通り、言語を操るプログラマに近づけるはずだ。

2. 計算機プログラムの構造と解釈

計算機プログラムの構造と解釈

計算機プログラムの構造と解釈


通称、SICP。読破できてない上に内容も理解してるとは言えないので本書をここに載せるなんてとてもおこがましい思いではあるのだが、それでも紹介せざるを得ない。計算機とは何か。言語とは何か。どのような構造であるか。今ふつうにコンピューターを使っていてそれらを知るには、コンピューターは進化し過ぎた。低レイヤーを隠蔽し過ぎて、計算機の本質的な点は見えず、ブラックボックスとなってしまった。本書はその目の前のブラックボックスの中身を紐解く道標になる本だ。
自分の場合は、本書を読んで Scheme インタプリタを自作して、プログラミング言語(特にAlgol系言語)は LISP 系言語のシンタックスシュガーをまとっただけのように見えてきた。今までブラックボックスに見えていた箇所のベールが剥がれてきた。昔、上のレイヤーだけを見て下のレイヤーまで見通すことを冗談で「エスパー」と言ったが、少しは当時想像していたエスパーに近づくことができたと思う。

ある意味では、いつまで経っても本書を理解することはできないのではないかと思う。なぜなら本書から生み出されるものがあまりにも膨大すぎるから。
それほどまでに強力な書籍だ。今後も当分の間、名著としての地位を失うことはないだろう。

1. Unix システムパフォーマンスチューニング

Unixシステムパフォーマンスチューニング 第2版

Unixシステムパフォーマンスチューニング 第2版

  • 作者: ジャン‐パオロ・D.ムズメキ,マイクルキダス,Gian‐Paolo D. Musumeci,Mike Loukides,砂原秀樹,高橋敏明,岡島順治郎
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2003/10
  • メディア: 単行本
  • 購入: 1人 クリック: 30回
  • この商品を含むブログ (9件) を見る

パフォーマンス・チューニングだけの本と侮るなかれ。チューニングをするには、システム全体を見渡せる知識が必要なのだ。そういう意味で、本書は Unix (や Linux) に関する知識を深く、そして強く凝縮した最高の一冊だ。「Unix システムパフォーマンスチューニング」という名を冠しているものの、これですら名前で損してるとすら思える。本書で学べるのはパフォーマンスチューニングどころではない。カーネルの挙動を事細かに、そして何より実践的に知ることができる。

言語的なブラックボックスは SICP を始め様々な本で学ぶことができるが、Unix システムという巨大な仕組みをクリアボックスにしていくための本は、本書の上を行く本は知らない。





それでは次に、非技術書編行ってみよう。
非技術書編

10. 天地明察

天地明察(上) (角川文庫)

天地明察(上) (角川文庫)


本ブログの言及エントリ
渋川春海の魅力は、天才過ぎないこと。もちろん、並の人間に比べれば数学や囲碁の才能は際立っているが、圧倒的な強さを持っているわけではない。しかし、彼は努力で改暦に挑む。自分より優れた人間に出会い、その中で苦悩もありながら、なおも突き進むその姿に胸を打たれる。そして、本書で言及されている数々の出来事が、実際に起った史実を元にしているということも本書の魅力を際立てている。
江戸時代の物語ではあるが、現代に生きる我々の口にあうようにちょうど良い程度にモダナイズされている。原理主義者的には「なんで江戸時代の人が現代語を喋っているんだ」と憤るかもしれないが、普通の読み手にとってはこのくらいがちょうど良い。時代考証はほどほどで良いではないか。フィクションならまだしも、本書は史実を元にしているのだから。

9. 火星の人類学者

火星の人類学者―脳神経科医と7人の奇妙な患者 (ハヤカワ文庫NF)

火星の人類学者―脳神経科医と7人の奇妙な患者 (ハヤカワ文庫NF)


神経学・脳科学の第一人者、オリバー・サックス氏による著書。今まで出会った患者の中で興味深い症状を持った人とのエピソードを集めた短篇集とでも言うべき本。本書で紹介される7人のエピソードは、どれもこれも驚きに満ち溢れている。単なる突飛さだけでなく、彼らの、病気 ―という表現が正しいのかは不明だが― と共に生きるという意思、そこには強い感動がある。つまり本書には、2つの点の大きな魅力がある。すなわち、人間が持つ奇妙さと、それでも生きていくという意思を持つ人間の意思の強さ。両者どちらにも、感嘆。本書を読むと、人間にとって正常な状態とは何か?という深い疑問が頭をよぎる。正常な状態なんて存在するのだろうか、とすら思える本書の奇妙さは、人間という生き物に対する見方を覆す程だ。

8. 楽園の泉

楽園の泉 (ハヤカワ文庫SF)

楽園の泉 (ハヤカワ文庫SF)


本ブログの言及エントリ
軌道エレベーター建設のために邁進する男のストーリー。軌道エレベーターのアイディアは一見突飛で単なる空想上の産物にしか思えないものであるが、実はもう少しで本当に人類が手に入れられる可能性のあるものだ。軌道エレベーターを手に入れようとする人間の姿は、美しい。本書は実に美しい本だ。

カーボンナノチューブという素材を知った現代の我々にとっては、著者クラーク氏とはまた違った観点で見れるだろう。より実現可能性が高まったのだから。そして本書を読んだあとは、どうか自分が死ぬまでに軌道エレベーターが完成して欲しいと強く願っている自分がいる。軌道エレベーターが実現すればどれだけ宇宙への道が切り開けるかは本書の最終章を見てのお楽しみ。

7. 数学ガール 乱択アルゴリズム

数学ガール 乱択アルゴリズム (数学ガールシリーズ 4)

数学ガール 乱択アルゴリズム (数学ガールシリーズ 4)


結城浩氏の数学ガールシリーズ。一瞬技術書に分類しようかとも思ったが、非技術書で。

まったく、どうしてこうも結城浩氏はプログラマの心にぐっとくる本を出せるのだろう。テーマは乱択アルゴリズム。今までのシリーズの中で、一番コンピューターに近い。乱択アルゴリズムをテーマに選んだ結城浩氏のセンスに脱帽。というのも、乱択アルゴリズムには近未来を切り開く力があるからだ。なぜなら、計算量的に、決定的アルゴリズムでは解けない問題が我々の前に多数立ちはだかるようになってしまった。CPU のクロック数は5年ほど前から頭打ち。今後速くなったとしても、何らかのブレークスルーがない限りたかだか数十倍にとどまるだろう。数十倍では、弱い。100万年で解ける問題が1万年になったところで、現実的には解けないということには変わりないのだから。そのような一見ジリ貧の状況を打破するのが乱択アルゴリズム。近未来より少し遠い未来、すなわち量子コンピュータが実用化された未来では決定的アルゴリズムの計算量が問題にならなくなっているかもしれないが、少なくともそれまでは乱択アルゴリズムの重要性は今後もしばらく衰えることはないだろう。

6. ヒストリエ

ヒストリエ(7) (アフタヌーンKC)

ヒストリエ(7) (アフタヌーンKC)


漫画もエントリーしておこう。と言ってもヒストリエはもう 8 年ほど前に第一巻が発行されているので 2012 年のまとめとして挙げるのは不適切かもしれないが、それではいつまでたっても本書を載せることができないので、そろそろ。
作者はなんといっても岩明均寄生獣は言わずもがな、七夕の国もヘウレーカも、なぜこれほどまでにと思うほど良い漫画だった。その岩明均氏の、最新シリーズ。彼の漫画の特徴として、静かなシーンを描くのが巧み、というところだろうか。無駄な効果音を省いた、リアルな静けさがそこにはある。静けさがあるからこそ、登場人物の思慮が垣間見え、ストーリーに深みを与えている。一部のシーンだけ見れば乾燥しているように見えるかもしれないが、全体を通して見れば驚くほどウェット(ただしウェットなのは血によるところが大きいのだが)。

惜しむらくは、遅筆なこと。1年で1巻のペース。なんとか、エウメネスの将来を早くみたいものなのだが。

5. 本を読む本

本を読む本 (講談社学術文庫)

本を読む本 (講談社学術文庫)


読書がひとつの趣味とも言える自分には、とても効く本だった。本書の読了前と読了後では、同じ一冊の本から得られるインプットの量が異なるだろう。後者のほうが圧倒的に多い。読書について学習量を増やすには、読む速度を早めて多くの本を読むことと、同じ量からより多くの学びを得ることの2つがある。本書は後者に徹した、まさにタイトルどおり「本を読む本」。エンジニア的に言えば、メタ読書とでも言えるだろうか。人生の中でなるべく早めに読んでおけば、その後の人生で広く薄く、しかしずっと効力を持つ本だ。

4. 一九八四年

一九八四年[新訳版] (ハヤカワepi文庫)

一九八四年[新訳版] (ハヤカワepi文庫)


村上春樹1Q84 や、伊藤 計劃虐殺器官で言及されていたし、どうも古典的な名著らしいので読んでみたところ、いやはやなるほど、力を持った書籍である。描かれる退廃的な監視社会を一笑に付してはならない。似たような世界が現実に存在するではないか。そして、気づいてないだけで我々の世界も似たようなものなのかもしれないのだから。え?ビッグブラザーのような監視者は存在しない?気づいてないだけかもしれないではないか。それに、一九八四年の世界にも現実の世界にも存在する監視者がいる。それは、ビッグブラザーでもなんでもなく、普通の人々。お互いがお互いを監視する社会。mixi 疲れや facebook 疲れという言葉があるように、ソーシャルな世界が現実から電子の世界に移ってもお互いを監視せずにはいられず、また見られることを願っているのだ。

本書が名著として君臨しているのは、本書のストーリーが現実の世界に対する皮肉的な面を持っているからだろう。

3. 1Q84

1Q84 BOOK 1

1Q84 BOOK 1


本ブログの言及エントリ
で、村上春樹1Q84。今年はノーベル賞獲得か、というニュースで賑わったが、残念ながら逃したようだ。

青豆と天吾が迷い込んだ、月が2つある世界。村上春樹本の魅力として、登場人物がみな魅力的だという点がある。青豆に天吾、タマルや老婦人、そして醜くも魅力的である牛河。スムーズに体に染み渡るような読了感でありながら、その実、色濃い。本書は、賛否両論タイプのものだと思う。自分のように村上春樹信者にはヒットしたが、このストーリーや文体を受け入れられない人が多くいるだろうということも想像に難くない。

それでも本書を評価せざるを得ない。この独特の世界観は他の小説ではありえないのだから。この世界観は、現実とは少し違った世界へ誘ってくれる。その意味では、村上春樹の書籍は別の世界への導きの書であるとも言えるのではないか。

2. 脳の中の幽霊

脳のなかの幽霊 (角川21世紀叢書)

脳のなかの幽霊 (角川21世紀叢書)

  • 作者: V.S.ラマチャンドラン,サンドラブレイクスリー,V.S. Ramachandran,Sandra Blakeslee,山下篤子
  • 出版社/メーカー: 角川書店
  • 発売日: 1999/08
  • メディア: 単行本
  • 購入: 16人 クリック: 299回
  • この商品を含むブログ (142件) を見る

本ブログの言及エントリ
これほどまでに不思議な器官を備えてるということが不思議でならない。そう思う自分の脳こそ、その不思議な器官であるという事実も。いやはや、事実は小説より奇なり。脳は真に奇なり。

言うまでもなく、我々は脳で物事を考えている。たいした大きさもないこの器官が、数学や愛や脳について考えるのだ。本書で出会える奇妙な脳たちのその奇妙さといったら、「火星の人類学者」をも凌ぐ。あまりの奇妙さに、人間は脳の不思議を解明できるのだろうか?とすら思えてしまうが、その不安すら本書は吹き飛ばす。数々の科学者や、何より著者ラマチャンドラン氏の深い洞察を見るといずれ解明できるのではないかという期待感に変わる。

本書の著者ヴィラヤヌル・ラマチャンドラン氏は TED で公演しており、その動画がネットで見れるので一度は見ておくべきだ。ユーモアにあふれた大変素晴らしい動画だ。
TED - ヴィラヤヌル・ラマチャンドランの「心について」

これでもかというほど奇妙な脳に出会って感じるものは、脳という器官の魅力。これを感じるのもまた脳。それを強く認識させられる本書は、一人の人間が世界の見方を変えてしまうほどの力を持つ。

1. 幼年期の終わり

幼年期の終わり (光文社古典新訳文庫)

幼年期の終わり (光文社古典新訳文庫)


著者はあのアーサー・C・クラーク御大。本書を読み終えた時の最初の乾燥は、「よくこんなストーリーが同じ人間に思いつくものだ!」というものだった。本書に出てくるようなオーバーロードといった別種族ならまだしも、同じ人間としてこのようなストーリーを思いつけるのは、本当にクラーク氏の思考には驚愕だ。本書のストーリーも、そしてこのストーリーを思いつけるクラーク氏にも、こう思わざるを得ない。人類の可能性のなんと大きいことか。人間という種族が誕生して数万年、これほど豊穣な思考が生まれる時代に生まれたことに感謝したい。

しかしその一方で、本書を読めば読むほどこう思う。人類は「本書が指す幼年期」の幼年期にも達していない、と。ふと世の中を見渡せば、血液型占いや星座占いが当たり前のようにテレビで放送され、占い師が占い師として職業を確立し、マイナスイオンやパワースポットで金儲け。ゲルマニウムで疲れが取れ、水にありがとうと言えば綺麗な結晶になる。そして、神様の存在は当たり前。いったいこれからどれだけ時間が経てば、科学がその重大さに見合うだけの地位を得るのだろうか。

それでもいずれ幼年期の終わりがやってくると、信じたい。
それだけの力を人間は持っていることを、本書は示している。



まとめ

技術書はマルチスレッド関連の書籍を、非技術書は SF 系を多く読んだ年だった。どちらも、素晴らしい良書に出会えた。

来年は Amazon の kindle による、電子書籍市場の活発化を願う。オライリーオーム社、達人出版会も電子書籍化には前向きのようだし、技術書は物理的に重い本が多いのでそういった本が電子書籍化されればありがたい。まったく kindle の読みやすさは本当に革命だ。まだ小説などの軽い本が多く電子書籍化されているように思えるが、今後小説に限らずどんどん発展して欲しい。



たくさん本を読んで、たくさん良書に出会った良い一年でした。
それでは、良いお年を。