2011 年上半期に読んだ情報技術系の書籍の感想 #2

その 1 に続き、2011 年の上半期に読んだ情報技術系の書籍について軽くまとめておきます。 本記事では各言語以外の書籍を。

Web 関係

HTML5: Up and Running

HTML5: Up and Running

HTML5 の移行するための web デザイナ向けの本。 重要な点がコンパクトにまとめられていて良かったです。 普段から HTML5 関係の話をネット上で追いかけてる人にとってはあまり意味が無いかもしれませんが、そうでない人にとっては有用でしょう。
和訳は 『入門 HTML5』 です。

Canvas Pocket Reference: Scripted Graphics for HTML5 (Pocket Reference (O'Reilly))

Canvas Pocket Reference: Scripted Graphics for HTML5 (Pocket Reference (O'Reilly))

HTML5 での標準化が進められている canvas 要素と、canvas 上に描画するための API の説明。 Web 上を探すと色々と情報はありますが、ポケットリファレンスとして小さくまとめられているので卓上に置いておいても損は無い一冊。 安いですしね。

Firefox 3 Hacks ―Mozillaテクノロジ徹底活用テクニック

Firefox 3 Hacks ―Mozillaテクノロジ徹底活用テクニック

Firefox のアドオンを開発したり、その他 mozillaXUL プラットフォーム上で動くアプリケーションを開発する際に役立つ情報がいろいろと載っています。 Web 上の mozilla の公式ドキュメントはわりと充実していますが、ドキュメントに載っていない (またはなかなか探し当てられない) 情報が色々載っているので勉強になりました。

Googleプログラミング入門―覚えておきたいGoogle AJAX APIの基礎知識

Googleプログラミング入門―覚えておきたいGoogle AJAX APIの基礎知識

Google の web サービスを web ページ内に組み込んで JavaScript で処理する、ってことに関するサンプル集のようなものです。 Google Maps を自サイト内に組み込んだり、自サイト内で Google 検索ができるようにするといったことを実現するためのサンプルコードが示されています。
リファレンスドキュメント (今回の場合だと、Google が提供しているドキュメント) を見ながらプログラムを書くことに慣れていない人用に書いてあるようで、ドキュメントを見ながらプログラムを書ける人にとってはほとんど役に立たないと思います。 あまりプログラムを書いたことがない人にとっては役立つでしょうが、サンプルコードがあまり綺麗じゃないのでオススメしません。

言語処理系

プログラミング言語を作る

プログラミング言語を作る

実際に言語処理系を開発する流れを例にとって、言語処理系の開発方法について説明しています。 下の 『プログラミング言語処理系』 は非常に教科書的ですが、こちらは実際の開発を例にとっていて取っ掛かりとしてはこちらの方がわかりやすいと思います。 逆に、ちゃんとした説明が不足している部分もありますので、この本を読んだ後は、『プログラミング言語処理系』 や他の言語処理系の本を読んで、知識を深めていけばいいかと思います。

岩波講座 ソフトウェア科学〈〔環境〕5〉プログラミング言語処理系

岩波講座 ソフトウェア科学〈〔環境〕5〉プログラミング言語処理系

言語処理系の開発に関する教科書的な本。 言語処理系の入門書としてはわかりやすくて良かったと思います。

情報技術系の教養 (?)

オブジェクト指向

増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

いわゆる 『GoF 本』 (オブジェクト指向における再利用のためのデザインパターン) をわかりやすく書き直したものであるが、ただのデザインパターンの紹介になってしまっており、重要な点が抜け落ちてしまっているような気がした。 あまり読む価値は無いように思う。
いま 『GoF 本』 を読んでいるところですが、『GoF 本』 を読めば本書は読む必要が無いかと。

オブジェクト指向でなぜつくるのか 第2版

オブジェクト指向でなぜつくるのか 第2版

オブジェクト指向の本質を解説する」、というようなことが謳い文句として書かれているが、どうも本質を外しているようにしか思えない。 プログラム言語の歴史的な発展に沿って、「なぜオブジェクト指向という考え方に至ったのか」 という説明をしているが、「モジュール」 に関する説明が無く、オブジェクト指向の中にモジュール化というものを入れ込んでしまっていた点は疑問が残る。 また、必ずしも 「クラス」 という存在がオブジェクト指向の中心的存在であるわけではない (とわたしは思っている) のに、オブジェクト指向の三大要素の一つにクラスを据えるなど、ちょっとオブジェクト指向の本質からずれていると言わざるを得ないと思う。
とはいえ、全部が全部変かというとそうでもなくて、それなりにオブジェクト指向の利点を挙げているので、読み進めているうちは 「なるほどなー」 という気になれる。 そういう気になれるが、読み終わった後に 「じゃあオブジェクト指向の本質は何か」 と考えると、この本はわりと本質を外しているように思える。 という厄介な本な気がした。
みねこあさんとこの オブジェクト指向でなぜ作るのか を買ってみました がこの本のレビューとしてはわかりやすくて良いかと思います。 (みねこあさんとこのは第 1 版に関するレビューで、第 2 版はだいぶマシになってるという話もありますが)

ネットワーク関係

ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識

ネットワークはなぜつながるのか 第2版 知っておきたいTCP/IP、LAN、光ファイバの基礎知識

クライアント PC 上の web ブラウザが web サーバーにリクエストを投げて、web サーバーから返されたレスポンスをみて web ページを表示する、という流れを題材にして、ネットワークの全体像を捉えるという書籍です。 アプリケーション (web ブラウザ) の処理から TCP/IP の話、物理層の話、と順に説明がなされています。 ネットワークの全体像を把握できるという点で、面白い切り口だと思いました。

その反面、様々な分野 (TCP/IP に限らない) の話が入り乱れており、ネットワークに関する入門書としてはやや理解しづらいのではないかと思いました。 TCP/IP など、ネットワークに関する断片的な知識を持っている人がそれら断片的な知識を結びつけるために用いるにはちょうど良いのではないでしょうか。

個人的には、ネットワークの入門書としては 『マスタリングTCP/IP 入門編 第4版』 の方が良かったと思います。

文字コード

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)

プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)

何かと理解しづらい点が多い 「文字コード」 ですが、本書は非常によくまとまっていて、本書を読みさえすれば文字コードに関してとりあえずおさえておくべき事はおさえることができると思います。 「Unicode とか UTF-8 とか UTF-16 とかあるけどどう違うの?」 という初心者はもちろん、「ある程度は文字コードについて把握しているけどもうちょっと詳しく理解したい」 という人も満足できる一冊です。

Linux

Linux 上で動くプログラムを開発する際に必要となる LinuxAPI の説明。

タイトルに 「ふつうの」 とか書いてて 「ふつうてなんやねん、ふつうて」 て思うかもしれないけど、まあ要は入門書てことです。 API ドキュメントを読むだけではわからないような 「気をつけるべきこと」 がわかってよかったです。 Linux API に慣れてない人はとりあえず読むといいかと。