Loading...

優れたハッカー

Original

2004年7月

(このエッセイは2004年のOsconでの講演に基づいています。)

数か月前に新しいを完成させ、書評では「挑発的」や「物議を醸す」といった言葉を目にします。「愚かな」という言葉もあります。

本を物議を醸すものにする意図はありませんでした。効率的にするつもりでした。人々が既に知っていることを無駄に時間を使って伝えたくありませんでした。差分を提示するのがより効率的です。しかし、それでは驚くべき本になってしまうのかもしれません。

エジソン

最も物議を醸す考えは、富の格差が私たちが考えるほど大きな問題ではないかもしれないという提案です。

私は本の中で、富の格差自体が良いことだとは言いませんでした。状況によっては良いサインかもしれないと述べました。激しい頭痛は良いことではありませんが、意識を取り戻しつつあるサインかもしれません。

富の格差は生産性の格差のサインかもしれません。(単一の社会では、それらは同一です。)そしてそれはほぼ間違いなく良いことです。生産性に格差がない社会は、みんながトーマス・エジソンというわけではありません。むしろトーマス・エジソンがいないのかもしれません。

低技術社会では生産性の格差はあまり見られません。薪を集める遊牧民族の集団では、最も上手な薪集めと最も下手な薪集めの差はせいぜい2倍程度でしょう。一方、コンピューターのような複雑なツールを手にすると、それを使いこなす能力の差は膨大になります。

これは新しい考えではありません。フレッド・ブルックスが1974年に書いており、引用した研究は1968年に発表されていました。しかし、プログラマー間の生産性の格差を過小評価していると思います。彼は行数生産性について書いていますが、問題が与えられているわけではありません。プログラミングでは、問題を解くことよりも、何を問題として解くべきかを決めることが難しいのです。想像力は測りづらいですが、実際には行数生産性よりも重要です。

どの分野でも生産性には格差がありますが、プログラミングほど大きな格差がある分野はほとんどありません。プログラマー間の生産性の差は質的な違いにまで及びます。これがプログラミングに固有の特徴だとは思いませんが、テクノロジーが生産性の差を拡大させるのは確かです。プログラミングの場合、テクノロジーのレバレッジが大きいだけです。しかし、あらゆる分野でレバレッジが長くなっているので、私たちが目にする格差は、時間とともにより多くの分野で見られるようになるでしょう。そして、企業や国の成功は、この問題への対応次第になっていくでしょう。

生産性の格差がテクノロジーとともに増大するなら、最も生産性の高い個人の貢献は比例して大きくなり、実際に時間とともに増大していくでしょう。グループの出力の90%が1%のメンバーによって生み出されるような状況になれば、何か(ヴァイキングの略奪や中央計画など)がその生産性を平均に引き下げてしまえば大きな損失になります。

これらの特に生産性の高い人々を理解することが、最大の成果を得るためには必要です。彼らは何に動機づけられているのか? 彼らに何が必要なのか? 彼らをどのように見つけ出すのか? 彼らをどのように自社に引き付けるのか? そして当然のことながら、自分がそうなるにはどうすればよいかという問題もあります。

金銭以外のもの

私は少数の超ハッカーを知っているので、彼らに共通する特徴を考えてみました。おそらく、彼らがプログラミングを本当に楽しんでいるということが、彼らの決定的な特徴だと思います。普通のプログラマーはお金を稼ぐためにコードを書きます。優れたハッカーは、それを楽しみとしており、しかも人々がそれに対して支払ってくれることを喜んでいます。

優れたプログラマーは時に金銭に無関心だと言われます。これは正確ではありません。確かに、彼らが本当に気にかけているのは興味深い仕事をすることです。しかし、十分な金銭を得られれば、自分のやりたいことに取り組めるようになるので、ハッカーは大金を稼ぐことにも魅力を感じます。ただし、毎日出勤しなければならない限り、彼らが気にかけているのは給与の額よりも、そこでの仕事内容なのです。

経済的に見れば、これは極めて重要な事実です。なぜなら、優れたハッカーに対して、彼らの価値の何分の1かしか支払う必要がないということを意味するからです。優れたプログラマーは、普通のプログラマーの10倍あるいは100倍も生産的かもしれませんが、3倍の給与しか得られないと考えるでしょう。後ほど説明しますが、これは部分的に、優れたハッカーが自分の実力を知らないからです。しかし、金銭が彼らの主たる欲求ではないからでもあります。

