Entry

少し前立ち読みした本 - 『C/C++プログラミングの「迷信」と「誤解」』

2011年03月27日

最近パソコン本(特に邦書)がつまらないもんで,買って読むどころか立ち読みしようとすら思わないんですけれど,本書は立ち読みで読みました。立ち読みで済ませたものを紹介するのもアレなんですけれど,ま,一通り読んだので……。

C/C++プログラミングの「迷信」と「誤解」
高木 信尚
技術評論社
売り上げランキング: 30660

本書は,C/C++ の「言語仕様」を主な論拠にして,巷で主張されている誤解を正そうと試みた本です。例えば,C/C++ 界隈ではいまだに「コンストラクタで例外を投げてはいけない」みたいな迷信があったりしります。こゆあれこれをトピック形式で扱っている。

Amazon の紹介(出版社の説明)では「未経験者にも最適」と書いてあるけれど,迷信について扱っている本なので,ある程度開発の現場に身を置いた人でないとピンとこないだろうと思います。一方,現在 C/C++ でプログラミングしている向きにとって,あやふやな知識や定かでない情報を一元化する意味では,まとまっていて便利に使えると思います。

もっとも,本来,こゆ話は,C/C++ の規格書や『C++の設計と進化』を読んで,主張の整合性を確認していくのが本筋で,それなりにキャリアのある C/C++ プログラマは自分で本書にあるような作業をしているんですね。ですから,悪く言えば本書はそうしたバイブル本の焼き直しであるともいえるし,初心者からそうした機会を奪う本だとも言えるんじゃないだろうか。少なくとも,初心者さんが本書を読むときは,そゆコト(ショートカットして楽してるんだぞとゆこと)も踏まえている必要があると(オジサン的には)思います。

C++の設計と進化
C++の設計と進化
posted with amazlet at 11.03.28
Bjarne Stroustrup ビョーン ストラウストラップ
ソフトバンククリエイティブ
売り上げランキング: 81526

もうひとつ,本書で扱っているトピックの中には,ややマニアックな言語仕様に関する話もあって,実際の開発場面でそれほど重要だろうか,と思えるものもあります。例えば,仮想継承を含んだ多重継承の構築順がとある会社の入社試験問題に出た,なんて書いてあったけれども,こゆ問題は知ってるか知ってないかの話で考えさせる要素がないし,あまり一般的ではない文法事項を出題している点でも良い問題とは言えません(単に落とすための問題)。本書を必要としているような向きは,こゆところで立ち止まる前にやることはいくらでもあるとも思う。

最後に,トピックにおける最終的な主張について,筆者の立ち位置を少し踏まえておく必要があるんじゃないかとも思います。個人的に,本書の筆者さんは,やや規格書至上主義に偏っているところがある気がしている(本書に限った話かもしれないが)。例えば,規格書と処理系の実装が異なる場合は,「処理系が悪い(規格書と異なる)から処理系を変えろ」みたいなことを主張する。もちろんそれはそれで正しいんだけれども,これは今だからこそ言える正しい主張だということも忘れちゃいけません。

新規開発ならまだしも,世の中のプログラムのほとんどは,派生開発や保守開発の類です。老舗のソフトハウスが作っている売れ筋ソフトのソースコードほど,「現在の時点から見て」普通に汚かったりする。もちろん,VC5 や VC6 で作られたプログラムの処理系が規格書どおりじゃないのはみんな知ってるわけで(規格化される前の C++ 処理系だから),それでも使っているのには理由があります。同僚の某人曰く,「処理系のバグも踏まえてプログラミングできるのが一流」だそうだけれども,(一流かはともかく)大抵のソフトウェア開発が,限定された開発環境の制約下で行われていることを忘れちゃいけないとは思うわけです。そして,そこには規格書とは異なる(時に真逆の)プログラミング作法がある。

ともあれ,本書は知ってるつもりだった C/C++ の言語仕様を見直すのには,いい頭の体操になるんじゃないかと思います。また,本書の類書は過去から現在までたくさんあるけれども,本書のように規格書を引用して論拠を明確にしているものを読んだことはありませんでした。この点については,非常に好感が持てます。一読して損はないかと。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN