C++の設計と進化という本を読んでみましたので感想を書いておきます。
この本は、C++の生みの親であるBjarne Stroustrup氏が、C++を設計した際の思い出を回顧して書いた本です。思い出ですので、C++の仕様そのものよりも、何故今の仕様になったのか、何故他の仕様にならなかったのか、そうした経緯の方に重点が置かれています。
この本を読み終えての第一の感想は、
「私ってC++のことを全然分かってなかったんだなぁ・・・」
というものです(もちろん、読み終えれば分かるものでもなく、今も分かっていません)。
例えば用途面。
今まではC++が何に使われているかなんとなく分かっていたつもりでしたが、それは全体のほんの一部でした。C++について偉そうなことを言うのは止めようという気になりました。
例えば機能面。
なぜC++にガベージコレクションがないのか、なぜ言語レベルでスレッドをサポートしていないのか、なぜCとの互換性をあれほど重要視したのか、私は分かってませんでした。いや反省。
第二の感想は、
「Bjarne Stroustrup氏って頭良いなぁ」
というものです。
この本には、ユーザからの要望や仕様が衝突したとき、どのように考え、どのように結論を出したか、具体的な思考の過程がたくさん書いてあります。
私が読んだ限りでは、こうした衝突に対し、Bjarne Stroustrup氏は実に深く物事を考え、解決していっています。
その思考プロセスは、ちょっと応用すれば、C++以外にも様々な事例に適用できるものだと思います。私には大変参考になりました。
C++に新機能を追加するかどうか判断する際、その機能をC++ユーザ(すなわち開発者)にどれくらい簡単に説明できるかという点や、それをどれくらい簡単に実装できるか(コンパイラを作れるか)という点を重視していたのが印象深かったです。
そんなわけで、色々勉強になりました。
C++に対して何か想い(好きでも嫌いでも良いです)がある方にはお勧めの一冊です。