ハッカーは何を求めているのでしょうか? 全ての職人と同様、ハッカーは良いツールを好みます。実際、それは過小評価だと言えるでしょう。優れたハッカーは、悪いツールを使うのを我慢できません。適切なインフラがないプロジェクトには単に取り組もうとしません。

かつて私が勤めていたスタートアップでは、掲示板に貼られていたものの1つが、IBMの広告でした。AS400の写真で、見出しは「ハッカーはそれを嫌う」というものでした。[1]

プロジェクトのためのインフラを決めるとき、あなたは単なる技術的な決定をしているだけではありません。社会的な決定をしているのです。そしてこちらの方がより重要かもしれません。例えば、ある会社がソフトウェアを書きたいとします。Javaを使うのが賢明に見えるかもしれません。しかし、言語を選ぶとき、あなたはコミュニティも選んでいるのです。Javaプロジェクトで働くことのできるプログラマーは、Pythonプロジェクトで働くことのできるプログラマーほど賢明ではありません。そして、ハッカーの質は、使う言語よりも重要かもしれません。率直に言えば、優れたハッカーがJavaよりPythonを好むという事実は、それらの言語の相対的な長所について何かを物語っているはずです。

ビジネスタイプの人々は、言語を標準と見なしているため、最も人気のある言語を好みます。彼らはベータマックスにかけてはいけないと考えています。しかし、言語には単なる標準以上のものがあります。ネットワークを介してビットを移動する必要がある場合は、TCP/IPを使用するのが賢明です。しかし、プログラミング言語は単なる形式ではありません。プログラミング言語は表現の媒体なのです。

私は、Javaがついにコボルを抜いて最も人気のある言語になったと読みました。標準としては望むものを得られるでしょう。しかし、表現の媒体としては、もっと良いものがあるはずです。私が知る偉大なプログラマーの中で、自発的にJavaでプログラミングするのは1人だけです。そして、Sunで働いていない偉大なプログラマーの中で、Javaを使う人は0人です。

優れたハッカーは一般的に、オープンソースソフトウェアを使うことを主張します。それがより良いからだけでなく、より多くの制御権を得られるからです。優れたハッカーは制御を要求します。これが彼らが優れたハッカーである一部の理由です。何かが壊れたら、それを修正する必要があります。あなたが書かせているソフトウェアについても、同じように感じてほしいのです。オペレーティングシステムについても同じように感じるのは当然のことだと驚くべきではありません。

数年前、ベンチャーキャピタリストの友人が、関与している新しいスタートアップについて教えてくれました。有望に聞こえました。しかし、次に話したときには、彼らがWindows NTでソフトウェアを構築することを決め、非常に経験豊富なNT開発者を最高技術責任者(CTO)に雇ったと言っていました。これを聞いて、私はこの会社は終わりだと思いました。1つは、CTOが一流のハッカーではありえないということ。なぜなら、著名なNT開発者になるためには、自発的にNTを複数回使用しなければならず、優れたハッカーがそうするとは考えられないからです。そして2つ目は、たとえ彼が優秀だとしても、プロジェクトがNTで構築されていれば、優秀な人材を雇うのは難しいだろうということです。[2]

最終フロンティア

ソフトウェアに次いで、ハッカーにとって最も重要なツールはおそらくオフィスです。大企業は、オフィススペースの機能は地位を表現することだと考えています。しかし、ハッカーはそれ以上の用途でオフィスを使っています。彼らはオフィスを考える場所として使っているのです。そして、あなたがテクノロジー企業なら、彼らの考えがあなたの製品なのです。したがって、ハッカーを騒々しく気をそらされる環境で働かせるのは、ペンキ工場で空気が煤だらけなのと同じようなものです。

漫画「ダイバート」はキュービクルについて多くを語っており、その理由は正当です。私の知っているハッカーはみな、それを嫌っています。中断される可能性があるだけで、ハッカーは難しい問題に取り組むのを阻害されます。キュービクルのオフィスで本当の仕事をしたい場合、2つのオプションがあります。自宅で仕事をするか、誰もいない早朝や夜遅く、あるいは週末に出勤するのです。企業はこれが何かが間違っている兆候だと気づいていないのでしょうか。オフィス環境は、仕事を助けるはずのものなのに、それにもかかわらず仕事をしなければならないのです。

