見出し画像

普通のやつらの上を行け

ポール・グレアム(Paul Graham)が執筆したエッセー「Beating the Averages」の日本語訳になります。 原文の前半のみが訳されています。

2001年4月 2003年4月、再編集

(このエッセーは2001年のフランツ・デベロッパー・シンポジウムで行われた講演で発表されたものである。)

1995年の夏、友人のロバート・モリス(Robert Morris)と私は Viaweb と呼ばれるスタートアップを始めた。私たちの計画は、エンドユーザーがオンラインストアを作ることができるソフトウェアを書くことだった。当時、このソフトウェアに関する奇抜な点は、通常の Web ページをインターフェイスとして使い、私たちのサーバー上でソフトウェアが動作することだった。

もちろん、多くの人たちがこのアイデアを持っていたかもしれないが、私が知るかぎり Viaweb は最初の Web ベースのアプリケーションだった。自分たちのソフトウェアがあなたのデスクトップコンピューターで動作する代わりに Web 経由で動作するため、これは私たちにとって奇抜なアイデア思え、私たちはソフトウェアにちなんで会社を Viaweb と名づけた。

このソフトウェアに関するもう1つの普通ではないことは、主に Lisp と呼ばれるプログラミング言語で書かれていることである。これは Lisp で書かれた最初の大きなエンドユーザー・アプリケーションの1つで、Lisp はそれまでは主に大学や研究室で使われていた。[1]

秘密兵器

エリック・レイモンド(Eric Raymond)は「ハッカーになる方法」と呼ばれるエッセーを書き、そのエッセーの数あるものの中で、ハッカー志望者に学ぶべき言語は何かを教えている。彼は簡単に学べられるという理由で、Python と Java から始めることを提案している。本格的なハッカーは Unix をハックするためにC言語を、システム管理と CGI スクリプトのために Perl 言語も学びたいと思うだろう。最後に、本当に本格的なハッカーは Lisp を学ぶことを考えるべきである。

「Lisp は、あなたが最終的に Lisp を理解したときに得られる深い悟り体験のために学ぶ価値があるものだ。たとえ実際に Lisp 自体を頻繁に使わない場合でも、その経験があなたを余生の間により良いプログラマーとさせるだろう。」

これは、ラテン語を学ぶことに関してあなたがよく耳にする同じ議論である。あなたはおそらく古典の教授以外の仕事を得ないだろうが、ラテン語を学ぶことはあなたの精神を向上させ、英語のように自分が使いたい言語の中であなたをより良い書き手とさせるだろう。

だけど、ちょっと待ってほしい。このたとえはそれほど広げられていない。ラテン語があなたに仕事を得させない理由は、誰もラテン語を話さないからである。もしあなたがラテン語で書くと、誰もあなたを理解することができない。しかし、Lisp はコンピューター言語であり、コンピューターはあなたにあらゆる言語を話し、プログラマーはそれらをコンピューターに伝える。

彼が言うように、Lisp があなたをより良いプログラマーにするのなら、なぜあなたはそれを使いたいと思わないのだろうか? もし画家が自分をより良い画家にするブラシを提供された場合、私には彼はすべての絵にそのブラシを使いたいよね? と思われる。

私はここでエリック・レイモンドをからかうつもりはない。全体として、彼のアドバイスは良い。彼が Lisp について言うことは、ほとんど一般的に通用している見解である。しかし、世間一般の見解には矛盾がある。それは、Lisp はあなたをより良いプログラマーにさせるが、それでもあなたはそれを使わないということである。

なぜなのだろうか? 結局のところ、プログラミング言語は単なるツールである。Lisp が本当により良いプログラムを生み出す場合、あなたは Lisp を使うべきである。もしそうでない場合、誰が Lisp を必要とするのだろうか?

これは単なる理論的な問題ではない。ソフトウェアは非常に競争の激しいビジネスで、自然独占になりがちである。より速く、より良く書かれたソフトウェアを持つ会社は、他のすべての状況が同じであれば、会社の競合を廃業に追いやるだろう。そして、あなたがスタートアップを始めているとき、これは非常に激しい。スタートアップはオール・オア・ナッシングという命題になりやすい。あなたは金持ちになるか、何も得られないかである。スタートアップでは、あなたが間違ったテクノロジーに賭けた場合、競合があなたを押しつぶすだろう。

