# ハッカーと画家 用語集
本書(Web公開版12エッセイ)特有の用語・言い回し。章番号は overview.md の章インデックスに対応。
## ものづくりとデザイン
- **ものを創る人(makers)**: ハッカー・画家・建築家・作家・作曲家。良いものを創ることが目的で、その過程で新技術を発見することはあっても、研究活動そのものではない。→ 第2章
- **スケッチとしてのプログラミング**: コードを書く行為が設計・理解の過程そのものであるという捉え方。デバッグは最終工程ではなく、プログラミングと不可分な行為。→ 第2章
- **早過ぎる設計**: 早過ぎる最適化と対になる危険。プログラムが何をすべきかを早く決めすぎること。→ 第2章
- **センス(審美眼)**: 美を見分ける力。良いものを作るために必要な、学習可能で客観性のある能力。「主観的」という相対主義がその成長を邪魔する。→ 第6章
- **良いデザインの14の性質**: 単純である/永遠である/正しい問題を解決する/想像力を喚起する/しばしばちょっと滑稽だ/難しい/簡単に見える/対称性を使う/自然に似る/再デザインだ/模倣する/しばしば奇妙だ/集団で生まれる/しばしば大胆だ。→ 第6章
- **形態は機能にしたがう**: サリヴァンの方針。ただし彼が実際に言ったのは "form ever follows function"(形態はいずれ機能に追従する)で、バウハウスが意図したのは「形態は機能にしたがう**べきである**」だった。→ 第6章
- **ホットスポット**: 良い仕事が集中して出てくる少数の場所。15世紀フィレンツェ、バウハウス、マンハッタンプロジェクト、『ニューヨーカー』、ロッキードのスカンクワークス、ゼロックス Parc。遺伝子の影響より遥かにパワフル。→ 第6章
- **デザイン vs リサーチ**: 前者は「良くなければならないが新しくなくてよい」、後者は「新しくなければならないが良くなくてよい」。→ 第11章
- **必要としているもの vs 欲しいもの**: デザイナーが作るべきは前者。ユーザーは全ての選択肢を知らず、本当に欲しいものをよく間違える。デザイナーは注文通りに作る料理人ではない。→ 第11章
- **「悪いほうが良い」原則(Worse is Better)**: Richard Gabriel の言葉。完璧な最終形を目指すより、速くプロトタイプをユーザーの前に出すべきという設計思想。→ 第11章
- **マリア様万歳作戦**: プロトタイプを出さず、長期間かけて完全な最終製品を作ろうとするやり方。著者はこれが成功した例を知らないという。→ 第11章
- **志気(morale)**: デザインの要石。常に動くコードを持ち、一時間後に試せるものを書いていることで保たれる。→ 第11章
- **デザインには独裁者が必要**: 良いデザインは完全に一つにまとまっていなければならず、一人の人間の頭に収まる考えを表す必要がある。委員会によるデザインは悪いデザインと同義。→ 第11章
- **デザインのパラドックス**: 自分自身が良いセンスを持っていなければ、素晴らしいデザイナーを見分けられない。だから美を知らずに美を生み出すプロセスを管理することはできない。→ 第12章
## 言語とプログラミング
- **ほげ言語のパラドックス(Blub Paradox)**: プログラマは自分の使う言語で思考するため、より強力な言語の価値を認識できないという現象。下の言語は「機能xが無い」と正しく見下せるが、上の言語は「ふわふわしたおまけが付いた同等品」にしか見えない。→ 第8章
- **パワースペクトル**: 機械語から最も力のある言語までの連続した抽象度の帯。「高級言語」という語はこの帯の中に境界を定義しない。→ 第8章
- **マクロ**: プログラムを生成するプログラム。Lisp のコードは Lisp のデータオブジェクトからできており構文木を直接書き下すため実現できる。Viaweb エディタのソースの20〜25%がマクロだった。→ 第8章・第9章
- **健全なマクロ(hygienic macro)**: 変数捕捉を防ぐ安全なマクロ。著者は「変数の捕捉こそマクロでやりたいことの一つ」として批判し、プログラマの望むところを規定しようとする危険思想の古い例と呼ぶ。→ 第10章
- **秘密兵器**: 競合が理解できない技術的アドバンテージ。ビジネスでは「驚き」が軍隊ほどに価値を持つ。→ 第8章
- **髪のとんがった上司(pointy-haired boss)**: Dilbert 由来。(a) テクノロジーを何も知らず (b) テクノロジーについて非常に強い意見を持つ管理職。「全ての言語はだいたい等しい」と信じている。→ 第8章・第9章
- **業界の最良慣行(Industry best practice)**: 意思決定者を責任から護るための選択。あなたをトップにはせず、単に平均にする。最先端であるべき技術決断に会計の作法を持ち込むと誤った答えになる。→ 第9章
- **グリーンスパンの第10規則**: 「全ての十分に複雑な C もしくは Fortran プログラムは、後付けの、不完全な仕様とバグを持ち、遅い、Common Lisp の半分の実装を含んでいる」。弱い言語で難問を解くと Lisp の劣化実装を書くことになるという皮肉。→ 第9章
- **eval**: Lisp 式の値を計算する万能 Lisp 関数。McCarthy が紙上の理論的実験として書き、大学院生 Steve Russell が機械語に翻訳してインタプリタにしてしまった。→ 第9章
- **Lisp の9つのアイディア**: 条件式/関数型/再帰/動的型付け/ガベージコレクション/式でプログラムが構成される/シンボル型/シンボルと定数の木によるコードの表現/言語の全てが常に在ること。1〜5は広く普及、6は主流に現れ始め、8と9はいまだ Lisp 特有。→ 第9章
- **公理(根源的オペレータ)**: 言語のコアを成す最小の演算子群。残りはそれを使って書ける部分。百年生き残る言語の条件。→ 第7章
- **進化の系統樹/主要な枝**: 言語の系譜。生物進化と違い、設計者が他言語からアイディアを取り込むため枝が再び交わる。主流の枝に乗っている言語ほど長く生き延びる。→ 第7章
- **ネアンデルタール言語**: 流行したが知能ある子孫を残さなかった行き止まりの言語。著者は Cobol を名指しし、Java も同じ道をたどると予測する。→ 第7章
- **良い無駄/悪い無駄**: 計算資源を贅沢に使うことでより単純な設計が得られるなら、それは良い無駄。SUV 的な無駄と区別する。→ 第7章
- **メタ巡回型インタプリタ(metacircular interpreter)**: ある言語のインタプリタを、その言語自身(またはサブセット)で定義したもの。Arc の最初のバージョンは Common Lisp で書かれた約200行のこれだった。→ 第7章
- **ボトムアッププログラミング**: ある層を次の層の記述言語として使い、層を積み重ねて構成する手法。再利用性は本来オブジェクト指向ではなくこのボトムアップ性から来る。組織論としては「優秀な人に道具を作らせ、別グループにそれでアプリを作らせる」分業の形を取る。→ 第7章・第12章
- **書き捨てのプログラム(throwaway program)**: 限定された仕事のために手早く書くプログラム。大きなシステムはここから育つ。Perl はレポート生成ユーティリティ集として産声を上げた。→ 第10章
- **トロイの木馬**: 新しい言語の最初のユーザを得る方法。人々の欲しいアプリケーションを、たまたまその言語で書いて配る。→ 第10章
- **臨界点となる初期ユーザ層 = 20人**: 言語が本物になるのに必要な、自分でその言語を選んだ独立ユーザの数。0から20は20から1000より難しい。→ 第10章
- **アクティブプロファイラ**: 求めた時だけでなく、常にパフォーマンスデータをプログラマに示し続けるプロファイラ(例: エディタがボトルネックを赤く表示する)。→ 第10章
- **有機的成長 vs ビッグバン**: 少数ユーザと口コミで育つ技術(Unix、MacLisp)と、資本と宣伝で一気にユーザベースを得る技術(Multics、Common Lisp)。今日有力な技術の大抵は前者。→ 第10章
- **二サイクルエンジン**: 楽観(「こんなの簡単だよ」)と懐疑(「こんなのうまくいきっこない」)を交互に回すことで設計を前へ進める心の運動。→ 第10章
- **Arc**: 著者が設計していた新しい Lisp 方言。第5章の執筆時点では未リリースで、ベイジアンフィルタはそのテストのために書かれていた。→ 第5章・第7章
## 事業と組織
- **ASP(アプリケーションサービスプロバイダ)**: サーバでソフトウェアを走らせて提供する業態。2001年時点の呼び名で、現在の SaaS の原型。→ 第4章
- **Brooks の逆転**: 『人月の神話』の逆。グループが小さくなるほどソフトウェア開発の効率が指数的に増大する。→ 第4章
- **コードの都市**: Web ベースアプリの設計思想。単一バイナリではなく、上下水道・警察署・災害対応計画まで含む都市を作るような設計。→ 第4章
- **複合バグ**: ひとつのバグが別のバグの不具合をたまたま隠してしまうもの。一方を直すともう一方が現れ、最後の修正が間違っていたかのように見える。小さな段階的リリースが最も効く対象。→ 第4章
- **RTML**: Viaweb のユーザがページスタイルを定義するための専用スクリプティング言語。純粋関数型で、ユーザがこれに手を出すことが「組み込みのページスタイルでは足りない」という目安になった。→ 第4章
- **試用サイト(demo site)**: 5分ほどで実際に動くオンラインストアを構築できたもの。ほとんど全てのユーザを獲得した経路であり、広報部門のスライドより有効だった。→ 第4章
- **昼間の仕事(day job)**: ミュージシャン由来の言葉。金のための仕事と愛のための仕事を分けること。オープンソースの経済モデルの原型。→ 第2章
- **共感能力(empathy)**: 良いハッカーと偉大なハッカーを分ける唯一最大の違い。自己犠牲ではなく、他人のものの見方を理解する能力。技術的知識のない人に技術的な問題を説明させてみれば測れる。→ 第2章
- **嫌な細かい問題(schlep)**: バグだらけのインタフェース、顧客ごとの曖昧なカスタマイズなど、解いても何も学べない問題群。ノイズであってシグナルではない。→ 第12章
- **問題の再定義**: 退屈に見える問題を面白い問題に作り替えるマネージャーの技(ITA の航空料金検索、Google の検索、ジョブズの Mac)。→ 第12章
- **勝者総取り(二乗の法則)**: ハッカーは互いに引き寄せ合うため、環境の良さに比例してではなくその二乗に比例して集まる。→ 第12章
- **ハッカーの契約**: 「退屈な仕事は一切しない。かわりに中途半端な仕事は絶対に受けない」という自分自身との約束。→ 第12章
- **nerd(ナード/オタク)**: 流行や人付き合いより知的な物事に興味を惹かれる人。社会にうまく適応できないことと頭のよさは前後関係でそうなるに過ぎない。訳註では「オタク」より広い概念で "Revenge of the professors" に近いと説明されている。→ 第1章・第9章
- **ふたりの主人に仕える**: 人気も欲しいが頭のよさはもっと欲しい、という分裂した願望。オタクが人気競争に全力を出せない構造的理由。→ 第1章
- **ゼロサム・ゲームとしての人気**: 外部の敵も現実的な目的もない集団で、順位が他人を蹴落とすことでしか上げられない状態。ルイ14世の宮廷に喩えられる。→ 第1章
- **待合室**: 10代が大学に行ける年齢になるまで、目的なく閉じ込められている場所としての学校。→ 第1章
## 思考と言論
- **順応性検査(Conformist Test)**: 同格の集団内で、表明するのを憚る意見を持っているか。持っていないことは知性ではなく順応の証拠。→ 第3章
- **異端(heresy)**: 真偽の議論に登る前に主張を撃ち落とすためのレッテル。歴史的には「不敬」「冒涜」、少し前は「不作法」「不道徳」「アメリカ的でない」、最近では「不適切」(左派から)「対立主義的」(右派から)。→ 第3章
- **メタレッテル貼り**: 議論を避けるためのレッテル貼りそのものにレッテルを貼る反撃法。「政治的に正しい(politically correct)」という用語の普及が実例。→ 第3章
- **モラルの流行(道徳の流行)**: 服装の流行と同じ機構で生まれ広まるが、逆らうと嫌われ・村八分・投獄・殺されることさえある点で危険。流行は本質的に見えない。→ 第3章
- **pensieri stretti / viso sciolto**: ヘンリー・ウートン卿がミルトンに与えた助言。「閉じた考えと開いた顔」。前者は必須、後者はそこまで大事ではないというのが著者の判断。→ 第3章
## フィルタリング(第5章の技術語)
- **ベイジアンフィルタ**: 個々の単語の spam 確率をベイズの結合確率で統合し、メール全体の spam 確率を出す手法。コーパスから学習するため spam の進化に自動追随する。→ 第5章
- **コーパス**: spam / 非 spam の学習用メール集合。うまく動く鍵は「大きく綺麗なコーパス」にある。→ 第5章
- **特徴的な15トークン**: 確率が 0.5 から最も遠い15個。全単語ではなく判別力の高いものだけを結合する設計。→ 第5章
- **誤検出(false positive)**: 無害なメールが spam と認識されること。「まるで死の危険のあるニキビ薬みたいなもの」。性能が良くなるほどユーザが spam フォルダを見なくなるため、危険はむしろ増す。→ 第5章
- **spam の定義**: 「頼んでいないのに自動的に送ってくるメール」。「商用」も「頼まない」も本質ではなく、自動的に送ってくることが spam の存在意義そのもの。→ 第5章
## 書誌まわり
- **プロジェクト杉田玄白**: 山形浩生らが主導した、著作物の日本語訳を自由に流通させるためのボランティア翻訳プロジェクト。「ものつくりのセンス」はその正式参加テキスト。→ 第0章
- **版権表示(copyleft 的条項)**: 各エッセイ末尾の「本和訳テキストの複製、変更、再配布は、この版権表示を残す限り、自由に行って結構です」「再配布を禁止してはいけません」という条項。再配布の自由が下流にも継承される仕組み。Copyright は Paul Graham 本人が保持。→ 第0章