How did the editor handle client sessions?
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.
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.
What did you use for an HTTP server?
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.
What Lisp did you use?
Did you use real continuations to save state?
No, we used macros to fake them in Common Lisp, as described in
What database did you use?
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.
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
(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.)
Was your co-founder the same Robert Morris who wrote the worm
and is now a professor at MIT?
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.
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.
How was "Viaweb" pronounced?
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.
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.