ロバートと私は両方とも Lisp をよく知っていて、自分たちの本能を信じない理由を見い出すことができず、Lisp に身をまかせた。私たちは他の誰もが C++ または Perl でソフトウェアを書いていることを知っていた。だけど、これが何も意味しないことも知っていた。もしあなたがそのようにしてテクノロジーを選択する場合、あなたは Windows を動作させることになるだろう。あなたがテクノロジーを選択するとき、他の人たちが何をしているかを無視し、何が最も機能するかを考えなければならない。

これは特にスタートアップに当てはまる。大企業では、あなたは他の大企業がしているすべてのことをすることができる。しかし、スタートアップは他のスタートアップがするすべてのことをすることはできない。スタートアップであっても、多くの人がこのことに気づいていると私は思わない。

平均的な大企業は年間約10%で成長する。だから、もしあなたが大企業を経営していて、平均的な大企業がするようなすべてのことをする場合、あなたは平均的な大企業と同じようにすることができる。つまり、年間約10%で成長するのだ。

もしあなたがスタートアップを経営している場合、もちろん同じことが起きるだろう。もしあなたが平均的なスタートアップがするようなすべてのことをする場合、あなたは平均的なパフォーマンスを期待する必要がある。ここで問題なのは、平均的なパフォーマンスはあなたが廃業することを意味することである。スタートアップの生存率は50%よりずっと少ない。だから、もしあなたがスタートアップを経営している場合、何かおかしなことをしたほうがより良い。そうでない場合、あなたは大変なことになる。

1995年に戻るが、私たちは自分たちの競合が理解していると思わないことを知っていたし、今でも理解している人はほとんどいない。自分自身のサーバーで動く必要のあるソフトウェアを書くとき、あなたは自分が望む言語を使うことができる。10年前、アプリケーションを書くことは C 言語でアプリケーションを書くことを意味していた。しかし、Web ベースのソフトウェアを使えば、特に言語とオペレーティングシステムの両方のソースコードがある場合、あなたは自分の使いたいどんな言語を使うことができる。

しかしながら、この新しい自由は両刃の剣である。あなたはどんな言語も使えるようになったので、どの言語を使うかについて考えなければならない。何もないふりをしようとする企業は、自分たちの競合がしないリスク発見を変えた。

もしどんな言語でも使うことができるなら、あなたはどの言語を使う? 私たちは Lisp を選択した。一つの理由には、この市場では急速な開発が重要であろうことは明らかだったからである。私たちはすべてをゼロから始めていて、競合より先に新しい機能を実現できる会社には大きなアドバンテージあっただろう。Lisp はソフトウェアを速く書くのに実に良い言語で、サーバーベースのアプリケーションは完了したらすぐにソフトウェアをリリースすることができるから速い開発の効果を強める、ということを私たちは知っていた。

もし他の企業が Lisp を使いたくなかった場合、なおさら好都合である。これは私たちに技術的な優位性を与えるかもしれないし、私たちは自分たちが得らことのできるすべての助けを必要としていた。Viaweb を始めたとき、私たちはビジネスの経験がなかった。マーケティング、人の雇用、資金調達、顧客の獲得について何も知らなかった。私たちのどちらもあなたたちが本当の仕事と呼ぶものさえ持っていなかった。自分たちが得意だった唯一のことはソフトウェアを書くことだった。私たちはこれが自分たちを救うと望んでいた。ソフトウェア開発で得られるどんな利点でも、私たちは取るだろう。

だから、あなたは Lisp の使用は実験であったと言える。私たちの仮説は、Lisp でソフトウェアを書けば競合よりも速く機能を実現することができ、彼らができなかったことをソフトウェアですることもできるというものだった。そして、Lisp は非常にハイレベルだったので、大きな開発チームを必要とせず、コストはより低くなるだろう。最終的に自分たちがすべてのユーザーを獲得し、競合は何も獲得せずそのうち廃業するだろう。とにかく、これが私たちが起きてほしいと望んだものであった。

この実験の結果はどうだった? なんと驚いたことに、うまくいったのだ。最終的に私たちには約20〜30もの多くの競合がいたが、彼らのソフトウェアはいずれも自分たちのものと張り合わなかった。

私たちにはサーバーで動作するがデスクトップ・アプリケーションのように感じられる WYSIWYG(ウィジウィグ)のオンラインストア・ビルダーがあった。競合には CGI スクリプトがあった。そして、私たちは機能において常に彼らのはるか先にいた。ときどき、競合は必死になって私たちが持っていなかった機能を導入しようとする。しかし、Lisp を使った開発サイクルは速く、競合がプレスリリースで新しい機能を発表した1日か2日以内にそれを複製することができたこともあった。プレスリリースを報道するジャーナリストが私たちに電話する時間的余裕ができるまでに、自分たちにも新しい機能があった。

競合には、私たちが彼らのエニグマのトラフィックや何かを解読する何らかの秘密兵器を持っていたと思えたに違いない。実際、私たちには秘密兵器があったが、それは彼らが認識していたものよりもシンプルなものだった。誰も私たちに彼らの機能に関するニュースを漏らしていない。私たちは可能だと思っていた誰よりもただ速くソフトウェアを開発することができた。

私がおよそ9歳の頃、フレデリック・フォーサイス(Frederick Forsyth)の「ジャッカルの日」という本のコピーをたまたま手に入れた。主人公はフランスの大統領を殺すために雇われた暗殺者である。暗殺者は大統領のルートを見渡すアパートまでに着くために、警察のそばを通らなければならない。暗殺者は松葉づえを突く老人の格好をして警察のすぐそばを歩き、警察は暗殺者を決して疑わなかった。

私たちの秘密兵器は似ていた。私たちは括弧でいっぱいの奇妙な構文を使った変なAI言語でソフトウェアを書いた。何年もの間、Lisp がそのように説明するのを聞いて私はイライラしていた。しかし、それは今では自分たちに有利に働いている。ビジネスでは、競合が理解していない技術的利点以外に価値のあるものはない。ビジネスでは、戦争のように、驚きは力と同じくらいの価値がある。

だから、私は言うのは少し恥ずかしいのだが、Viaweb に取り組んでいる間は Lisp について公の場で何も言わなかった。私たちはそれを報道機関に少しも言及しなかったし、もしあなたが Web サイトで Lisp を検索した場合、あなたが見つけるのは私の略歴にある2つの本のタイトルだけである。これは偶然ではない。スタートアップは競合にできるだけ少ない情報を与えるべきだ。彼らが私たちのソフトウェアがどの言語で書かれているか知らない場合、もしくは気にしなかった場合、私はそれをそのままにしておきたかった。[2]

私たちのテクノロジーを最も理解する人たちは顧客であった。彼らは Viaweb がどの言語で書かれているのか気にしなかったが、Viaweb が本当にうまく機能することに気づいていた。Viaweb は彼らにすごい見た目のオンラインストアを文字通り数分で作らせていた。そして、ほとんど口コミで、私たちはますますユーザーを獲得した。1996年の終わりまでに、オンラインで約70店舗があった。1997年の終わりには、500店舗だった。6ヶ月後、Yahoo が私たちを買収したとき、1070の店舗ユーザーがいた。今日ではこのソフトウェアは Yahoo ストアとして、その市場を支配し続けている。これはYahoo のより利益になる要素のひとつで、このソフトウェアで作られたストアはYahooショッピングの基盤となっている。私は1999年に Yahoo を去ったので、現在どれほどのユーザーがいるか正確には分からないが、私が最後に聞いたのは約2万ユーザーだった。

※ 続きはまた気が向いたときに書きます。みなさんからの応援があると書き始めるかもしれません。(例:Twitter でツイートしたり、note で投げ銭するなど。)


読んでくれて、ありがとう🙋🏻‍♂️ もしこのnoteが気に入ったら、「❤️」ボタンを押したりTwitterでシェアしたりしていただくと喜びます👍🏻 🆕 Jackを応援するパトロンになりませんか?👀 https://note.com/tokyojack/circle