BINARY HACKS を買った

2007/03/14

読もう読もうと思っていて買っていなかった『BINARY HACKS』を買いました。まだ1回素読しただけなんですけれど,これは面白い。詳しい話は今後に譲って,ここでは概略の感想をば。

コンピュータをはじめとした技術の話を考える上で,避けて通れない概念に,隠蔽と簡素化それに抽象化ってのがあるんだと思います。隠蔽というのは,難しげなものを見えなくすることで,簡素化というのは,目的を絞って不要な機能や役割を削ぎ落すこと。で,最後の抽象化というのは,同種の問題に対処できるように上位概念を設定することです。具体的には「決め打ち」みたいなことをしないということです。

言うまでもなく,コンピュータのプログラミング言語は,ハードウェアを離れてガンガン抽象化されています。Java や各種の LL(Lightweight Language)なんかで,プロセッサやメモリの挙動を考えることは,まずありませんもんね。もちろん,それが,Java や LL の魅力なわけで,だからどうだってことはないんですが。

一方で,こういう話は,プログラミングに限ったことではないようです。例えば,オーディオ・アンプを作ろうと思ったときに,専用 IC で作るか,OpAmp IC で作るか,はたまたディスクリート(トランジスタとか FET)を寄せ集めて作るか,といった話があったりします。で,例えば,ディスクリートで作ると,難しげな計算や熱対策をしなくちゃいけないのに対して,専用 IC だと電源と信号を入れるだけで簡単に鳴っちゃったりするんです。じゃあ,専用 IC を使えばいいじゃないか,という話にもなるわけですけれど,ディスクリートには「小回りが利く」という利点があったりします。

また,専用 IC や OpAmp を使う場合であっても,ディスクリートのことを知っている人とそうでない人とでは,回路設計がまるで違うんだとか……(もちろん,前者の設計の方が効率良く良い音を出すということ)。結局,実際にディスクリートで作らないとしても,ディスクリートの知識は必要なんですね。

本書では,プロセッサやメモリ,それに OS が提供する API 等々をいぢくり回します。こういうのは,上の例で言うとディスクリートの寄せ集めに相当するわけで,組み込みやドライバ開発でもやらない限りお目にかかることはないだと思います。けれど,本書で紹介している hack は,業務であれ趣味であれ,コンピュータとコアに付き合っていくための基礎体力として必要なことなんじゃないかな,とは思います。

ちなみに,本書の後には読む本を決めていて,『Write Greate Code』を読もうと思っています。

この2冊で半年はオカズに困らなそうだなー。

Site Navigation
SNS Accounts (@aian)

普段はここら辺に住んでいます.