ポール・グレアム「Viaweb社のFAQ」を翻訳しました。原題は Viaweb FAQ で、原文はココです。英語に強い皆さま、コメント欄でのアドバイスをよろしくお願いいたします。なお翻訳にあたり、id:a様、名無し様、id:sirocco634様のアドバイスをいただいております。ありがとうございます!!


Viaweb社のFAQ
Viaweb FAQ


エディタは、ユーザのセッションをどう処理しましたか?
How did the editor handle client sessions?

各ユーザあたりに一つのLispプロセスを走らせた。誰かが自分のサイトを編集するためにログインすると、私たちは新たなプロセスを立ち上げ、すべてのデータをメモリにロードした。その後ユーザは、そのプロセスと進行中の会話ができた。
There was one Lisp process for each user. When someone logged in to edit their site, we'd start up a new process and load all their data into memory. From that point they had an ongoing conversation with that process.

すべては既にメモリにロードされていたので、ディスクから何かを読み出したり、HTTPリクエストに応じるためのプロセスを立ち上げる必要はまったくなかった。私たちはただ、メモリに保存されたクロージャを評価すれば済んだ。
Because everything was already loaded into memory, we never had to read anything from disk or start up a process to respond to an HTTP request. All we had to do was evaluate a closure stored in memory.


HTTPサーバには何を使いましたか?
What did you use for an HTTP server?

最初のうちは、ロバート・モリスがCommon Lispで書いた、エディタ独自のHTTPサーバを使った。その後、私たちは、Lispと対話するために、ロバート・モリスがハックしたApacheに切り替えた。
At first the editor had its own HTTP server, written in Common Lisp by Robert Morris. Later we switched to a version of Apache that he hacked to talk to Lisp.


Lispは何を使いましたか?
What Lisp did you use?

Clispだ。
Clisp.


ステートを節約するために、リアルの継続を使いましたか?
Did you use real continuations to save state?

いや、On Lispで説明したように、Common Lispでそう見せかけるためにマクロを使った。
No, we used macros to fake them in Common Lisp, as described in On Lisp.


データベースは何を使いましたか?
What database did you use?

何も使わなかった。単にすべてのファイルを保存した。 Unixのファイルシステムは、データを破損させないのが実に上手い。特にファイルをNetappに置くときは。
We didn't use one. We just stored everything in files. The Unix file system is pretty good at not losing your data, especially if you put the files on a Netapp.

ウェブベースのアプリケーションを、データベースのインタフェースと考えるのは、よくある間違いだ。デスクトップのソフトは、単なるデータベースへのインタフェースではない。ウェブベースのソフトの場合でも、どうして違わなければならないのだろう? どこにデータを保存するかではなく、ソフトウェアが何をするかが重要なのだ。
It is a common mistake to think of Web-based apps as interfaces to databases. Desktop apps aren't just interfaces to databases; why should Web-based apps be any different? The hard part is not where you store the data, but what the software does.

私たちがViaweb社を経営していたころ、ベンチャー・キャピタルや業界アナリストのようなエセ技術者から、データベースを使わないことで山ほど文句を言われた。サーバとしてインテル系の安いパソコンでFreeBSDを走らせていたことにも。だがYahooに買収されたとき、私たちはYahooの人たちも単にファイルをすべて保存し、またサーバはすべて、FreeBSDが走っているインテル系の安いパソコンだと知った。
While we were doing Viaweb, we took a good deal of heat from pseudo-technical people like VCs and industry analysts for not using a database-- and for using cheap Intel boxes running FreeBSD as servers. But when we were getting bought by Yahoo, we found that they also just stored everything in files-- and all their servers were also cheap Intel boxes running FreeBSD.

(バブルのとき、オラクルは「Yahooはオラクルのソフトで動いています」という広告をよく出していた。私には信じられなかったので、聞いて回った。Yahooの経理部がオラクルのソフトを使っていたとのことだった)
(During the Bubble, Oracle used to run ads saying that Yahoo ran on Oracle software. I found this hard to believe, so I asked around. It turned out the Yahoo accounting department used Oracle.)

あなたの共同設立者は、史上初のワームを書いた、そして、今はMITの教授である、あのロバート・モリスですか?
Was your co-founder the same Robert Morris who wrote the worm and is now a professor at MIT?

そうだ。
Yes.


ベンチャーの資金はどこから調達しましたか?
Where did you get venture funding?

私たちは数人の個人投資家、ビジネス用語で言う「エンジェル」から資金を調達した。私たちの投資家はとても真面目で、ほとんどベンチャー・キャピタルだったが、有名なベンチャー・キャピタルのようには行動しなかった。
We got money from several private investors, what are known in the business as "angels." Our investors were pretty serious, almost VCs, but they weren't actually brand-name VC firms.

私たちはViaweb会を、たいへん低コストで経営した。合計で約200万ドルを使った。買収された時点でも、おおむね収支トントンだったから、そんなに無駄遣いはしていない。
We did Viaweb very cheaply. We spent a total of about $2 million. We were just about breaking even when we got bought, so we would not have spent too much more.


"Viaweb"はどう発音するのですか?
How was "Viaweb" pronounced?

公式には「ヴィー・ア・ウェブ」もしくは「ビ・ア・ウェブ」だ。自分たちは前者を使っていたが、Yahooの人たちは後者を好んでいたようだ。
The official policy was that you could say either vee-a-web or vie-a-web. We all used the former, but everyone else, including the people at Yahoo, seemed to prefer the latter.


Viaweb社は、他の会社とどこが違っていたのでしょう?
What would you do differently?

技術的に特に優れていたわけではない。実際にはやらなかったけれど、いま思えばやっておくべきだったと思うのは、自分たちである種のオンラインストアを始めることだ。私たちは、自分たち自身のサイトを作るのにエディタを使っており、それを改善しようと必死だったのだ。だがソフトウェアの電子商取引については、あまり深くは理解していなかった。
Technically, not much. I think the main thing we should have done that we didn't was start some kind of online store ourselves. We used the editor to make our own site, so we were pretty motivated to make it good. But we could only understand the e-commerce part of the software second-hand.