seraphyの日記

日記というよりは過去を振り返るときのための単なる備忘録

「C++設計と進化」を買う

C++の設計と進化
C++の設計と進化
 C++の日本における最も著名なエヴァンジェリストであり、cppllメーリングリストで主催者、且つ、この本の翻訳者であるエピステーメー元帥が宣伝していたので予約購入。
 そのかいあってか、初日でコンピュータ部門トップの売り上げで、品切れ続出、ただちに重版決定とか。
 たしかにビアルネ・ストラウストラップ大神が一人で主導してきたC++の設計の経緯が詳しく書かれているし、標準化委員会というものが流されやすい安易な機能拡張と管理者によるマーケティングによる泥沼化などを避けるための努力、その結果がCとの最大の互換性、パフォーマンスおよびオーバヘッドの最小化、特定のアプリケーションドメインに特化した有用な機能を「あえて」つけないというポリシーなどを守ってきたこと、その重要性が、よく分かる。
 JAVAも、ある意味、SUNだけが言語仕様を管理しライブラリの拡張も言語拡張も十分に練られて、ぎりぎり待てないヨ、というぐらいのタイミングで出されている。いわゆる「新しいアイディアに飛びつく」という姿勢ではない。このしっかりとした管理方法には最近敬意を払うべきだな、とは感じていたが、このC++の思想により一層、その思いを強くする。(しかし、C++では、ちょっと待たせすぎたような気もするが。)
 しかし、実際のところのC++では標準化は進められたものの、つい最近まで手軽に使えるような「まともな実装」がなかったので、標準化といいつつも「絵に描いた餅」状態が長らく続いた。JAVAのようにリファレンス実装とかでAT&Tから出してくれればよかったのに。
 また、Windowsプログラマならかなりの高確率でお世話になっているであろうVisualC++ではマイクロソフトによる便利な拡張が多数施されていて、結局、標準化という軸は必ずしも現実とマッチしているわけではないのが残念なところ。仕様書と実装が(私が知る限り)完全にマッチしているのはJAVA言語ぐらいか。(Eiffelは方言は少ないが言語仕様そのものが変遷したのでダメ。)
 まあ、ともかくJAVAユーザも、この本を読むことによってJAVAの設計思想の先進性や合理性を再確認したり、JAVAが単にC++の文法だけを借用したわけではないことなど、言語設計のコモンセンスとして得られるものは多いと思う。



そーいえば、何かの雑誌(DDJ?)でC++の標準化は大成功。各ベンダーにはC++コミュニティから標準化準拠への要望、圧力が強くベンダーも標準化するために多大な労力を惜しまなかったが、C言語のC99仕様などの新しい仕様については標準化委員会の思惑は外れ、ベンダーもコミュニティも追従せず、その要望も乏しい。あきらかに失敗している、と評されていたナァ。