Books

これまでに読んだ本の書評。

コンピュータ専門書

はじめてのC++

技術評論社

かの「はじめてのC」と同じ技術評論社から出版されているC++本。「はじめての」というタイトル通り、Cを知らない人向けに1から解説がなされている。(その分、Cから入った人にはデータ型の説明などはかったるいし、途中に潜んでいるCとの相違を見落としやすいのだが……)少なくとも、「はじめてのC」よりは初心者向けと言えるであろう。
時代の流れを汲んでか、実行環境としてLinux上のgccを想定している。それはよいのだが、cursesライブラリやgetoptパッケージなど、思い切り環境依存の章があるのが多少気にかかる。「実用的なプログラムの書き方に触れて、プログラミングへの興味を持ってほしい」という配慮なのだろうか。
また、例外処理、テンプレートについては一切の記述がなく、コピーコンストラクタにも触れられていないなど、これらを学ぼうと思って本書を購入した私はひどくがっかりした。cursesに費やすページがあるのなら、これらの記述を充実させてほしかった。 上級を目指そうという人には物足りない部分もあるが、はじめてC++に触れる人には悪くない選択であろう。

はじめてのC

ともすると卑猥な内容かと推測されそうなタイトルで有名な、ANSI Cの参考書。1から詳細に触れられているものの、詳細すぎるあまり入門書と言うよりはリファレンス的存在であり、「はじめての」というタイトルを信じて飛びつくと痛い目に遭うだろう。Cのプログラマは皆この本を読んで育ったとされる。(そして、彼らの鞄には常にこの本が入っているという。)
ただ、ローカル変数へのポインタを返す関数という、致命的な誤りを含んだサンプルコードが1ヶ所あり、誠に残念であると言わざるを得ない。簡単な標準関数に関する解説もついているため、簡単なプログラムならこれを手元に置いておくだけで書ける。
2001年夏に改訂されたが、印刷の質が変わった程度で内容にはほとんど変化がない。現在はより詳しく、わかりやすい入門書がたくさん出ているので、そちらをあたるべきと思われる。

Dr.JamsaのC++超入門

C++について簡単に学ぶための本である。Cを全く知らない人を対象として書かれている。「超入門」とあるように、1つ1つの解説はそれほど詳しくなく、C++の全体を俯瞰するという構成になっている。逆に、例外やテンプレートなどについても簡単に記されており、「どのような技術があるのか」を知ることができるので、より詳しく学ぶための道しるべとなるであろう。

標準C++の基礎知識

アスキー出版局
柏原 正三 著

CのプログラマがC++へ移行するのを助ける目的で書かれた本。Cの知識を前提としており、Cを知らないと読みこなすのは難しいだろう。その上で、C++の特徴の全てを詳細に解説している。最新のC++に適合した記述となっており、namespace、STLやRTTIなどについても触れられている。C++をしっかり学びたいと考えているCプログラマにはぜひおすすめしたい。

アルゴリズムC++

近代科学社
R.セジウィック 著

プログラミングをする上で基本となる各種アルゴリズムを、C++によるサンプルコードを交えながら解説したアルゴリズム入門書。アルゴリズムを学ぶ際の非常に有名な教科書である。内容は理論に偏りすぎず、また実用に偏りすぎることもなく、ちょうどよいバランスを保っている。紹介されているアルゴリズムは非常に多く、一般的な応用であればこれ1冊で足りるだろう。さらに高度なアルゴリズムを学ぶための土台としても十分活用できる。C/C++プログラマに限らず、プログラマ必携の1冊。また、ほぼ同じ内容を他の言語(C/Pascal)を使って説明している本も出版されている。

プログラミングWindows 第5版(上)(下)

ASCII
Charles Petzold 著

通称「Petzold本」。Windows2000時代に合わせて全面的に改定され、日本では2000年10月に発売された。Win32SDKを使ったプログラミングについて基礎から解説している。そのため本は非常に厚く、価格も高い。MFCを全く使わず、CとAPIだけで書いていくので、生のWindowsプログラミングそのものを学ぶことができる。SDKプログラミングの知識はMFCやVisual Basic、Delphi等においても十分役に立つので、Windowsプログラミングをはじめようと言う人にとってはまさに必携の一冊。ちなみに私が持っているのは、この1つ前の版である「プログラミング Windows95」である。2002年夏に、C#と.NETにあわせて改訂された。

Win32システムプログラミング

アスキー出版局
Johnson M. Hart著

