2005年01月21日 金曜日

Bjarne Stroustrup / 「C++の設計と進化

購読しているMLではないけれど、επιστημηさん主催のC++:language&libraries(cppll)メーリングリストで案内されていたので購入してみた。(このMLはFreeMLで運営されているので購読してない。アーカイブをROMしている。) C++でプログラムを書くことがなくなって久しいのですが、前から興味があった本なので。
επιστημηさんが監修、岩谷 宏さんが訳なのだが、岩谷さん以外の名前が読めない… (επιστημηさんは「えぴすてーめーさん」、Bjarne Stroustrup先生は「ビャーン・ストロウストラップ」で言いのかな? 難しい名前ですねえ。) 岩谷さんは脚注がなければ、この手の技術書の翻訳としては非常に読みやすい翻訳家さんだと思うので、主張が気に入らない自著以外は結構購入しています。
ざっくり言えば、C++の設計者であるBjarne Stroustrup先生からみたC++の歴史とも言うべき本で、何故この仕様がこうなったのかが分かる本じゃないかと思う。(たとえば演算子多重定義は制限をつけてOKとしているけど、演算子の新規定義は何故駄目なのかとか、多重継承を導入した話とか・・・) ああなるほどと思うところがあるので面白いと思います。
C++好きはもちろん、アンチC++な人もこの本を読んだ上で、何故ゆえ今のC++となったのか理解した方が良いかもしれないと思います。個人的にはBjarne Stroustrup先生やるなあと言う感じです。(失礼な言い回しかも。)
内容は前半がC with ClassesからRev.2に至るまでの歴史的な経緯、後半がRev.2からISO規格になるまでに盛り込まれた機能別なまとめになっていて、前半は通しで読み、後半は興味があるところから読める仕掛けになってます。あと前書きとしては長いけども、日本語版に特別に書き起こされたBjarne Stroustrup先生の原書が発行されてから今年までのフォロー(30ページくらい)が読める。ここ10年C++の規格には大きな動きはなく、template周りでようやく仕様にコンパイラが追いついたという状況。最近の成果(Boostとか)を取り込んだ新しいライブラリを含む新規格が出るらしい(もうでたのかな)ことと、やはりSTLの登場で始まったGeneric ProgrammingがC++の重要なトピックスになった話などがたのしめる。(JavaのGenericsも少し遊んでみたけど、Iteratorの機能が貧弱であのライブラリではSTLのような柔軟な処理ができなさそう…)
まだ4章くらいまでしか読んでないが、C++がちょっぴりしかわからない僕でも読み物としてかなりたのしめるので、興味がある方はどうぞ。ページ数と情報量の割には、そんなに重たくないので通勤時でも読める印象。まぁ趣味のネタ本と言うことで。(コンピュータもので買おうと残っているのはあとはKnoth先生のあのシリーズですね。)