名題
極めて興味深く,ではあるが特殊な本である.C++はどのように開発されたのか.
C++はどのような進化を遂げたのか.
これらを述べた本であるが,実によい題であると感じた.
頭の良い著者である.
裏を返せば,プログラミング言語は「開発」されるものであり
「進化」するべきものでもあるということを
著者は暗に言いたかったのであろうか.
それは考え過ぎか・・・
C++中級者でも全てを理解するのは難しいと思う(私を含め).
良くも悪くも期待を裏切られた.
多くの新たな発見があった一方で,うんざりするような(病的な?)
C++に関する議論,コードとも格闘する必要があった.
ただし全てを完全に理解しなくとも,C++に興味がある人であれば
何らかの発見は必ずあると思う.
C++は決して思いつきで生まれたものではない.
理論的に導かれたものでもない.
多くの知識,経験を基に「開発」されたものである.
さらにその「進化」を認めている.
決して理想論ではなく,実際にユーザ(プログラマ)が
その言語を利用した結果どうであったかを
フィードバックし,さらにその言語を改良する.
この一見簡単そうであるが極めて難しい作業を
著者は自然とこなそうとしている.
たとえ新しいプログラミング言語を作ること自体が
そんなに難しいことではないとしても,
「使える」「万人が納得する」「矛盾がない」「効率がよい」・・・
こだわりたい条件を満たすものを作るのは容易ではない.
それらをすべて極めて論理的に処理する著者の思考過程には脱帽である.
C++云々だけではなく,著者のそういった部分にも驚きを覚えた.
ただし,読んでみなければわからないのであるが,
思考過程,考え方などが著者と異なる人は
読むのが辛いかもしれない.
「何故そこでそこにこだわるの?」
「なぜそれが問題なの?」
おそらくいったん著者に疑問を持ってしまったら
もうこの本は読めないであろう.
C言語+simula(クラス)として生まれたC++の設計思想の書
C言語+simula(クラス)として生まれたC++の設計思想の書。C++初心者にはお勧めできません。
少なくともC++の言語仕様とオブジェクト指向プログラミング手法の
理解がなければこの本の内容を曲解してしまうのではと心配になります。
言語設計段階の紆余曲折の過程は正しく言語を理解した上でなければ
まどろっこしく感じてしまうでしょうし、
非常に詳細な500ページ以上の分厚い本であり
すぐに役立つようなHowToを解説しているわけではありません。
取り上げるサンプルコードも言語設計にとっては不可欠でも
一般的なプログラミングでは現実問題にならないケースも多々あります。
中級以上のC++プログラマがさらに深い理解を得るための最良の書だと思います。
設計思想に関しては
純粋完全な理想言語より、不純で不完全で選択の自由のあるC++こそが
”今日の”実践的な言語であることが解説されます。
言語仕様に関しては
言語設計者の視点から詳細な仕様が解説され
想定される機能要求から言語仕様が導き出される過程により
単なる言語リファレンスよりも深い理解を得ることができます。
* * * * * *
著者の期待以上の発展をとげたテンプレートは
特に設計者としては自慢の息子といったところなのでしょう。
JavaとC++が世間で思われているよりずっと異なるとする著者本文と
Javaの設計理由が本書でわかるとする訳者あとがきのギャップも楽しめます。