シスコのように、CEO も含めてすべての従業員がキュービクルを持っている企業もあります。しかし、彼らはそれほど先進的ではありません。明らかに、オフィススペースを地位の証しと見なしているのです。また、シスコは社内での製品開発がほとんどないことでも有名です。新しい技術は、それを生み出したスタートアップを買収することで得ているのです。そこでは、ハッカーたちが静かに働くことができたはずです。

ハッカーのニーズを理解している大企業の1つがマイクロソフトです。私は、「私たちと一緒に働いてください。そうすれば、仕事ができる場所を提供します」というメッセージの大きな写真入りのマイクロソフトの採用広告を見たことがあります。そして、大企業の中でマイクロソフトは、社内でソフトウェアを開発できる数少ない企業の1つなのです。うまくいっているわけではないかもしれませんが、それなりにうまくいっています。

企業がハッカーの生産性を高めたいなら、彼らが自宅でどのように働いているかを見るべきです。自宅では、ハッカーは自分で環境を整えて、最大限の成果を上げることができます。そして、自宅で働くハッカーは、騒々しい開放的な空間ではなく、ドアのある部屋で仕事をしています。彼らは、駐車場に囲まれたガラスの箱ではなく、人々がいて、考えを整理するために歩き回れる居心地の良い近所のような場所で仕事をしています。疲れたときに昼寝ができるソファがあり、机に座ったままで仕事をふりすごすことはありません。毎晩、主要なハッキングの時間帯に掃除機の音が響き渡ることもありません。会議や、神に誓って、企業の合宿やチームビルディングの活動もありません。そして、その PC 上で何をしているかを見ると、前述した道具についての私の意見を裏付けるものがあります。仕事では Java や Windows を使わされるかもしれませんが、自宅では Perl や Linux を使っているのがよくわかります。

実際、Cobol やJavaが最も人気のある言語だという統計は誤解を招くことがあります。私たちが知りたいのは、ハッカーが自由に選べる場合、つまり自分のプロジェクトで何を使うかです。そうすると、オープンソースのオペレーティングシステムがすでに市場を支配しており、最も人気のある言語はおそらくPerlだということがわかります。

興味深い

良い道具に加えて、ハッカーは興味深いプロジェクトを求めます。プロジェクトを興味深いものにするのは何でしょうか。明らかに、ステルス機や特殊効果ソフトウェアのようなセクシーなアプリケーションは、魅力的に感じられるでしょう。しかし、新しい技術的課題を提示するあらゆるアプリケーションも、興味深いものになり得ます。したがって、ハッカーが気に入るプロブレムを予測するのは難しいです。なぜなら、ある問題が興味深くなるのは、それに取り組む人々が新しい解決策を見出したときだからです。ITA(Orbitzの中のソフトウェアを書いた会社)の前は、航空運賃検索に取り組む人々は、それが最も退屈なアプリケーションの1つだと考えていたでしょう。しかし、ITAはより野心的な方法で問題を再定義することで、それを興味深いものにしたのです。

Googleでも同じようなことが起きたと思います。Googleが設立された当時、いわゆるポータルサイトの常識的な見方では、検索は退屈で重要ではないと考えられていました。しかし、Googleの人々は検索を退屈だと思っておらず、それが彼らが検索を非常によく行う理由なのです。

これは管理者が差をつけられる分野です。親が子供に「10分で部屋を片付けられるかな」と言うように、優れた管理者は時に問題を、より興味深いものに再定義することができます。スティーブ・ジョブズは特にこれが得意で、それは部分的に高い基準を持っているからです。Mac以前にも安価なパソコンはたくさんありました。彼は問題を「美しいものを作る」と再定義しました。そしてそれは、どんな人参やムチよりも開発者を奮い立たせたと思います。

確かに、彼らは素晴らしい成果を上げました。Macが初めて登場したとき、電源を入れなくても良さがわかりました。ケースを見ただけで分かったのです。数週間前、ケンブリッジの通りを歩いていると、誰かのゴミ箱にMacのキャリングケースらしきものが置いてありました。中を見ると、Mac SEが入っていました。それを家に持ち帰って電源を入れると、起動しました。嬉しそうなMacintoshのマーク、そしてファインダー。神様、これはシンプルだった。Googleのようでした。

ハッカーは高い基準を持つ人のために働くのが好きです。しかし、ただ厳格であるだけでは不十分です。正しいものを要求しなければなりません。つまり、自分もハッカーでなければならないのです。プログラマーの管理方法についての記事を時折見かけますが、実際には2つの記事が必要です。1つはプログラマー自身が管理者の場合、もう1つはプログラマーではない場合です。後者は2語に要約できるでしょう:「諦めろ」。

問題は日々の管理ではありません。本当に優れたハッカーはほとんど自己管理できます。問題は、ハッカーではない人間が優れたハッカーを見分けられないことです。同じ問題が、アメリカ車が醜いことを説明しています。私はこれを「デザインのパラドックス」と呼んでいます。優れたデザイナーを雇えば美しい製品ができると思うかもしれません。しかし、自分にセンスがなければ、優れたデザイナーを見分けられません。定義上、ポートフォリオからは分かりません。受賞歴や経歴を頼りにするのも無意味です。デザインの世界では、実力よりもファッションや人脈が重要だからです。美しいものを生み出すプロセスを管理するには、美しさがわからない人間では無理なのです。アメリカ車が醜いのは、アメリカ車メーカーがセンスの悪い人間に支配されているからです。

この国の多くの人は、センスは難解で軽薄なものだと考えています。しかし、それは誤りです。デザインを推進するには、管理者自身が最も厳しい顧客でなければなりません。そして、本当に優れたセンスがあれば、自分を満足させることを、優れた人材が取り組みたくなる課題にできるのです。

嫌な小さな問題

大きくて明確な問題を解決するのではなく、たくさんの嫌な小さな問題を解決しなければならないプロジェクトは、面白くないと言えます。最悪なのは、バグだらけのソフトウェアのインターフェースを書くことです。個々の顧客の複雑で曖昧なニーズにカスタマイズするのも同様です。ハッカーにとって、これらの種類のプロジェクトは「千の傷」のようなものです。

嫌な小さな問題の特徴は、何も学べないことです。コンパイラを書くのは面白いのは、コンパイラとは何かを学べるからです。しかし、バグだらけのソフトウェアのインターフェースを書いても何も学べません。バグはランダムだからです。[3] 優れたハッカーが嫌な小さな問題を避けるのは、単なる気分の問題ではありません。自己保存の問題なのです。嫌な小さな問題に取り組むと愚かになります。優れたハッカーが、モデルがチーズバーガーを避けるのと同じ理由で避けるのです。

もちろん、本質的にそのような性質を持つ問題もあります。供給と需要の関係から、特に高給が支払われます。したがって、素晴らしいハッカーに退屈な問題に取り組ませる方法を見つけられれば、非常に成功するでしょう。

この現象が起こるのは、スタートアップの中です。私たちのスタートアップでは、ロバート・モリスがシステム管理者として働いていました。バー・ミツバで Rolling Stonesが演奏するようなものです。そのような人材を雇うことはできません。しかし、自分が創業者である会社なら、どんな地道な仕事でも人々は引き受けるでしょう。[4]

大企業は、組織を分割することで問題を解決します。研究開発部門を設け、そこで働く従業員には顧客の嫌な小さな問題に直接取り組む必要がないようにするのです。[5] この方式では、研究部門は鉱山のようなものです。新しいアイデアを生み出し、それを他の部門が活用できるかもしれません。

このような極端な対応をする必要はないかもしれません。ボトムアッププログラミングは、別の解決策を示唆しています。賢明な人材にツールメーカーとして働いてもらうのです。x型のソフトウェアを作る会社なら、そのようなソフトウェアを書くためのツールを構築するグループと、それらのツールを使ってアプリケーションを書くグループに分けるのです。このようにすれば、賢明な人材に全体の99%のコードを書いてもらえるかもしれませんが、伝統的な研究部門と同じように、ほとんど隔離された状態を維持できます。ツールメーカーにはユーザーがいますが、それは自社の開発者だけです。[6]

Microsoftがこのアプローチを使えば、Wordをメモリ割り当てなどの低レベルのCで直接書くのではなく、Wordの言語の大きなレゴブロックを組み合わせるだけで済むので、セキュリティホールが多くならなかったかもしれません。

集中

面白い問題と同様に、優れたハッカーが好きなのは、他の優れたハッカーです。優れたハッカーは集まる傾向があり、時にはXerox PARCのように劇的に集まることもあります。したがって、ハッカーを引き付ける環境を整えても、単純に比例して集まるわけではありません。集中する傾向があるため、むしろ環境の2乗に比例するでしょう。つまり、勝者総取りの状況になります。ある時点では、ハッカーが最も働きたがる場所は10か所か20か所しかなく、その中に入っていなければ、優れたハッカーは1人も集まらないのです。

優れたハッカーを持っていることだけでは、企業を成功させるには十分ではありません。Googleや ITAのように、現在のホットスポットになっているところでは機能しますが、Thinking Machinesやゼロックスでは役立ちませんでした。サンは一時期良い業績を上げていましたが、彼らのビジネスモデルは下降エレベーターです。そのような状況では、最高のハッカーでも助けることはできません。

しかし、他の条件が同じであれば、優れたハッカーを引き付けられる企業は大きな優位性を持つと思います。これに反対する人もいます。1990年代に venture capital 企業を回っていた時、いくつかの企業から「ソフトウェア企業は素晴らしいソフトウェアを書くことで勝つのではなく、ブランド、チャネルの支配、適切なディールを行うことで勝つ」と言われました。

彼らはこれを本当に信じているようでした。そしてその理由がわかると思います。少なくとも無意識のうちに、VCが探しているのは次のマイクロソフトだと思います。そしもちろん、マイクロソフトがモデルなら、素晴らしいソフトウェアを書くことで勝とうとする企業を探すべきではありません。しかし、VCがマイクロソフトの次を探すのは間違いです。なぜなら、他の企業が丁度良いタイミングで屈服して次のIBMになる準備がない限り、どのスタートアップも次のマイクロソフトにはなれないからです。

マイクロソフトをモデルとするのは間違いです。なぜなら、彼らの文化全体がたった1つの幸運な出来事から派生しているからです。マイクロソフトは悪いデータポイントです。彼らを除外すれば、良い製品が市場で勝つ傾向にあることがわかります。VCが探すべきなのは、次のAppleや次のGoogleです。

ビル・ゲイツはこれを理解していると思います。Googleを心配しているのは、彼らのブランドの力ではなく、彼らがより優れたハッカーを持っているという事実です。[7]

認識

では、優れたハッカーとは誰なのでしょうか? 会ったときにどうわかるのでしょうか? これは非常に難しいことが分かります。ハッカー自身でさえわかりません。今では、私の友人のTrevor Blackwellが優れたハッカーだと確信しています。Slashdotで彼が自分のSegwayを作ったことを読んだかもしれません。この プロジェクトの驚くべきことは、彼がそれをたった1日で(Pythonで)書いたということです。

Trevorにとってはそれが普通のことです。しかし、私が初めて彼に会ったときは、彼が完全なバカだと思いました。ロバート・モリスの部屋で何か喋っているのを見て、ロバートにそのおかしな奴を追い払ってランチに行こうと必死のジェスチャーをしたのを覚えています。ロバートも最初は Trevor を見誤ったそうです。Trevor が会った時は、彼が生活のあらゆる側面について書いたカードを山ほど持ち歩いていたそうです。そして、カナダから来たばかりで、強いカナダ訛りとマルーンを持っていたそうです。

この問題は、ハッカーが社会的無関心という評判とは裏腹に、時に賢く見えるように努力することによって複雑化しています。私が大学院生のころ、たまにMIT AIラボに寄っていました。最初は少し威圧的でした。そこにいる人たちは皆とても早口でした。しかし、しばらくすると早口で話す方法を学びました。早く考える必要はありません。同じことを2倍の言葉で言えばいいのです。

このようなノイズの中で、会ったときにいい ハッカーを見分けるのは難しいです。私にもわかりません。履歴書からも分かりません。ハッカーを評価する唯一の方法は、一緒に何かを作業することだと思います。