主にWindowsNTを中心とした、Win32のシステムサービスについての本。Win32の例外処理、セキュリティ、プロセス、スレッド、レジストリなどについて学ぶことができる。主にNT上のサーバーアプリケーションを想定して書かれたものだと思われるが、「NTサービス」に関する記述がないのが残念である。

Win32マルチスレッドプログラミング

ASCII

Win32でマルチスレッドアプリケーションを書く際の必需品と言ってもいいだろう。一貫して「競合条件を避けることを最優先とする」と言う考えが貫かれており、マルチスレッドアプリケーションのデバッグ手法などにも言及している。また、C標準ライブラリとの併用例、MFCにおけるスレッドの使い方、GUIアプリケーションにおけるスレッドの設計など、マルチスレッドアプリケーションの基礎から実用に至るまでの完全な知識を得ることができる。Win32のスレッドに関する本としては最高の逸品。

Winsock 2.0プログラミング

SOFTBANK Publishing

Winsockの基礎から応用までを学ぶのに最適な一冊。これ以外のWinsock本を読んだことはないので優劣はつけがたいが、気になる点を挙げるとすれば、関数などの紹介が文中では簡単に済まされており、巻末にリファレンスとしてまとめられていることだろう。ただ読んでいくためには読みやすいのだが、実際にコードを書くときには文中にリファレンス的説明が豊富であった方が便利だ。

プログラミング作法

ASCII
Brian W. Kernighan/Rob Pike

Cの設計者であり、「プログラミング言語C」、通称「K&R本」の"K"にあたるカーニハンがRob Pikeと共に書いた本。コードを書く上で気を配るべき様々な点について、各種の格言(例えば「悪いコードにコメントをつけるな、書き直せ」)を交えながら正しい作法について述べている。スタイルに始まり、設計、デバッグ、テストなど、実際のプログラミング現場を意識した作りとなっている。C/C++/Javaを主な対象とし、同じプログラムを3つの言語で書いて見せたりして、それぞれの言語の特色を生かすコードの書き方を学ぶこともできる。

オブジェクト指向による再利用のためのデザインパターン 改訂版

SOFT BANK Publishing

もっと早くに買っておくべきであった。……この本を手に取ったとき、そう痛感した。この本はオブジェクト指向プログラミングにおける設計を扱った本である。オブジェクト指向プログラムを書いていく中でよく使う設計手法を数十種類のデザインパターンとしてまとめている。デザインパターンとは、簡単に言えばオブジェクト相互の関連構造をパターンとして分類し、名付けたものである。よって、デザインパターンはもっとも基礎的な設計概念であり、言語によらず適用できる概念であるといえる。
サンプルコードはほとんどがC++であるので、C++においてオブジェクト指向プログラミングを行っている人はぜひ購入することをお勧めしたい。なお、同様の内容をJavaで説明した本も出版されているので、Javaプログラマはそちらを買うといいだろう。

Effective C++ 改訂第2版

アスキー出版局
Scott Meyers

正しく、"C++らしい"コードを書くためのキーポイント50個について解説した、C++のテクニック本。内容は高度…かと思いきや、半分以上は「あたりまえじゃん」と思えるような事だった。当たり前だと思えるということは自分のやってきたことは間違いではなかったんだと納得してみる。C++を本気で学びたいと思う人は読んでおくべき一冊であろう。ただ残念な点は、訳者の能力不足か、原著者の文章力のせいか、文章がいまいち読みにくかったり、文意が把握しずらい部分があったりすることだ。私が英語圏特有の言い回しやジョークになれていないだけかもしれないのだが。

データ構造とアルゴリズム

培風館
A.V.エイホ・J.E.ホップクロフト・J.D.ウルマン著/大野義夫訳

学科の講義「アルゴリズムとデータ構造」で買わされた教科書。高くて(\4,700)古いだけの教科書だと思っていたが、意外とアルゴリズムの説明はわかりやすい。いくつか同じアルゴリズムについて上記「アルゴリズムC++」と見比べてみたが、こちらの方がアルゴリズムの動作についてわかりやすい記述がなされていた。サンプルコードは全てPascalで書かれているが、他の言語に慣れた人でも読むことはさほど難しくないだろう。教科書として使われるだけあってアルゴリズムの計算量に対する数学的評価はしっかりしている。

クラッキング防衛大全 第3版

翔泳社
Stuart McClure / Joel Scambray / George Kurtz

