Joel on Software

Joel on SoftwareJoel Spolsky (著), 青木 靖 (翻訳)
オーム社 ; ISBN: 4274066304 ; (2005/12)

ソフトウェア開発に関わる人間が知っておかなければならないこと

特に面白かったのは、第4章「すべてのソフトウェア開発者が絶対確実に知っていなければならないUnicodeとキャラクタセットに関する最低限のこと(言い訳なし!)」と第42章「MicrosoftはいかにしてAPI戦争に負けたか」だが、ソフトウェア開発に関わる人は前章必読かと思う。

私は宣言する。もしあなたが21世紀において仕事をしているプログラマであり、キャラクタ、キャラクタセット、エンコーディング、Unicodeの基本について知らないのであれば、私はあなたをひっ捕まえて、潜水艦で6か月のたまねぎ剥きの刑に処する。(p.38)

実際に潜水艦でたまねぎを向くような人はこの本を読んで気を悪くしたりはしないだろうからいいとして、そういうことだ。

Microsoftで働いた経験を持つ著者の、あの会社への態度はなかなかバランスがとれていると思う。.NETをさんざん貶す章がある一方で、こういう話を紹介されると、ふつうのソフトベンダーではぜんぜん太刀打ちできないということがよくわかる。

Windows 95のベータ版のテストでSimCityは動かなかった。Microsoftはそのバグを追いかけ、Windows 95にSimCityを検出するコードを追加した。SimCityが実行されているのを検出すると、Windowsはメモリをすぐには解放しない特殊なモードでメモリアロケータを実行するのだ。この強迫的なまでの後方互換性が、人々にWindows 95にアップグレードしたいと思わせたのだ。(p.293)

そして、その「強迫的な後方互換性」を.NETで捨ててしまったのはみんな知ってのとおり。

ハッカーと画家 コンピュータ時代の創造者たち

さて、面白いのはここから。

ソフトウェア開発者のエッセイに、少し前に話題になったポール・グレアム『ハッカーと画家』がある。ソフトウェア開発者としては超一流で、エッセイも面白いという点では共通しているのだが、立ち位置はずいぶん違うように思える。一言で言えば、「グレアムのほうが狭き門」ということかもしれないが、違いを明確に説明するのは難しい。Rubyの作者であるまつもとさんはこう言っている

私に一番しっくり来たのはコメント欄にあった「Joelはエンジニア、Paulはハッカー」というものだ。まあ、私の感じた不快感はそれだけでは説明できないけど。

彼がリンクしようとしたのはたぶん10 differences between Joel Spolsky & Paul Graham.