これが、ハイテク地域が大学の周りにしか起こらない理由です。ここで重要なのは教授ではなく、学生です。スタートアップは大学の周りに育つのは、大学が有望な若者を集め、同じプロジェクトに取り組ませるからです。賢い者たちは、他の賢い者たちを見つけ出し、一緒に新しいプロジェクトを立ち上げるのです。

優れたハッカーを見分けるには、一緒に仕事をしてみるしかありません。そのため、ハッカー自身でさえ自分の実力がわかりません。これは多くの分野に当てはまります。私は、ある分野で優れている人は、自分の偉大さを確信しているというよりは、なぜ他の人がそんなに無能に見えるのかを不思議に思っているのを発見しました。

しかし、ハッカーにとってはさらに自分の実力がわかりにくいのは、自分の仕事を比較するのが難しいからです。ほとんどの他の分野ではそれが簡単です。100メートルなら10秒で一番速い人がわかります。数学でさえ、どの問題が解きにくいか、良い解決策とは何かについて、ある程度の合意があるようです。しかし、ハッキングは小説を書くようなものです。どちらの小説がよいかを誰が言えるでしょうか? 作者自身でさえ。

ハッカーの場合、他のハッカーにはわかります。なぜなら、小説家とは違って、ハッカーは共同プロジェクトに取り組むからです。ネットを通じて難しい問題をぶつけ合えば、相手がどれだけ上手く対処できるかすぐにわかります。しかし、ハッカー自身は自分の仕事ぶりを見ることはできません。だから、優れたハッカーに「あなたはどのくらい上手ですか?」と聞くと、ほとんど必ず「わかりません」と答えるのです。単なる謙遜ではありません。本当にわからないのです。

そして、一緒に仕事をした人以外は誰も知りません。これは奇妙な状況を生み出します。私たちは、誰が英雄なのかわかりません。有名になるハッカーは、PRの偶然の事故によってそうなるのです。時々、優れたハッカーの例を挙げる必要がありますが、誰を使えばいいかわかりません。最初に思い浮かぶのは、個人的に知っている人ですが、それでは地味すぎるように思えます。そこで、リチャード・ストールマンやリーナス・トーバルズ、アラン・ケイなど、有名な人を使えばいいかもしれないと思います。しかし、これらの人が本当に優れたハッカーかどうかはわかりません。一緒に何かを作ったことがないからです。

ハッキングのマイケル・ジョーダンがいるとしても、それが誰かはわかりません。本人でさえわからないのです。

育成

最後に、ハッカー全員が気になっている質問です。どうすれば優れたハッカーになれるのでしょうか? 自分で優れたハッカーになるのは難しいかもしれません。しかし、自分を愚かにすることは確かにできます。そして、自分を愚かにできるなら、賢くすることもできるはずです。

[1]

良いハッカーになるための鍵は、自分の好きなことに取り組むことかもしれません。 私が知っている素晴らしいハッカーを見ると、彼らに共通しているのは、自分の好きでないことに取り組むのが極端に難しいということです。これが原因なのか結果なのかはわかりませんが、おそらく両方だと思います。

上手にものを行うには、それを愛さなければなりません。 したがって、ハッキングを自分の愛するものとして保つことができれば、それを上手にできる可能性が高くなります。14歳のころのプログラミングに対する驚きの気持ちを持ち続けるようにしましょう。現在の仕事があなたの頭脳を腐らせているのではないかと心配しているなら、おそらくそうなのでしょう。

最高のハッカーは賢いことが多いのですが、それは他の分野でも当てはまります。ハッカーにしか見られない特質はあるのでしょうか。友人に聞いてみたところ、最も多く挙げられたのが好奇心でした。 私は以前、賢い人はみな好奇心があると考えていました。つまり、知識の第一次微分が好奇心だと。しかし、ハッカーは特に好奇心が強く、特にものがどのように動作するかに興味があるようです。これは理解できます。プログラムは実際のところ、物事がどのように動作するかの巨大な説明書だからです。