コンピュータセキュリティに関する総合辞典。徹底して侵入者の視点からどこを防ぐべきかを、一から丁寧に解説している。システム管理者なら必ず読んでおくべきだろう。現在ではLinux及びWindows2000に特化したバージョンも出版されているので、この本とあわせて読むと効果的であろう。
おもしろいのは、この本の原著でのタイトルは「Hacking Exposed」なのだが、日本語版では「クラッキング防衛大全」となっている点である。「ハッカー」と「クラッカー」の使い分けに対しては日本人の方がうるさいということなのだろうか?

その他

闘うプログラマ

日経BP
グレッグ・パスカル・ザカリー

今はなきDEC(Digital Equipment)の往年の名機であるVAX、そのOSたるVMSを開発した伝説のプログラマ、デイヴィッド・カトラーがDECを追い出され、Microsoftにやってきた。彼はそこでNTと呼ばれるプロジェクトを率いることになる……。という話。要はWindows NT 3.1開発の物語。Microsoftの自由さと厳しさが描かれている。プログラマならずとも一度は読んでおきたい名作である。
ちなみに、この物語に登場する人物が、ここのところ相継いでMicrosoftを離れていった事実は残念でならない。

ホームページ辞典

翔泳社
アンク著

「ホームページ」という単語を見て吐き気を覚える方はちょっとやりすぎであろう。確かに「インターネットする」は明らかにおかしな言い方だが、所詮言語と文化は多数決である。やんぬるかな……。
さて本題。この本はHTML/CSS/JavaScriptの入門書兼リファレンスである。一からWeb関連の技術を学ぼうと思う人に勧めるにはちょうどよいだろう。
この本の特徴は、HTML 4.xの思想を若干なりとも取り入れているところ。もちろんFONTなどのエレメントについても解説されてはいるが、HTML 4.01で廃止または使用停止を勧告されているものについては「Deprecated」ロゴがつけられ、1目でわかるようになっている。
ただ残念なのは、エレメントとHTMLのバージョンに関する関係が分からないことだ。エレメント解説のページに、対応するHTMLのバージョンを記載しておいてほしかった。例えばMULTICOLのような、もとよりHTML標準に入ったことすらないようなエレメントについては当然Deprecatedロゴもついていないため、初心者は正式に使ってよいエレメントと思うだろう。まあ、User-agent独自のものについては"IE"ロゴか"NN"ロゴのどちらかしかついていないので使用を避けることもできるのだが…。
入門書であるだけに、もう少しHTMLの文法や思想と言った概念に深入りして欲しかった。入門者に正しい知識を与えるのが入門書の使命であるからだ。

個人的には、MULTICOLの機能は欲しいと思っている。CSSでサポートしてくれなかったのが残念だ。

ロボットにつけるクスリ 〜間違いだらけのコンピュータサイエンス〜

アスキー出版局
星野 力

その昔(1999年頃?)月刊ASCIIに連載されていた読み物の単行本。人工知能、人工生命、ゲーム理論、FPGAの話などを扱っている。コンピュータサイエンスに興味のある人にはとても読みやすく、おもしろい本であろう。

コンタクト

一時映画にもなった小説。映画はつまらなかったが、原作である本書は最高傑作である。SETIの研究者であるエリーは、琴座のヴェガから特異な電波が送信されていることを発見する。その電波は一定のパターンで脈動を繰り返し、脈動回数を数えてみると2,3,5,7,11,...と素数になっていたのだった。さらにその電波を解析してみると、背後に膨大な<メッセージ>が隠されていることがわかった。それはとある<マシーン>の設計図だった。<マシーン>は果たして異星人とのコンタクトを実現する夢の機械なのか?それとも、異星人が仕掛けたトロイの木馬なのか? ……というお話。
特に、宇宙、科学、宗教とそれらの繋がりについて深く考えさせられる。科学者が宗教に対してとるべき姿勢とは?科学者を目指す人は必読。

電子工作のためのPIC活用ガイドブック

技術評論社
後閑哲也

PIC(Peripheral Interface Controller)とは、その名の通りコンピュータの周辺機器のコントローラ用として開発されたプログラマブルICである。PCで書いたプログラムをPICに書き込むことで、非常に簡単に回路を制御することが可能になる。サークルの仕事で使った際に非常にお世話になった。
この本はPIC初心者を対象に、PICの基礎から応用例までを扱った本である。この本自体は割とPICについての一般的な事項を書いているため、実際にPICを利用した開発をするためにはもう何冊かの参考書、そして対象のPICそのもののデータシートが必要だろう。
しかしながらいずれにせよ、これからPICを始めようという人は読んでおくべき一冊である。

そのうち読みたいな…


戻る

Copyright (C) 2001-2007 Seal Software <sealsoft AT sealsoft.jp>