# 普通のやつらの上を行け(原題: Beating the Averages)
Paul Graham, 2001(2001/3/25 Franz Developer Symposium での講演がベース)
**中心主張**: プログラミング言語にはパワーの差があり、より力のある言語を使えば競合より速くソフトウェアを書ける。だが「ほげ言語のパラドックス」——プログラマは自分の使う言語で思考するため、より上の言語の価値を認識できない——により、この差は広く認められない。だからこそ、競争の激しいベンチャーにとっては、他が使っていない強力な言語こそが秘密兵器になる。
**実践指針**
- ベンチャーで技術を選ぶ場面では、「他社が何を使っているか」ではなく「何が最適か」だけを考えよ。大企業は他の大企業と同じことをしていてよいが、ベンチャーが他のベンチャーと同じことをすれば平均的な結果=倒産になる。
- 言語選択の自由がある場面(自分のサーバー上でだけ走るソフトを書く場合)では、その自由を必ず行使せよ。気付かないふりをしていると、気付いた競合に差をつけられる。
- 自分の技術的アドバンテージについては、競合に対して公言するな。ライバルが理解できない技術を持っていることには、ビジネス上の大きな価値がある。
- 競合の実力を測りたい場面では、宣伝ではなく**人材募集内容**を読め。募集要項は企業が本当に欲しているものを正確に表現している。ITの匂いをただよわせているほど脅威ではない。
- 言語の優劣を論じる場面では、より上の言語を知る者の意見だけが参考になると理解せよ。自分が知らない言語については、それが上位でも判断できない。
- 大企業で強い言語を使いたい場面では正面から戦わず、合気道のように相手の力を利用せよ(髪のとんがった上司を説得するより、上司のいない場所でその制約を利用する)。
**根拠となる事例・考え方**
- Viaweb(1995年、Robert Morris と創業)は、エンドユーザーがオンラインストアを自分で作れるソフトを Lisp で書いた。事実上初の Web ベースアプリケーションであり、Lisp で書かれた初の大規模エンドユーザアプリケーション。
- 実験結果: 競合は20〜30社現れたが、どれも打ち負かせなかった。開発サイクルが速く、競合がプレスリリースを出した1〜2日後に同じ機能を追加できた。1996年末に70店、1997年末に500店、Yahoo に買収された時点で1070店。Yahoo Store として今も Lisp コードがそのまま動いている(執筆時点)。
- 「ジャッカルの日」の暗殺者が松葉杖の老人に化けて警備網を抜けたエピソードを、Lisp という「奇妙な人工知能言語」を使うことの比喩に用いている。
- **ほげ言語のパラドックス**: パワースペクトルの中位にいる「ほげ」プログラマは、下の言語は「機能xが無い」と正しく見下せるが、上の言語は「ふわふわしたおまけが付いた同等の言語」にしか見えない。自分の言語で思考しているからである。著者自身、高校生時代に Basic の達人であり、再帰の不在を疑問にすら思わなかった。
- Lisp が他と根本的に違う点は**マクロ**。Lisp のコードは Lisp のデータオブジェクトからできており、構文木を直接書き下すため、構文木自身を操作するプログラム(プログラムを生成するプログラム)が書ける。Viaweb エディタのソースの20〜25%はマクロだった=そのぶんは他言語では簡単に真似できない。
- Robert Morris の言: 「Lisp を使っていることをライバルが知っても理由は理解できない。理解できるくらいなら、もう Lisp でプログラムしているはずだよ」。
**キーワード**
- **ほげ言語のパラドックス (Blub Paradox)**: プログラマは自分の使う言語で思考するため、より強力な言語の価値を認識できないという現象。
- **パワースペクトル**: 機械語から最も力のある言語までの連続した抽象度の帯。「高級言語」という語は境界を定義しない。
- **マクロ**: プログラムを生成するプログラム。Lisp ではソースが構文木そのものなので実現できる。
- **秘密兵器**: 競合が理解できない技術的アドバンテージ。ビジネスでは「驚き」が軍隊ほどに価値を持つ。
- **髪のとんがった上司 (pointy-haired boss)**: Dilbert 由来。技術を何も知らないのに技術について強い意見を持つ管理職。