いくつかの友人は、ハッカーの集中力、つまり「自分の頭の中以外のすべてを遮断する」能力について言及しました。私もこれを観察しています。また、ビールを半分飲むとプログラミングができなくなるというハッカーの話も聞いたことがあります。 したがって、ハッキングには何らかの特別な集中力が必要かもしれません。優れたハッカーは頭の中に大量のコンテキストを読み込めるため、1行のコードを見るときに、そのコードだけでなくそれを取り巻くプログラム全体を見ることができるのかもしれません。ジョン・マクファーは、バスケットボール選手のビル・ブラッドリーの成功は、彼の並外れた周辺視力によるところが大きいと書いています。「完璧」な視力は垂直方向の周辺視野が約47度ですが、ビル・ブラッドリーは70度もあり、床を見ながらもバスケットを見ることができたのです。優れたハッカーにも同様の生まれつきの能力があるのかもしれません。(私は非常に密度の高い言語を使うことで、この問題を回避しています。)

これがキュービクルに対する認識のズレの理由かもしれません。施設担当者は集中力を持っていないため、ハッカーにとってキュービクルで作業することが「頭がミキサーにかけられているよう」に感じられることを理解できないのかもしれません。(一方で、自閉症の噂があるビルは、この感覚をよく理解しているはずです。)

優れたハッカーと一般的に賢い人との違いの1つは、ハッカーの方が政治的に正しくないことです。良いハッカー同士の秘密の握手のようなものは、お互いをよく知っているからこそ、一般の人々から石打ちにされるような意見を表明できるということです。そして、プログラミングにおいて政治的に正しくないことが有用な資質であることがわかります。 プログラムは非常に複雑で、少なくとも優れたプログラマーの手の中では非常に流動的です。このような状況では、前提を疑う習慣を持つことが役立ちます。

これらの資質を育むことはできるでしょうか。わかりません。しかし、少なくともそれらを抑え付けないことはできます。 したがって、私の最善の提案は次のようなものです。優れたハッカーになるには、自分との取り決めとして、退屈なプロジェクトに取り組む必要がない(家族が餓死しない限り)代わりに、決して適当な仕事はしないと約束することです。私の知る優れたハッカーはみな、この取り決めをしているようですが、おそらくそれ以外の選択肢はなかったのでしょう。

[1] 公平を期すために言えば、IBMはまともなハードウェアを作っています。私はIBMのノートパソコンで本文を書いています。

[2] 結局のところ、彼らは破滅的な道を歩むことになりました。数か月後に閉鎖されました。

[3] これが人々が「人生の意味」と呼んでいるものだと思います。表面的には奇妙な考えに見えます。生命は表現ではありませんから、どうして意味を持つことができるでしょうか。しかし、コンパイラのようなプロジェクトでは、多くの問題を解決しなければならないものの、それらの問題はパターンを成しています。つまり、信号のようなものです。一方で、解決しなければならない問題がランダムな場合、それらは雑音のように感じられます。

[4] アインシュタインは一時期、冷蔵庫の設計に従事していました。(持ち株がありました。)

[5] コンピューター業界における研究の正確な定義は難しいですが、おおよその目安としては、ユーザーのいないソフトウェアが研究に当たります。

私は、最高のハッカーが研究部門で働きたがるのは、論文を書くためではないと思います。むしろ、Word 13.27の韓国語版とトーキングペーパークリップを統合する3時間にも及ぶ製品マネージャーとの会議に参加する必要がないことが主な理由だと思います。

[6] 同様のことが長らく建設業界で起こっています。数百年前に家を建てた時は、その地域の大工が建物全体を建造していました。しかし最近では、ビルダーの役割は他者によって設計・製造されたコンポーネントを組み立てることになっています。これは、デスクトップパブリッシングの登場と同様に、人々に実験する自由を与えましたが、確実に効率的になっています。

[7] GoogleはかつてのNetscapeよりもMicrosoftにとって危険です。おそらく、これまでどの企業よりも危険かもしれません。それも、戦う決意があるからです。求人ページには「悪を行うな」が「コア・バリュー」の1つだと書かれています。大豆油や鉱山機器を売る企業からこのような声明が出れば、単に奇抜なだけかもしれません。しかし、私たちコンピューター業界の人間なら、それが誰に向けられた宣戦布告なのかがわかるはずです。

感謝 Jessica Livingston、Robert Morris、Sarah Harlinの各氏には、この講演の以前のバージョンを読んでいただきました。