ねもぷらす

ふぁいんでぃんぐねもの日記。プログラミングとか育児とか

ハッカーと画家 著:Paul Graham 訳:川合史朗 発行:オーム社

先々週師匠にお借りしてから移動中にちょっとずつ読み進めて、昨日やっとこさ終了。
タイトルだけ見て、ハッカーと絵描きの思考の共通点みたいなのを挙げてる本なのかなーと勝手に創造してましたが、もっと本質的というか思考的というか歴史的というか、実例を交えてるのに深いところの繋がりまで読めました。
まず Viaweb って何なのか知らなかったし、Lisp は名前だけしか知らなくて仕事上でも聞かないから、全然流行ってない使えない言語だと勝手に思ってました。まぁタイトルだけが面白そうだったので、 Viaweb の開発者が書いた本だってことがわかったのも第5章に入ってからでしたが。
日記につけとこうと思ったけど、本読んで何を書けばいいんだかワカラナイ。んで、返さなければいけない本なので、章ごとに1行の備忘録でも書いてみるテスツ。

  1. メイド・イン・USA -- アメリカ人は車を作るのが苦手な理由
  2. どうしてオタクはもてないのか -- オタク*1がもてないのは、与えられたフィールドでゲームをしていないから
  3. ハッカーと画家 -- 「偉大だ」と呼ばれるハッカーと画家の思考の共通点
  4. 口に出来ないこと -- 社会が作った「タブー」が、都合によって伝授されること
  5. 天邪鬼の価値 -- ハッカーの存在意義
  6. もう一つの未来への道 -- Viaweb の誕生秘話
  7. 富の創り方 -- 「富」とは質量保存則で限られるものではなく、必要に応じて自分から作り出すことが出来る。。お金とは富を移動させるための一つの手段だということ。仕事とは「生産性の測定」「決定権による梃子の力」により評価される。
  8. 格差を考える -- 「出来る人」と「一般人」の違い。富を創る方法の歴史
  9. スパムへの対策 -- 美しき実例、スパムメールをフィルタするロジック*2はスパム業者の思考から作り上げたこと
  10. ものつくりのセンス -- この章が「ハッカーと画家」の本質だと感じた。どうやったらよいものが作れるか
    1. 良いデザインは単純である
    2. 良いデザインは永遠である
    3. 良いデザインは正しい問題を解決する(あなたが疑問に感じている「問題」は「正しい問題」ですか?)
    4. 良いデザインは想像力を喚起する
    5. 良いデザインはしばしばちょっと滑稽だ
    6. 良いデザインをするのは難しい
    7. 良いデザインは簡単に見える
    8. 良いデザインは対称性を使う(繰り返しと復帰)
    9. 良いデザインは自然に似る(Nature でなく、natural。模倣はよい手段である)
    10. 良いデザインは再デザインだ(初期の仕事は捨てるつもりでやる)
    11. 良いデザインは模倣する
    12. 良いデザインはしばしば奇妙だ
    13. 良いデザインは集団で生起する(流行に集まる)
    14. 良いデザインはしばしば大胆だ
  11. プログラミング言語入門 -- 機械語アセンブリ言語から高級言語、さらに抽象度の高い言語へと進化したこと
  12. 百年の言語 -- 言語は枝のように分岐して成長し、効率の良い方法が100年後の幹となる。
  13. 普通のやつらの上を行け -- 誰も Lisp を使わないから Viaweb の開発速度について来れなかった
  14. オタク野郎の復習 -- PerlPythonRubyLisp に近づきつつあること。
  15. 夢の言語 -- ハックしやすい言語が成長する
  16. デザインとリサーチ -- 新しい方言を設計…ユーザに近づくこと興味のある分野にたどり着くとは限らないが、良いデザインを得るにはユーザに近づくことだ
  17. 素晴らしきハッカー -- お金でなく、「やりたいこと」を求めること。


どんな業種でもそうだと思いますが、「できる人」っては「表現が上手い*3」なと。引き出しの量が半端じゃないし、使いどころが良い…

巨大な敵に勝つには、上ることだ。上ることはエネルギーを使い大変なことだが、巨大な相手は自身の重さゆえよりエネルギーを使う。
C言語でのバッファオーバーフローを利用する攻撃は、飛行機で隣に乗った客がハイジャックだったというようなもの。
数学は色あせない。

*1:nerd

*2:ベイジアンフィルタが超有名

*3:巧い?旨い??