tkenichi の日記

毒舌皮肉系恥さらし日記

C++の設計と進化

C++の設計と進化

C++の設計と進化

500ページ以上ある。実はまだ全部読めていない。

コンピュータ書籍で500ページぐらいあるのは、マニュアル的な本や How To ものの本なら珍しくはないし、読む方も全部読むというよりも、わからないところを探して読むという感じなので、全体をななめ読みするには余り時間はかからない。

この本は違うぞ。設計と進化と書いてあるけど、ソフトウェアの設計ではなく、プログラミング言語の設計。C++の言語の設計の中心にいた著者が、どの機能を取り入れ、または取り入れるのをやめたのか、周りの人をどのように説得していったのか、開発者をスムーズに移行させるにはどうすればいいか、など言語が進化していく過程を生き生きと語っている。コンピュータ言語の書籍で知的興奮を覚えたものは久しぶり。

たぶんC++よりも思想的にきれいなオブジェクト指向の言語は他にもあると思う。でもC++はそれを目的にしていない。現実の問題に役に立つということを重視し、そのためなら完全主義を曲げてもよいとまで考えて設計してある。そのおかげでパフォーマンスも妥協せずに、かなり自由度の大きい、商用のパッケージソフトの開発言語としておそらく現在トップの地位を占めるものになった。もともとの専攻が数学で、観念論よりも経験主義のほうがしっくり来るという著者の思考のバイアスも、(恐れ多いけど)近いものを感じて、一つ一つの設計の理由の説明も納得することが多かった。

プログラムの設計やデザインパターンの「おまじない」的な部分を少なくしたい、なぜ言語がそういう設計なっているのか理由を知りたい、というひとにはとても面白い本だろう。たぶん私もこれから何度も読み返す本になると思う。