# デザインとリサーチ(原題: Design and Research)
Paul Graham, January 2003(2002年秋 NEPLS のミーティングでの基調講演がもと)
**中心主張**: デザインとリサーチの違いは「良さ」と「新しさ」のどちらを必須とするかにある。デザインは新しくある必要はないが良くなければならず、リサーチは良くある必要はないが新しくなければならない。プログラミング言語を研究対象ではなくデザインの問題として捉え直すと、ユーザー(=人間)に注意を向けるという原則が導かれ、多くの設計問題が解ける。
**実践指針**
- 何かを設計する場面では、まず「誰のために、どんな必要を満たすのか」を問え。良い建築家は先にデザインを作って住む人に押しつけるのではなく、住む対象を研究する。
- ユーザーの要望を聞く場面では、彼らが**欲しいと言うもの**ではなく**必要としているもの**をデザインせよ。ユーザーは全ての選択肢を知らず、本当に欲しいものをよく間違える。医者が症状ではなく原因を見極めるのと同じである。
- 対象ユーザーを決める場面では、自分自身を含むグループを選べ。自分を含まないグループ向けに作ると、無意識に対象を見下し、デザイナーとして駄目になる。C・Lisp・Smalltalk はデザイナーが自分で使うために作られ、Cobol・Ada・Java は他人が使うために作られた。
- 新しいものを作る場面では、完全な最終形を目指さず、**できるだけ速くプロトタイプをユーザーの前に出せ**。長時間かけて完成品を作り上げる「マリア様万歳」作戦は惨劇への切符である。
- プロトタイプを作る場面では、それを模型で終わらせず、詳細化して最終製品まで持っていけ。油絵がルネサンス期に熱狂的に受け入れられたのは、プロトタイプからそのまま最終作品を作れたからだ。
- 仕事の設計を考える場面では、志気を保てる形にせよ。常に動くコードを持ち、一時間後には試せるものを書いていれば、目の前の見返りに元気づけられる。低いレベルのユーザー向けの仕事が難しいのは、自分が気に入らないものに興味を持ち続けられないからだ。
- 最終判断の場面では、一人の人間に決めさせよ。批判は信頼できる人から受けるべきだが、会話が終わったら決断は一人に任される必要がある。委員会によるデザインは悪いデザインと同義である。
- 言語の良し悪しを測る場面では、完成したプログラムの美しさだけでなく、**そこへ至る道筋がどれだけ綺麗だったか**を見よ。大理石のように完成形は美しいが製作が苦痛な媒体にしてはいけない。
**根拠となる事例・考え方**
- 著者は自分の仕事を「プログラミング言語の研究」ではなく「Lisp の新しい方言のデザイン」と説明する。建物や椅子やフォントをデザインするのと同じことをしていると考えると、問題がずっと扱いやすくなる。
- リサーチとデザインは頂上で一緒になる。最高のデザインは新しいアイディアでそれまでを凌駕し、最高のリサーチは解くに値する問題を解く。ただし近づき方が別の方向から。
- 数学や科学は人間に優しくある必要がない(証明を短くするために良い抽象化を選ぶだけ)が、デザインは人間の身体と頭脳の凸凹に迎合しなければならない。絵画に人間が描かれているものが多いのは歴史の偶然ではない。
- インタラクティブなトップレベル(Lisp の read-eval-print ループ)を持つと、言語設計自体に影響が出る。変数を前もって宣言させる言語や型宣言を強制する言語は、トップレベルと相性が悪い。したがって「便利な言語はトップレベルを持たねばならず、型宣言の強制はトップレベルと相性が悪い」なら、型宣言を強制する言語は便利な言語になり得ない。
- ジェーン・オースティンの小説が良いのは、作品を家族に読んで聞かせたから。ユーザーに近づき、常にユーザーの側にいたので、自己満足的な風景描写や philosophical な脱線に堕ちなかった。
- 「悪いほうが良い (Worse is Better)」原則(Richard Gabriel)。プロトタイプは伝統的に異なる材料で作られてきた(活字は紙に筆書き→金属、彫像は蝋→ブロンズ、石造建築はまず木の模型)。ソフトウェアはそうする必要がない。
- 絵画の教師の教え: 正確な線を得ようとゆっくり輪郭をなぞるな。誤差が積み重なって線が合わなくなる。だいたいの位置にざっと線を置き、スケッチを次第に詳細化せよ。
- 「画には終わりがない。ただ描くのを止めるだけだ」という画家の言い回しを、ソフトウェアの仕事に重ねている。
**キーワード**
- **デザイン vs リサーチ**: 前者は「良くなければならないが新しくなくてよい」、後者は「新しくなければならないが良くなくてよい」。
- **必要としているもの vs 欲しいもの**: デザイナーが作るべきは前者。注文通りに作る料理人ではない。
- **「悪いほうが良い」原則 (Worse is Better)**: 完璧な最終形を目指すより、速くプロトタイプをユーザーの前に出すべきという設計思想。
- **マリア様万歳作戦**: プロトタイプを出さず、長期間かけて完全な最終製品を作ろうとするやり方。著者はこれが成功した例を知らないという。
- **志気 (morale)**: デザインの要石。常に動くものを持ち、見返りを得続けることで保たれる。
- **デザインには独裁者が必要**: 良いデザインは完全に一つにまとまっていなければならず、一人の人間の頭に収まる考えを表す必要がある。