Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

我做过什么

原文:What I Worked On
作者:Paul Graham 发表:2021-02
译者:Claude(baoyu-translate)

上大学之前,除了课业以外,我主要做的两件事是写作和编程。我没写过文章。我写的是当时(大概现在也是)初学者被认为该写的那种东西:短篇小说。我写的小说很糟糕。几乎没有什么情节,只有一些感情强烈的角色——我自以为这样就让小说显得深刻。

我尝试写的第一批程序,是在我们学区用来做当时所谓“数据处理“的那台 IBM 1401(1959 年 IBM 中型机)上。那是九年级,所以我才十三、四岁。学区的那台 1401 恰好就放在我们初中的地下室里,我和我的朋友 Rich Draves(PG 初中朋友)获准去用它。地下室像是一个迷你版的 007 反派老巢,那些样子怪异的机器——CPU、磁盘驱动器、打印机、读卡机——都架在明亮的荧光灯下、垫高的地板上。

我们用的语言是 Fortran 的早期版本。你得把程序敲在打孔卡上,然后把卡片摞进读卡机,按下按钮,让程序加载到内存里运行。运行结果通常是在那台声音大得惊人的打印机上打印点什么出来。

那台 1401 让我很困惑。我搞不清楚拿它能做什么。事后想想,我当时本来也做不了多少事。程序的唯一输入形式是存在打孔卡上的数据,而我手头没有任何打孔卡上的数据。另一种选项就是做一些不需要任何输入的事情,比如计算 π 的近似值,但我数学知识不够,干不了这类有意思的事情。所以我记不起自己当时写过的任何程序也不奇怪——它们多半也做不了什么。我印象最深的一刻,是我意识到程序原来可以不停下来——因为我自己写的某个程序就没停。在一台没有分时系统的机器上,这不仅是技术错误,也是社交错误,从数据中心管理员的表情就能看出来。

到了微型计算机这一代,一切都变了。现在你面前可以摆一台计算机,就放在桌上,它会在运行时实时回应你的击键,而不是只能吭哧吭哧把一摞打孔卡读完然后停下。

我朋友里第一个拥有微型计算机的人,是自己组装出来的。那是 Heathkit(美国电子产品套件公司)卖的一种套件。我至今清楚记得,看着他坐在它面前、把程序直接敲进电脑里时,我心里那种又佩服又羡慕的感觉。

那时候计算机很贵,我磨了我父亲好几年,才在大约 1980 年说服他给我买了一台 TRS-80(1977 年 Tandy/Radio Shack 推出的微型计算机)。当时的金标准是 Apple II,但 TRS-80 也够用了。从这时起我才算真正开始编程。我写过一些简单的游戏、一个预测我的模型火箭能飞多高的程序,还有一个文字处理器——我父亲至少用它写完了一本书。内存里只放得下大约两页文字,所以他每次写两页就打印出来,但比打字机已经强多了。

虽然我喜欢编程,但并不打算上大学后去学它。上大学我打算学哲学,听上去强大得多。在我那个天真的高中生头脑里,哲学似乎研究的是终极真理,相比之下其他领域研究的不过是些领域知识。等我真的进了大学才发现,其他领域已经把思想空间占得满满的,留给所谓终极真理的并不多。剩下来给哲学的,看起来都是一些其他领域的人觉得可以放心忽略的边角情形。

十八岁的我说不清这一点。我当时只知道自己一直在选哲学课,而这些课一直让我觉得无聊。于是我决定转向 AI。

1980 年代中期,AI 正是空气里的话题,但有两样东西特别让我想去研究它:一本是海因莱因的小说《The Moon is a Harsh Mistress》(《月亮是个严厉的女主人》),里面有一台名叫 Mike 的智能计算机;另一样是一部 PBS 纪录片,里面 Terry Winograd 在演示 SHRDLU。我没尝试重读《The Moon is a Harsh Mistress》,所以不知道它今天读起来如何,但当年我读它时整个人被它的世界拉了进去。我觉得拥有一台 Mike 那样的机器只是时间问题;看到 Winograd 操作 SHRDLU,我又觉得这个时间至多只有几年。你只需要再教 SHRDLU 几个新词就行了。

那时康奈尔大学没有任何 AI 课程,连研究生课程都没有,于是我开始尝试自学。这意味着要学 Lisp,因为在那个年代,Lisp 被视为 AI 的语言。当时常用的编程语言相当原始,程序员的想法也相应地原始。康奈尔的默认语言是一种叫 PL/I 的、类似 Pascal 的语言,别处的情况也差不多。学 Lisp 让我对“程序“这个概念的认知一下子被撑开了——撑得太开,以至于过了好几年我才开始隐约感觉到新的边界在哪里。这才像样;这才是我期望大学应该带给我的。它没有发生在某门课上——按理说应该如此——但没关系。接下来的两年我一路顺风顺水。我清楚自己要做什么。

本科毕业论文,我做的是反向工程 SHRDLU。天哪我太喜欢做那个程序了。那是一段令人愉悦的代码,但更让我兴奋的,是我相信它——今天看来这种想法已经难以想象,但在 1985 年并不少见——已经爬到了智能这座山低坡的某个位置。

我进的是康奈尔的一个项目,不要求选定专业。你可以选自己喜欢的任何课,毕业证上也可以填自己想填的内容。我当然填了 “Artificial Intelligence”。等拿到那张实物文凭时,我沮丧地发现引号也被一并印了上去,看起来像是带讽刺意味的引号。当时这事让我很不爽,但今天回头看反而觉得有意思——它恰好是准确的,原因我马上就要发现。

我申请了三所研究生院:当时以 AI 闻名的麻省理工和耶鲁,以及哈佛大学——我去过那里,因为 Rich Draves 在那儿读书,那里也是 Bill Woods 任教的地方,他发明了我在 SHRDLU 仿写中用到的那种语法分析器类型。最后只有哈佛大学录取了我,于是我就去了那里。

我不记得是哪一刻发生的,也许根本没有那样一个具体的瞬间,但读研第一年里,我意识到当时人们做的那种 AI 是一场骗局。我说的是那种 AI——一个程序被告知“狗坐在椅子上“,它把这句话翻译成某种形式化表示,加进它“知道“的事情清单里。

这些程序真正展示出来的,是自然语言中存在一个子集是形式语言。但这是一个真子集,而且小得很。很显然,它们能做到的事情和真正理解自然语言之间存在一道无法跨越的鸿沟。事情其实并不只是再教 SHRDLU 几个词那么简单。那种用显式数据结构来表示概念的整个 AI 路子是行不通的。当然,它的破败——和很多事情一样——倒是为发表各种“补丁“式的论文制造了大量机会,但这条路永远不会让我们造出 Mike。

于是我环顾四周,看看还能从自己被打碎的计划残骸里抢救出什么——结果发现还有 Lisp。我从经验里就知道 Lisp 本身就有意思,并不只是因为它和 AI 的关联——尽管在当时人们关心它主要正是因为这种关联。于是我决定专注于 Lisp。事实上,我决定写一本关于 Lisp 黑客技艺的书。回头想想,开始写那本书的时候我对 Lisp 黑客技艺懂得多么少,简直让人后怕。但要学一样东西,再没有什么比写一本相关的书更管用了。这本书《On Lisp》(PG 1993 年关于 Lisp 编程的书)一直到 1993 年才出版,但大部分内容是我读研时写的。

计算机科学是两半之间一种不甚自在的联盟:一半是理论,一半是系统。理论的人证明定理,系统的人造东西。我想造东西。我对理论也很尊敬——其实暗暗觉得它是两半中更值得敬重的那一半——但造东西显得激动人心得多。

不过,搞系统的麻烦是它的成果不持久。无论你今天写出来多好的程序,最多过几十年也就过时了。人们或许会在脚注里提到你的软件,但不会真的有人在用。事实上,这些工作看起来都会显得软弱无力。只有那些了解领域历史的人才会意识到,它在自己那个年代里是好东西。

有一阵,计算机房里漂着几台多余的 Xerox Dandelion。谁想要一台拿去玩都行。我有过一瞬间的心动,但按当时的标准它们已经太慢了;图什么呢?别人也都不要,结果它们就这么被处理掉了。这就是搞系统的下场。

我想要的不只是造东西,而是造能流传下来的东西。

带着这种不满足的状态,1988 年我去 CMU(卡内基梅隆大学)看望 Rich Draves,他在那里读研。有一天我去看了卡内基学院(匹兹堡的艺术博物馆),小时候我在那里待过很多时间。在那里看一幅画时,我意识到了一件似乎显而易见、但对我来说却意外的事。眼前这堵墙上挂着的,正是一种你能造出来、又能流传下来的东西。画作不会过时。其中最好的一些已经几百年了。

而且这件事还能拿来谋生。当然不像写软件那样容易,但我想,只要你真的勤奋、生活又过得很省,挣到糊口应该是可以的。而作为一个艺术家,你可以是真正独立的。你不会有老板,甚至连去申请研究经费都不必。

我一直喜欢看画。我自己能画吗?我完全没概念。我从未想过这是有可能的事。我在理智上知道有些人会创作艺术——艺术不是凭空冒出来的——但那些创作艺术的人在我看来仿佛是另一种生物。他们要么活在很久以前,要么是登在《Life》杂志人物特写里、做着奇怪事情的神秘天才。“自己也能创作艺术”——把这个动词放在那个名词前面——这件事在我看来近乎奇迹。

那年秋天我开始在哈佛大学选艺术课。研究生可以在任何系里选课,我的导师 Tom Cheatham 又非常宽松。即使他知道我在选这些奇怪的课,他也从没说什么。

于是当时的我:一边在读计算机科学博士,一边盘算着要去当艺术家,一边还真心地痴迷于 Lisp 黑客活儿、埋头写《On Lisp》。换句话说,和很多研究生一样,我在好几个不属于自己论文方向的项目上干劲十足。

我看不出怎么从这种局面里脱身。我不想退学,但除此之外我还能怎么走?我记得我朋友 Robert Morris(早期互联网蠕虫作者,PG 创业合伙人)因为写出了 1988 年那只互联网蠕虫而被康奈尔大学开除时,我还羡慕他用如此惊艳的方式逃出了研究生院。

然后在 1990 年 4 月的一天,墙上裂开了一道缝。我在路上碰到 Cheatham 教授,他问我是否准备得差不多、能在那年六月毕业。我的论文一个字都还没写出来,但这大概是我这辈子最快的一次思考——我决定在距离截止日期还剩大约五周的时间里赌一把,把《On Lisp》中能用的部分尽量复用过来;于是我毫无延迟地回答:“是的,我想可以。过几天就给你点东西看。”

我选了“continuation 的应用“作为题目。事后看,我应该写宏和嵌入式语言。那里有一整片几乎还没人探索的天地。但我那时只想从研究生院脱身,而我那篇匆忙写就的论文勉强够用。

与此同时我在申请艺术学院。我申了两所:美国的 RISD(罗德岛设计学院),以及佛罗伦萨的佛罗伦萨美术学院(Accademia di Belle Arti)——既然这是最古老的艺术学院,我以为它一定不错。RISD 录取了我,佛罗伦萨美术学院一直没回复我,于是我去了普罗维登斯。

我申请的是 RISD 的 BFA(艺术学士)项目,这意味着我实际上要再上一次大学。这没听上去那么奇怪,因为我才 25 岁,而艺术学校里本来就什么年纪的人都有。RISD 把我算作转学的二年级生,并要求我那个夏天去上“基础课“。所谓基础课,就是每个人都必须上的、关于素描、色彩、设计这类基本科目的课。

那个夏天接近尾声时,我收到一个意外的大惊喜:佛罗伦萨美术学院寄来一封信,因为他们寄到的是英国剑桥而不是马萨诸塞州的剑桥,所以晚到了。信里邀请我那年秋天去佛罗伦萨参加入学考试。这时距离考试只剩几个星期了。我那位好心的房东太太让我把东西先存到她家阁楼。我手里有一些读研时做咨询挣下的钱,省点花的话大概够撑一年。现在我要做的,就是赶紧学意大利语。

只有 stranieri(外国人)需要参加这场入学考试。事后想想,这十有八九就是用来把外国人挡在外面的一种方式——因为被“在佛罗伦萨学画“这个念头吸引来的外国人太多了,否则意大利学生就会被反客为主。那个夏天在 RISD 上完基础课之后,我的素描和绘画水平还过得去,但我至今不知道自己怎么通过那场笔试的。我记得我用一篇关于塞尚的文章回答了作文题,并把智识级别尽量往高里堆,好让我那点有限的词汇用出最大效果。

我才讲到 25 岁,已经看出这么明显的规律了。又一次,我满心期待地走进某所有名望的机构、要去学某门光鲜的科目;又一次,我即将失望。佛罗伦萨美术学院绘画系的老师和学生都是你能想象到的最和气的人,但他们早已达成了一种安排:学生不要求老师真的教什么,作为交换,老师也不要求学生真的学什么。同时,所有人对外都恪守 19 世纪画室的种种惯例。我们的画室里真有一种 19 世纪画室画里常见的小炉子,靠木柴烧着,还有一位裸体模特尽量靠近它坐着,又不至于被烫伤。只不过——除我之外几乎没人在画她。其他学生大半时间在闲聊,偶尔尝试模仿他们在美国艺术杂志上看到的东西。

我们的模特恰好就住在我家这条街上。她靠当模特和给当地一个古董商做赝品维持生计。她会从书里把某幅冷僻的旧画临摹下来,然后古董商再把这张临摹本“作旧“,弄得看起来像一幅古画。

在佛罗伦萨美术学院学画期间,我开始在自己卧室里、晚上画静物。那些画都很小,因为屋子小,也因为我画在剩下的零碎画布上——那时我只买得起这些。画静物和画人不一样,因为对象(顾名思义)不会动。人最多坐 15 分钟左右就坚持不住,而且坐着的时候也并不真的一动不动。所以画人传统的做法,是先掌握怎么画一个“通用的人“,然后再加以修改去匹配你眼前这个具体的人。而画静物的话,如果你愿意,可以把眼前所见一像素一像素地描下来。当然,你不会就停在那里——否则你只得到一张照相级的精确,而真正让一幅静物有意思的,是它穿过了一个脑子。你想强调那些视觉线索,比如说告诉你“颜色在某一点突然变化是因为这是物体的边缘“。通过细微地强化这些东西,你画出的画可以比照片更逼真——不只是某种比喻意义上的“更逼真“,而是严格信息论意义上的更逼真。

我喜欢画静物,是因为我对自己看到的东西感到好奇。在日常生活里,我们其实并没有意识到自己看见了多少东西。大多数视觉感知是低层流程处理的,它们只告诉大脑“那是一颗水珠“,而不告诉你最亮和最暗的点在哪里;告诉你“那是一丛灌木“,而不告诉你每片叶子的形状和位置。这是大脑的特性,不是 bug。在日常生活中,注意每一丛灌木上的每一片叶子会让人分心。可是当你必须把它画下来时,你就得看得更仔细——一旦看得仔细,要看的东西就太多了。哪怕你已经画了好多天,画的还是别人通常视而不见的东西,你仍可能不断发现新的细节——就像你为某个别人通常视而不见的话题写一篇文章,写了好多天还在不断发现新东西一样。

这并不是画画的唯一方式。我甚至不能 100% 确定它是不是一种好方式。但它看起来是一个值得一试的赌注。

我们的老师 Ulivi 教授是个好人。他看得出我用功,给了我不错的成绩,写在每个学生都有的一种小本子上。但佛罗伦萨美术学院除了让我学了点意大利语以外什么也没教给我,而我的钱也快花光了,于是第一年结束时我就回了美国。

我想回 RISD,但我现在没钱了,而 RISD 学费很贵,于是我决定先工作一年,第二年秋天再回 RISD。我在一家叫 Interleaf(1980 年代文档处理软件公司)的公司找到了工作,他们做的是文档制作软件。你是说像 Microsoft Word 那样?正是。我就是这样学到的:低端软件往往会蚕食高端软件。不过当时 Interleaf 还能再活几年。

Interleaf 做了一件相当大胆的事。受 Emacs 启发,他们加了一种脚本语言,而且把这种脚本语言做成了 Lisp 的一种方言。现在他们想找个 Lisp 黑客来用它写东西。这是我做过的最接近“普通工作“的一份工作,我在此向我的老板和同事们道歉,因为我是个糟糕的员工。他们的 Lisp 不过是一块巨大的 C 蛋糕上薄薄的一层糖霜,而我既不懂 C,也不想学,所以那套软件的大部分我从未真正理解。再加上我极不负责任。那时一份编程工作意味着每天都要在固定的工作时间出现在公司。这件事我觉得很违背自然,关于这一点全世界后来都在朝我的想法靠拢,但当时它造成了不少摩擦。那一年快结束时,我大半时间都在偷偷写《On Lisp》——这时我已经签了出版合同。

好的一面是我挣到了一大笔钱,特别是按艺术学生的标准来看。在佛罗伦萨,付完我那份房租后,我每天的全部预算是 7 美元。如今我每小时挣到的钱,是当时一天预算的 4 倍多,哪怕我只是坐在会议里也一样。靠着省吃俭用,我不仅攒够了回 RISD 的钱,还把大学贷款还清了。

我在 Interleaf 学到了一些有用的东西,虽然多半是关于“不该怎么做“。我学到:技术公司由产品出身的人来经营,比销售出身的人来经营更好(话虽如此,销售也是真本事,做得好的人是真的厉害);代码被太多人改会出 bug;办公室便宜不一定划算,如果它让人压抑的话;事先安排的会议比不上走廊上的随口交谈;又大又官僚的客户是一种危险的钱来源;常规的办公时间和最适合 hack 的时间之间并没有多少重合,常规的办公室和最适合 hack 的地方之间也没有多少重合。

但我学到的最重要的一件事——后来我在 Viaweb 和 Y Combinator 都用上了——是低端蚕食高端:做“入门级“的那个选项是好事,哪怕它会显得没那么光鲜,因为如果不是你做,就会有别人做,而那个人会从下面顶上来、把你压在天花板上。这反过来意味着:光鲜本身是一个危险信号。

第二年秋天我回 RISD 的时候,安排好继续给那个为客户做项目的小组做自由职业,靠这个我撑过了接下来的好几年。后来我有一次回去做项目时,有人跟我提起一个新东西,叫 HTML,按他的描述是 SGML 的一种衍生物。在 Interleaf,这种“标记语言爱好者“是一种职业病,我没把他的话当回事——但这个 HTML 后来在我的人生里占了很大一块。

1992 年秋天,我搬回普罗维登斯,继续在 RISD(罗德岛设计学院)念书。之前的预科只是入门,佛罗伦萨美术学院(Accademia di Belle Arti)则是个(非常斯文的)笑话。现在我要看看真正的艺术学院是什么样子。然而它和佛罗伦萨美术学院其实差不太多。组织上确实更像样,学费也贵得多,但事情慢慢变得明朗:艺术学院之于艺术,并不像医学院之于医学。至少绘画系不是。我隔壁邻居就读的纺织系似乎相当严谨。插图系和建筑系想必也是。但绘画系是“后严谨“的。绘画系的学生应该“表达自我“,而那些更世故的学生把这个理解成:想办法捣鼓出某种独特的标志性风格(艺术家用以让作品被一眼认出的独特风格)。

标志性风格在视觉艺术里相当于演艺圈所谓的“schtick“(招牌套路):能让作品一眼被认出是你而不是别人的东西。比如,当你看到一幅画长得像某种特定卡通,就知道是罗伊·利希滕斯坦(美国波普艺术家)的。所以如果你看到这种风格的大幅画作挂在某个对冲基金经理的公寓里,就知道他为它花了几百万美金。艺术家拥有标志性风格不一定都是为了这个,但买家为这种作品付高价通常就是为了这个。

学校里也有不少认真的学生:那些高中里“会画画“的孩子,如今来到这所号称全美最好的艺术学院,想画得更好。他们多半被 RISD 里的所见所闻搞得既困惑又泄气,但还是坚持下去,因为画画是他们安身立命的事。我并不是高中时就会画画的那种孩子,但在 RISD,我显然更接近他们这一拨人,而不是那群追逐标志性风格的人。

我在 RISD 上的色彩课收获很大,但除此之外基本就是自学画画,而这件事我自己做完全不花钱。所以 1993 年我退学了。我在普罗维登斯逗留了一阵,然后我大学时的朋友 Nancy Parmet 帮了我一个大忙。她母亲在纽约有一栋楼,里面一套受租金管制的公寓正好要空出来。我要不要?租金没比我现在的住处贵多少,而纽约据说才是艺术家该待的地方。所以——要,当然要!

《高卢英雄》系列漫画一开篇总会聚焦到罗马高卢的某个小角落,结果发现那里并不在罗马人的掌控之下。在纽约市的地图上,你可以做类似的事:把镜头推近上东区(纽约富人区),会发现一个小角落并不富裕,至少在 1993 年还不是。它叫约克维尔(Yorkville),那就是我的新家。现在我是个纽约艺术家了——严格按字面意义,画画并住在纽约。

我手头紧,因为我能感觉到 Interleaf(1980 年代文档处理软件公司)正走下坡路。自由职业的 Lisp 黑客活儿非常稀少,而我也不想用别的语言编程,那年头如果走运的话意味着写 C++。所以凭着我对财务机会从不出错的嗅觉,我决定再写一本关于 Lisp 的书。这次要写一本流行的、能当教材用的书。我想象自己靠版税清贫度日,把所有时间都拿去画画。(这本书《ANSI Common Lisp》(PG 1995 年的 Lisp 教材)封面上的那幅画,就是我那段时间画的。)

对我来说,纽约最棒的地方是 Idelle 和 Julian Weber 在那里。Idelle Weber(美国画家)是早期照相写实主义画家之一,我在哈佛大学上过她的绘画课。我从未见过哪个老师像她这样被学生爱戴。许许多多以前的学生一直跟她保持联系,包括我。搬到纽约之后,我成了她事实上的画室助手。

她喜欢在大块的方形画布上作画,每边四到五英尺。1994 年末的某一天,我正帮她绷一块这样的“庞然大物“,收音机里在讲一位著名的基金经理。他比我大不了多少,却富得流油。一个念头突然冒出来:我为什么不也变富呢?这样我就可以做任何想做的事了。

与此同时,我开始越来越多地听到一种叫“万维网“的新东西。Robert Morris(早期互联网蠕虫作者,PG 创业合伙人)给我演示了它——当时我去剑桥(马萨诸塞州,哈佛/MIT 所在地)看他,他正在哈佛念研究生。我觉得网会是个大事。我见过图形用户界面如何让微型计算机普及开来。在我看来,网会对互联网做同样的事。

如果我想发财,下一班车就停在站台上。这部分我看对了,看错的是具体那个想法。我决定开一家公司,把艺术画廊搬到网上去。看过那么多 Y Combinator(YC)的申请之后,我不能昧着良心说这是史上最差的创业点子,但也算名列前茅了。艺术画廊不想上网,至今也不想,至少高端那些不想。这不是他们卖画的方式。我写了一些软件,用来给画廊生成网站,Robert 写了一些代码用来调整图片大小,并搭了一台 http 服务器来提供这些页面。然后我们试着去签画廊。把这叫做“难卖“都太轻描淡写了。免费送都送不出去。有几家画廊允许我们免费给他们做网站,但没人付钱。

后来网上开始出现一些在线商店,我意识到——除了那些“下单“按钮——它们和我们一直在给画廊做的网站基本一模一样。这个听起来唬人的所谓“互联网店面“,正是我们已经会做的东西。

于是 1995 年夏天,在我把《ANSI Common Lisp》的付印稿交给出版社之后,我们开始尝试写一套软件来搭建在线商店。一开始打算做成普通的桌面软件,那年头就是 Windows 软件。这前景挺吓人,因为我们俩都不会写 Windows 软件,也不想学。我们生活在 Unix 的世界。但我们决定至少在 Unix 上试着写一个店铺生成器的原型。Robert 写了一个购物车,我写了一个新的网站生成器——当然,是用 Lisp 写的。

我们在 Robert 位于剑桥的公寓里干活。他室友常常一连好几段时间不在,那期间我可以睡他的房间。不知为什么屋里没有床架也没有床单,只有一张直接放在地板上的床垫。一天早上我躺在这张床垫上,脑子里冒出一个想法,让我“啪“地坐起来,挺得像个大写字母 L。如果我们让软件跑在服务器上,让用户通过点击链接来控制它呢?那我们就根本不需要写任何要在用户电脑上运行的东西了。我们可以在用来托管站点的同一台服务器上生成这些站点。用户除了一个浏览器之外什么都不需要。

这种现在叫做“网页应用“(web app)的软件如今很普通,但当时连它能不能做出来都不清楚。为了搞清楚,我们决定试着做一个能通过浏览器控制的店铺生成器版本。几天之后,8 月 12 日,我们做出了一个能用的。界面糟得不行,但它证明了一件事:你可以完全通过浏览器搭建一整家店,不需要任何客户端软件,也不需要在服务器命令行里输任何东西。

这下我们觉得自己真的撞上点东西了。我设想出整整一代新的软件都按这种方式工作。你不再需要版本号,不再需要移植,那一堆破事都没了。Interleaf 当年有一整个部门叫“发布工程“(Release Engineering),看起来至少和真正写软件的那帮人一样多。而现在,你直接在服务器上更新软件就行了。

我们成立了一家新公司,取名 Viaweb(PG 1995 创立的电商建站公司),因为我们的软件是“通过网“工作的(via the web);我们从 Idelle 的丈夫 Julian 那里拿到了 1 万美元的种子投资。作为回报——这笔投资、最初的法律工作、以及他给我们的商业建议——我们给了他公司 10% 的股份。十年后,这笔交易成了 Y Combinator 模式的雏形。我们知道创始人需要类似这样的东西,因为我们自己也曾需要。

那时我的净资产是负的,因为我银行里那一千美元上下的存款,被欠政府的税款一抵就抵没了。(我当年给 Interleaf 做咨询挣的那笔钱,是不是按比例认认真真把税预留出来了?没有,我没留。)所以,虽然 Robert 还有研究生津贴,我得靠那笔种子投资过活。

我们原本希望 9 月份就能上线,但写着写着对软件的野心越来越大。最后我们做出了一个所见即所得(WYSIWYG)的网站搭建器——意思是当你正在创建页面时,它们看起来就和之后将要生成的静态页面一模一样,只不过当时这些链接指向的不是静态页面,而是一些存在服务器端哈希表里的闭包。

学过艺术对这件事帮了大忙,因为在线商店搭建器的核心目标是让用户看起来“靠谱“,而看起来靠谱的关键是高质量的视觉呈现。如果你把页面布局、字体和颜色调对,可以让一个在自家卧室里开店的人看起来比一家大公司还像样。

(如果你好奇为什么我的网站看上去这么老派,那是因为它至今仍然用这套软件生成。它今天看起来或许有点笨重,但在 1996 年,这是最时髦的样子。)

到了 9 月,Robert 不干了。他说:“我们已经做了一个月了,还是没做完。“事后回想挺好笑,因为他后来又做了将近三年。但我决定多招几个程序员可能比较稳妥,于是我问 Robert 他研究生院里还有谁特别牛。他推荐了 Trevor Blackwell(PG 朋友,自制 Segway),起初我有些意外,因为那时我对 Trevor 的了解主要是他打算把生活里所有事都简化成一摞他随身带着的索引卡。但 Rtm 一如既往地说对了。Trevor 后来证明是个让人后怕的高效黑客。

跟 Robert 和 Trevor 一起干活非常好玩。他们俩是我认识的最有独立思想的两个人,而且方式截然不同。如果能看进 Rtm 的脑子,那里面会像一座新英格兰殖民时期的教堂;如果能看进 Trevor 的脑子,那里面会像奥地利洛可可艺术里最铺张的那一类。

我们于 1996 年 1 月开张营业,开张时有 6 家店。我们多等了几个月反倒是好事,因为虽然当时我们担心自己晚了,其实差点早得致命。那阵子媒体上谈电子商务谈得很热闹,但真正想要在线商店的人并不多。

软件主要由三部分组成:编辑器,是用户用来搭网站的,由我写;购物车,由 Robert 写;管理器,用来追踪订单和统计数据,由 Trevor 写。在它存在的那个时代,这个编辑器是最好的通用网站搭建器之一。我把代码维持得很紧凑,除了和 Robert、Trevor 各自的部分对接之外不必跟任何其他软件集成,所以做起来挺有意思。如果我那三年只需要做这件事,它本会是我一生中最轻松的三年。可惜我还得做好多别的事,全都是我比编程做得更糟的事,所以那三年反而成了我压力最大的三年。

90 年代后半叶有很多创业公司在做电子商务软件。我们决心要做 Microsoft Word 那一路,而不是 Interleaf。这意味着要好用,要便宜。我们当时穷反倒是件好事,因为这逼得我们把 Viaweb 做得比我们自己意识到的还要便宜。我们对小店收每月 100 美元,对大店收每月 300 美元。这个低价对客户极有吸引力,对竞争对手是常驻心头的一根刺,但我们把价格定低并不是因为有什么聪明的洞察。我们根本不知道企业为各种东西付多少钱。每月 300 美元,在我们看来已经是一大笔钱了。

我们靠瞎打误撞做对了不少这样的事。比如,我们做了如今所谓“做不可规模化的事“,虽然当时我们会描述成“我们逊到不得不用最绝望的办法去拉用户“。其中最常见的一招就是替他们搭店。这件事让人觉得格外丢脸,因为我们整套软件的存在意义本来就是让人能自己搭店。但只要能拉到用户,怎样都行。

我们对零售业的了解远远超出了我们想要了解的程度。比如:当一个男士衬衫的图片只能放得很小(按今天的标准当时所有图片都很小),用一个领口的特写比用整件衬衫的全景效果更好。我之所以记得学到这件事,是因为这意味着我得把大约三十张男士衬衫的图重新扫一遍。我第一批扫的还那么漂亮呢。

虽然这感觉不太对,但其实正是该做的事。替用户搭店让我们了解了零售业,也了解了用我们自己的软件是什么感觉。一开始我对“做生意“这件事既迷惑又抵触,觉得我们需要一个“懂生意的人“来负责,但一旦开始有用户,我就被改变了,过程跟我有了孩子之后被父亲这件事改变差不多。用户想要什么,我都全身心奉陪。也许有一天我们会有多到我没法亲手帮他们扫图的用户,但在那之前,没什么比这更重要的事了。

另一件我当时没想明白的事是:增长率才是创业公司的终极考验。我们的增长率挺好。1996 年底我们有大约 70 家店,1997 年底大约 500 家。我错以为重要的是用户的绝对数量。从某种意义上说它确实重要,因为这就是你赚的钱,不够多公司就可能倒掉。但长期来看,增长率会处理好绝对数量这件事。如果他们是一家在 Y Combinator 我辅导的创业公司,我会跟他们说:别再这么紧张了,你们做得挺好。你们一年增长 7 倍。只要别再多招太多人,很快就能盈利,然后就能掌握自己的命运了。

可惜我招了不少人,一方面是我们的投资人想让我招,另一方面也是因为那是互联网泡沫期间创业公司都在做的事。一家只有屈指可数几个员工的公司在那时显得不专业。所以直到 1998 年夏天雅虎收购我们前后,我们才差不多打平。这反过来意味着我们公司的整个生命周期都受制于投资人。又因为我们和我们的投资人都是创业新手,结果哪怕按创业公司的标准衡量也是一团糟。

雅虎把我们买下来时,我大大松了一口气。原则上我手里的 Viaweb 股票是有价值的,它代表了一家盈利且高速增长的企业的一部分股权。但在我感觉里它并不那么值钱;我根本不知道该怎么给一家企业估值,但我对我们似乎每隔几个月就来一次的“濒死体验“感受太敏锐了。我自己的生活方式跟创业之初比也几乎没怎么变过——还是研究生那一套。所以雅虎收购我们时,感觉像是从赤贫一夜变成了富翁。既然要去加州,我买了一辆车,一辆 1998 年的黄色 VW GTI。我记得我当时心想:单是这副真皮座椅,就已经是我拥有过的最奢侈的东西了。

接下来的一年,从 1998 年夏天到 1999 年夏天,大概是我一生中最没产出的一年。我当时没意识到,但我已经被运营 Viaweb 的劳累和压力榨干了。刚到加州那阵子我还想继续我惯常的作息——编程编到凌晨三点——但疲惫加上雅虎那种早衰的公司文化、加上圣克拉拉那一片阴沉的格子间办公区,渐渐把我拖了下去。几个月之后,那感觉怪异地像在 Interleaf 上班。

雅虎收购时给了我们很多期权。当时我觉得雅虎的估值高得离谱,那些期权早晚一文不值;但让我大跌眼镜的是,接下来的一年里这只股票涨了五倍。我撑到第一批期权解禁,然后在 1999 年夏天离开了。我已经太久没画过任何东西,几乎忘了我当初是为了什么干这一切。整整四年,我的脑子里塞满了软件和男士衬衫。但我提醒自己:我做这一切是为了挣到钱去画画,现在我有钱了,那就该去画画了。

我说我要走的时候,我在雅虎的老板和我谈了很久我之后的打算。我跟他说了我想画的那些画。当时我很感动,他对我居然这么上心。如今我才想明白,那是因为他觉得我在撒谎。我那时候手里的期权大约价值每月 200 万美元。我要把这种钱留在桌上不要,那只可能是为了去开新的创业公司,而如果我真去了,可能会带走一些人。那是互联网泡沫的最高峰,雅虎正是这个泡沫的爆心。我老板那一刻是个亿万富翁。在他看来,我此刻离开去开一家新创业公司,必定是个疯狂——但同时也合情合理——的勃勃野心。

但我真是为了画画才走的,而且立刻就开始了。没时间可以浪费。我已经为了挣钱烧掉了四年。如今每当有创始人卖掉公司之后离开,来找我聊接下来怎么办,我的建议永远是同一个:去度个假。这就是我当年应该做的事——找个地方什么都不做地待上一两个月,但当时这个念头从未出现在我脑子里。

于是我试着画画,但好像就是没什么精力,也没什么野心。问题之一是我在加州不认识多少人。我又给自己加了一道难——我在圣克鲁斯山里买了栋房子,景色很美,但离任何地方都有好几英里。我又咬牙撑了几个月,最后实在没辙,回到了纽约——除非你了解租金管制是怎么回事,否则你听到这一句一定会吃惊:我那套公寓还在那儿,原封不动地封存着,像一座我旧生活的坟墓。Idelle 至少还在纽约,那里还有些其他想画画的人,尽管我一个都不认识。

回到纽约之后,我又过起了原来的生活,只不过现在富了。那感觉就像听上去那么诡异。我恢复了所有从前的习惯,只不过现在以前没有的门都开着了。现在累得不想再走路时,我只要抬手——除非下雨——就会有出租车停下来载我。现在路过那些迷人的小餐馆时,我可以走进去点一份午餐。这有一阵子挺让人兴奋。画画也开始变得顺利起来。我尝试一种新的静物画法:先按老办法画一幅,然后把它拍下来、放大、印在画布上,再把这幅印出来的画当作底稿,对着同一组实物(但愿到那时它们还没烂)画第二幅静物。

与此同时我在找公寓买。这次我真的可以挑想住的街区了。“纽约的剑桥在哪儿?“我问自己,也问各路房产中介。在偶尔回真正的剑桥逛逛的过程中,我逐渐意识到——根本没有这样一个地方。哦。

差不多就在这时候,2000 年春天,我有了一个想法。从 Viaweb 的经历可以很清楚看出,网页应用就是未来。那为什么不做一个“用来做网页应用的网页应用“?为什么不让人们通过浏览器直接在我们服务器上编辑代码,然后由我们替他们托管做出来的应用?你可以在服务器上跑各种各样的服务,这些应用只要发起一次 API 调用就能用上:拨打和接听电话、处理图片、收信用卡付款,等等。

我对这个想法激动到根本想不了别的。在我看来这显然就是未来。我并不特别想再开一家公司,但很明显这个想法必须以一家公司的形式存在,于是我决定搬去剑桥,把它做出来。我希望能把 Robert 拉进来一起干,但在这里碰了个钉子。Robert 那时已经是 MIT(麻省理工)的博士后,虽然上次我把他拉进我的“宏图“时他确实赚了不少钱,但那也是个巨大的时间黑洞。所以他虽然同意这听起来是个靠谱的想法,但坚决不肯参与。

哼。好吧,那我就自己干。我招进了 Dan Giffin——他在 Viaweb 干过——以及两个想找暑期工作的本科生,我们就开始动手做现在看来够好几家公司加几个开源项目分量的软件。定义应用的语言当然得是 Lisp 的某个方言。但我也没天真到以为自己可以直接把一种露骨的 Lisp 摆到普通受众面前;我们打算把括号藏起来,就像 Dylan 当年那样。

那时候,Viaweb 这一类公司已经有了一个名字——“应用服务提供商”,简称 ASP(应用服务提供商,“软件即服务“的早期叫法)。这个叫法没流行多久就被“软件即服务“取代了,但当时还算通用,所以我就用它给这家新公司命了名:它将被叫做 Aspra(PG 短暂创立的公司,后未上线)。

我开始动手做应用构建器,Dan 负责网络基础设施,那两个本科生则在做最早的两项服务(图片和电话)。可大约到了那个夏天的中段,我意识到自己其实并不想经营一家公司——尤其是一家大公司,而这件事看上去注定要做大。我当初创办 Viaweb 完全是因为缺钱。如今我已经不缺钱了,那我图什么呢?如果这个愿景非得做成一家公司不可,那就让愿景见鬼去吧。我打算只做其中的一个子集,把它当成一个开源项目去搞。

让我意外的是,那段时间花的功夫并没有白费。我们后来创办 Y Combinator 之后,我经常碰到一些创业公司在做这套新架构里的某个部分,那时我才发现,事先花那么多时间琢磨它、甚至动手写过一部分,竟然非常派得上用场。

那个准备拿来做开源项目的子集,就是这门新的 Lisp——这次我连那些括号都不用再藏起来了。许多 Lisp 黑客都梦想自己造一门新的 Lisp,部分是因为这门语言的一个显著特征就是有方言,部分我觉得是因为,我们心里都有一个“理想形态“的 Lisp,现存的所有方言都达不到。我自己当然也是这样。所以那年夏末,Dan 和我转头开始做这门新的 Lisp 方言,我把它叫作 Arc(PG 2008 年发布的 Lisp 方言),地点是我在剑桥买下的一栋房子里。

第二年春天,闪电劈下。我受邀在一场 Lisp 大会上做演讲,于是我讲了讲我们当年怎么在 Viaweb 里用 Lisp 的。讲完之后,我把这次演讲的 postscript 文件挂到了 paulgraham.com 上——这个域名是我多年前用 Viaweb 注册的,但一直没派上用场。一天之内,它就拿到了 30,000 次页面访问。这到底是怎么回事?看一下来源链接,原来是有人把它发到了 Slashdot 上。

哇,我心想,原来真的有读者。如果我写点什么、扔到网上,谁都能看到。这话现在听起来像废话,但当时是很令人意外的。在印刷时代,通往读者的渠道极其狭窄,由一群叫“编辑“的凶猛怪兽把守。任何东西想找到读者,唯一的办法就是把它出成一本书,或者发在报纸或杂志上。如今,谁都可以发任何东西。

原则上这从 1993 年起就已经成立了,但当时还没几个人意识到。那段日子里,我大半时间都在亲手参与搭建网络的基础设施,同时又是个写作者,结果整整花了我 8 年才意识到这一点。即便意识到了,我又花了好几年才想明白它的含义。它意味着一整代全新的散文将会出现。

在印刷时代,散文的发表渠道窄得几乎可以忽略。除了少数被官方钦定、出席纽约高级派对的思想家之外,唯一被允许发表散文的人,就是写自己专业领域的专家。无数本该被写出来的散文从未被写出,因为根本没有发表的途径。如今它们可以被写出来了,而我打算就去写。

我做过好几样不同的事,但如果非要说在哪一刻我才算想清楚自己该做什么,那就是我开始把散文发到网上的那个时刻。从那一刻起,我就知道,无论我还做什么别的事情,我也总是会写散文。

我心里清楚,网上的散文起初会是个边缘媒介。从社会观感上看,它更像是 GeoCities 个人页面上一群疯子贴的咆哮文,而不是**《纽约客》**上那种举止得体、排版精美的文章。但到那时候我已经懂得够多,能把这件事看作鼓舞,而非泄气。

我这辈子注意到的最显眼的一种规律就是:至少对我而言,去做那些当下并不光鲜的事,效果出奇地好。静物画一直都是绘画里最不入流的形式。Viaweb 和 Y Combinator 在我们刚开始做的时候,看起来都很挫。直到今天,陌生人问我在写什么,我说在写一篇要发到自己网站上的文章时,他们仍然两眼发直。哪怕是 Lisp,虽然在智识上算得上有点“高雅“——大致就像拉丁语那种“高雅“——它给人的“潮“感同样寥寥。

倒不是说不光鲜的工作本身就值得做。但是当你发现自己被某种工作吸引,而它眼下并不光鲜,这同时意味着两件事:那里头确实有真东西可挖,而你做这件事的动机也是对的。不纯粹的动机对一个有抱负的人来说是巨大的危险。如果有什么东西会把你引入歧途,那一定是想给别人留下深刻印象的欲望。所以,做不光鲜的事虽然不能保证你走对了路,至少能保证你没走在最常见的那条错路上。

接下来几年里,我写了大量关于各种话题的散文。O’Reilly 把其中一部分汇集成书出版,书名取自其中一篇散文,叫作《黑客与画家》。我同时还做过垃圾邮件过滤器,也画了几幅画。我每周四都给一群朋友做晚饭,那段日子让我学会了怎么给一大帮人做饭。我还在剑桥又买下了一栋楼——一座以前的糖果厂(据说后来还当过色情片摄影棚),用来当办公室。

2003 年 10 月的一个晚上,我家里办了一场大型派对。那是我朋友 Maria Daniels 出的好主意,她也是周四晚饭会的常客。三家主人各自把自己的朋友请到同一场派对来。这样对每位客人来说,三分之二的其他客人都是他不认识、但很可能会喜欢的人。其中一位客人,正是我不认识、但事后证明会非常喜欢的人——一位叫 Jessica Livingston(PG 妻子,YC 联合创始人)的女士。几天后我就约她出去了。

Jessica 当时在波士顿一家投资银行负责市场营销。这家银行自以为很懂创业公司,但接下来的一年里,她陆续接触我那些创业圈的朋友,惊讶地发现现实和银行所以为的完全是两回事。她也惊讶于这些人故事的精彩程度。于是她决定编一本访谈集,对象是创业公司的创始人。

后来银行陷入财务困难,她不得不裁掉一半员工,于是她也开始找新工作。2005 年初,她去波士顿一家风投公司面试一个市场营销岗。对方足足拖了好几周才决定,在这段日子里,我开始向她数落风险投资有哪些地方需要修正。他们应该多投一些金额较小的项目,而不是只投少数几笔巨额投资;他们应该投那些更年轻、更技术派的创始人,而不是 MBA;他们应该让创始人继续担任 CEO,等等。

写散文这件事,我历来有个小窍门,就是去做演讲。一想到要站在一群人面前讲点不浪费他们时间的东西,那股压力对想象力是极好的鞭策。哈佛计算机协会——也就是哈佛本科生的计算机社团——邀我去做一次演讲,我决定就给他们讲讲怎么创办一家创业公司。也许他们能避开我们当年犯过的那些最糟糕的错误。

于是我做了那场演讲,过程中我告诉他们,种子轮资金的最佳来源是那些已经成功过的创业公司创始人,因为他们同时也能给你建议。话音落下,他们似乎都满怀期待地看着我。一想到收件箱即将被一堆商业计划书塞爆(要是我那时知道后来的事),我惊恐之下脱口而出:“但不是我!”——然后接着把演讲讲完。但事后我又琢磨:天使投资这件事我真的不能再拖下去了。从雅虎收购我们那时起我就一直说要做,结果 7 年过去了,我连一笔天使投资都还没做过。

与此同时,我也一直和 Robert、Trevor 在合谋,看有什么项目能一起搞。我怀念跟他们一起干活的日子,总觉得我们之间一定能找到一件能合作的事。

3 月 11 日那天晚上,Jessica 和我吃完饭走回家,在 Garden 街和 Walker 街交叉口,这三条线索撞到了一起。让那些迟迟拿不定主意的风投见鬼去吧。我们要自己开一家投资公司,把我们一直在念叨的那些理念真正落实下去。我来出钱,Jessica 可以辞掉她的工作来做这件事,再把 Robert 和 Trevor 拉进来当合伙人。

无知再一次站到了我们这边。我们完全不知道天使投资人该怎么当,而 2005 年的波士顿,也找不到一个像 Ron Conway 那样的人可以学。所以我们只是凭着“看起来理所当然“的判断去做选择,结果其中一些做法竟然成了新东西。

Y Combinator(YC)由好几个部分组成,我们并不是一开始就把它们都想明白的。我们最早搞清楚的那一块,是要做一家天使投资公司。在那个年代,这两个词是不放在一起说的。一边是风投公司,那是有正式编制的机构,里头有一群以做投资为本职工作的人,但他们只做百万美元级别的大单。另一边是天使投资人,他们做的金额小一些,但他们都是个人,平日里多半在忙别的事,做投资只是顺手而为。这两种人,对处在最初阶段的创始人都帮得不够多。我们知道创始人在某些方面有多无助,因为我们自己当年就是那么无助过来的。比如说,Julian 当年帮我们做过一件事,在我们看来简直像变魔术,那就是替我们把公司注册起来。要我们写相当难的软件没问题,可真到了把公司“成立“起来——章程、股权之类的东西——我们到底要怎么搞?我们的计划不仅是给创业公司做种子投资,还要把 Julian 当年为我们做过的所有事,统统替这些创业公司也做一遍。

YC 没有按基金的方式来组织。它的运营成本足够低,所以我们就用自己的钱来出资。99% 的读者读到这儿不会停下来想,但专业投资人会立刻反应过来——“哇,那意味着收益全归他们自己了。“可话再说一遍,这并不是因为我们看出了什么门道。我们根本不知道风投公司是怎么组织的。我们压根就没想过去募一支基金;就算想过,我们也不知道该从哪儿开始。

YC 最有特色的一点,是它的“批次模式“——一次性资助一大批创业公司,每年两次,然后用三个月时间集中精力帮他们。这部分是我们偶然发现的,而且是出于我们对投资的无知,明明白白地、而非含糊地撞上的。我们需要积累作为投资人的经验。我们当时想,还有什么比同时给一大批创业公司投资更好的练手方式?我们知道本科生暑假会去科技公司打短工。那为什么不办一个暑期项目,让他们不去打短工,而是来创业呢?我们也不会因为自己某种意义上是“假投资人“而良心不安,因为他们某种意义上同样是“假创始人“。所以哪怕我们大概率赚不到什么钱,至少能拿他们来练手当投资人;而对他们来说,比起去微软上班,这个夏天大概也会更有意思些。

我们打算把我在剑桥那栋楼当作根据地。每周大家一起在那儿吃一顿晚饭——定在周二,因为我周四已经在给周四晚饭的那帮朋友做饭了——饭后我们会请来创业领域的专家来做讲座。

我们知道本科生这时候正在定暑期工作,所以我们在几天之内就攒出了一个东西,叫“暑期创始人计划“——SFP(Y Combinator 暑期创始人计划)——我把申请通知发到了我自己的网站上,邀请本科生来报名。我从来没想过,写散文居然会变成所谓“deal flow“(投资人行话,意指项目源)的一个渠道,但事实证明,它简直是个完美的来源。SFP 一共收到了 225 份申请,更让我们惊讶的是,其中有不少人已经毕业,或者那年春天就要毕业了。SFP 这件事,从这一刻起就开始显得比我们原本设想的要严肃得多。

我们在 225 个团队里挑了大约 20 个来做现场面试,又从中选了 8 个来投。这是一群令人印象深刻的人。第一批里就有 reddit、有 Justin Kan 和 Emmett Shear(他们后来创办了 Twitch)、有 Aaron Swartz(他那时已经参与编写了 RSS 规格说明,几年后成为为开放访问运动而牺牲的烈士),还有 Sam Altman(OpenAI CEO,YC 第二任总裁)——他后来会成为 YC 的第二任总裁。我不认为第一批人这么强完全是运气。一个本来可以去微软或高盛之类正经地方打暑期工的人,要鼓起相当的胆量,才会跑来报名“暑期创始人计划“这种古怪的东西。

给创业公司的条款,是把当年 Julian 给我们的那一套(10,000 美元换 10%)和 Robert 说 MIT 研究生暑假能拿到的钱(6,000 美元)拼在一起得出来的。我们按每位创始人 6,000 美元投资,典型的两人创始团队就是 12,000 美元,换 6% 的股份。这个条款一定算公平,因为它比我们自己当年拿到的还要好上一倍。再加上那年夏天又特别热,Jessica 还给创始人们送去免费的空调。

很快我就意识到,我们歪打正着地找到了一种“规模化“创业公司融资的办法。把创业公司按批次来投,对我们来说更省事,因为我们可以一次性为很多家公司做事;但成为某一批的一员,对创业公司本身也更好。它解决了创始人面对的最大问题之一:孤立。如今你不仅有了同事,还有一群正在面对同样问题、并且能告诉你他们是怎么解决的同事。

随着 YC 不断壮大,我们又开始注意到规模带来的其他好处。校友们逐渐形成了一个紧密的社群,热心互相帮助,对当下这一批创业公司尤其上心,因为他们记得自己当年身处那个位置时是什么感受。我们还注意到,这些创业公司彼此之间正在变成对方的客户。我们以前开玩笑地说“YC 的 GDP“,但 YC 越大,这个玩笑也就越不像玩笑。如今很多创业公司最初的一批客户,几乎全部来自他们自己的同批战友。

YC 一开始并不是我打算全职去做的事。我本来是要做三件事:hack、写散文、做 YC。可随着 YC 不断变大,我对它的投入也越来越多,它占用的精力远不止三分之一。但在最初几年,我还能挤出时间做别的事。

2006 年夏天,Robert 和我开始动手做新版本的 Arc。这个版本跑得还算快,因为它会编译成 Scheme。为了测试这个新 Arc,我用它写了 Hacker News(PG 创立的科技新闻聚合站)。它最初只是想做一个面向创业公司创始人的新闻聚合器,名字叫 Startup News,但几个月之后,我就读够了那种除了创业公司啥都没有的内容。再说,我们想触达的对象其实并不是已经在做创业的创始人,而是未来的创始人。所以我把名字改成了 Hacker News,话题也放宽成“任何能勾起人智识好奇心的内容“。

HN 对 YC 当然是好事,但它同时也是我压力的最大来源——遥遥领先于其他事情。如果我要做的事就是挑选和帮助创始人,那这日子简直太轻松了。这反过来意味着,HN 是一个错误。一个人工作里最大的压力来源,至少应该贴近这份工作的核心才对。可我当时的状态,就好比一个跑马拉松的人感到痛苦,不是因为奔跑本身耗费体力,而是因为穿了一双不合脚的鞋磨出了水泡。在 YC 里碰到什么紧急问题时,大约 60% 的概率它和 HN 有关,剩下 40% 的概率才是其他所有事情加起来。

除了 HN,YC 内部的所有软件也都是我用 Arc 写的。但虽然我一直在 Arc 里做了不少事情,我却渐渐不再做 Arc 本身了,一方面是没时间,另一方面是——既然现在已经有这么多基础设施压在它身上了,再去随便折腾这门语言本身就显得不太划算。于是我那三件事就缩减成了两件:写散文,做 YC。

YC 跟我以前做过的那些工作很不一样。不再是我自己决定该做什么,问题会自己找上门来。每 6 个月就有新一批创业公司,他们的问题——不管是什么——就成了我们的问题。这种工作非常吸引人,因为他们的问题千差万别,而那些好的创始人办事效率极高。如果你想用最短的时间学到关于创业公司最多的东西,找不到比这更好的方式了。

这份工作里有些部分我并不喜欢:联合创始人之间的纠纷、判断哪些人在对我们说谎、与那些虐待创业公司的人对抗,等等。但即便是不喜欢的部分,我也很卖力。我一直被 Kevin Hale 说过的一句关于公司的话困扰着:“没有人比老板干得更狠。“这句话他既是描述性的、又是规范性的,让我害怕的是后者。我想让 YC 变好,所以如果我自己干活的强度决定了所有人能干到的上限,那我最好拼命干。

2010 年的某一天,Robert Morris 来加州参加面试,他做了一件惊人的事:主动给我提了一个建议。在那之前,我只能想起他主动给我提过一次建议。那是在 Viaweb 时期,有一天我因为肾结石疼得弯成一团,他建议说,他送我去医院可能是个好主意。要让 Rtm 主动开口提建议,得是这种程度的事。所以他这次说的话我记得一字不差。“你要知道,“他说,“你得保证 Y Combinator 不是你做的最后一件酷事。”

我当时并没听懂他在说什么,但慢慢地我才明白过来——他是在说我应该退出。这听起来像个奇怪的建议,因为 YC 当时正干得风生水起。但是世上比 Rtm 主动提建议更稀有的事,就是 Rtm 提的建议是错的。所以我开始琢磨这件事。按我当时的轨迹,YC 确实会成为我做的最后一件事,因为它正在不断吞掉我的注意力。它已经吃掉了 Arc,眼下还在一点点吃掉散文。要么 YC 就是我这辈子的事业,要么我迟早得离开。它不是,所以我会走。

2012 年夏天,我母亲中风了,结果查出来病因是结肠癌引起的血栓。中风毁了她的平衡能力,她被送进了一家养老院,但她真的非常想从那里出来、回自己家去。我和姐姐下定决心要帮她做到这一点。我那段时间经常飞去俄勒冈看她,飞机上有大把时间可以想事情。其中有一次飞行,我意识到自己已经准备好把 YC 交给别人了。

我问 Jessica 想不想当总裁,她不想,于是我们决定试着把 Sam Altman 招进来。我们和 Robert、Trevor 商量过,大家一致同意把这次交接做成一次彻底的换班。在那之前,YC 一直由我们四个人最早成立的那家有限责任公司控制。但我们希望 YC 能长久地走下去,要做到这一点,它就不能继续掌握在创始人手里。所以如果 Sam 答应,我们就让他重新组织 YC。Robert 和我退休,Jessica 和 Trevor 转为普通合伙人。

我们最初问 Sam 想不想当 YC 总裁,他一开始是拒绝的。他想自己创办一家做核反应堆的创业公司。但我一直坚持劝他,2013 年 10 月他终于答应了。我们决定让他从 2014 年冬季那一批开始接手。2013 年余下的时间里,我把 YC 的运营越来越多地交给 Sam,一方面是想让他熟悉这份工作,另一方面是因为我那时正把心思放在母亲身上——她的癌症又复发了。

她于 2014 年 1 月 15 日去世。我们都知道这一天会来,但真的来的时候依然很难。

我一直工作到那年 3 月,把那一批创业公司送过 Demo Day,然后我就基本上彻底抽身了。(我现在仍然会和校友以及我感兴趣的领域里那些新创业公司聊聊,但每周也就几个小时。)

接下来该做什么呢?Rtm 的建议里没说这部分。我想做点完全不一样的事,所以我决定去画画。我想看看,如果我真心专注,能画到多好。所以从我离开 YC 的第二天起,我就开始画画。手生,过了一阵才慢慢恢复状态,但至少这件事是完全能把我吸引住的。

2014 年剩下的时间我大半都在画画。我以前从来没办法这样不间断地画画,结果画得比以前好了一些。还不够好,但确实变好了。然后到 11 月,正画在某一幅画的当中,我的劲头突然没了。在那之前,无论画的是什么,我总是好奇这一幅最后会画成什么样;可那一刻,要把这一幅画完忽然变成了一件苦差事。于是我停下画笔、把刷子洗干净,从此再没画过。至少到目前为止还没有。

我知道这听起来挺怂的。但注意力是一场零和博弈。如果你可以选择做什么,而你又选了一件并非最适合你(或至少是适合你的)的项目去做,那它就在妨碍另一个本该被你做的项目。而到了 50 岁这把年纪,瞎折腾是有机会成本的。

我又开始写文章,接下来几个月里写了一批新的。我甚至写了几篇与创业无关的。然后在 2015 年 3 月,我重新开始钻研 Lisp。

Lisp 与众不同的地方在于:它的核心是一种用自身写出的解释器来定义的语言。它最初并不是普通意义上的编程语言,而是被设想为一种形式化的计算模型,是图灵机的一种替代方案。如果你想用一种语言为自身写一个解释器,那么所需的预定义算子的最小集合是什么?John McCarthy 发明的——更准确地说是发现的——那个 Lisp,就是对这个问题的回答。

McCarthy 自己起初也没意识到这个 Lisp 居然能用来给计算机编程,是他的研究生 Steve Russell 提议的。Russell 把 McCarthy 的解释器翻译成了 IBM 704 的机器语言,从那一刻起,Lisp 也成了普通意义上的编程语言。但它作为计算模型的起源,赋予了它其他语言无法企及的力量与优雅。当年在大学里吸引我的正是这一点,尽管那时我并不明白为什么。

McCarthy 在 1960 年的 Lisp 只能解释 Lisp 表达式,缺少很多你在编程语言里期待的东西。这些东西必须后来一个个加进去,而加进去的时候,并没有沿用 McCarthy 最初那套公理化的方式。那在当时根本行不通。McCarthy 通过手工模拟程序的执行来测试他的解释器。但这已经接近用这种方式可测试的解释器的极限了——事实上,里面就有一个被 McCarthy 忽略的 bug。要测试更复杂的解释器,你就得真的把它跑起来,而那时的计算机还不够强大。

可如今计算机够强大了。如今你可以一直沿用 McCarthy 的公理化方式,直到定义出一门完整的编程语言。只要你对 McCarthy 的 Lisp 所做的每一处改动都是一种“保发现性“的变换,那么原则上你就可以最终得到一门具备这种品质的完整语言。当然,这件事说起来比做起来容易,但既然原则上可行,为什么不试试呢?于是我决定试一试。整件事花了 4 年,从 2015 年 3 月 26 日做到 2019 年 10 月 12 日。所幸我有一个定义得非常精确的目标,否则很难坚持这么久。

我把这门新的 Lisp 取名为 Bel(PG 2016-2019 年创造的 Lisp 方言),并用 Arc 把它写成了它自身。听上去像自相矛盾,但这恰恰说明了为做成这件事我不得不耍的那些花招。靠着一堆离谱至极的 hack,我勉强凑出了某种足够接近“用自身写成的解释器“的东西,并且真的能跑起来。不快,但够用来测试。

这段时间里,我不得不禁止自己写文章,否则永远也写不完。2015 年末我花了 3 个月写文章,等回头继续做 Bel 时,自己的代码我已经几乎读不懂了。倒不是因为代码写得糟糕,而是因为问题本身实在太绕。当你在做一个用自身写成的解释器时,很难分辨某件事到底发生在哪一层;等错误浮出水面时,它们几乎已经被加密过了。

所以我下了决心:Bel 完成之前不再写文章。可是做 Bel 的那几年,我几乎没跟人提起它。所以在外人看来,我那几年似乎什么也没做,事实上我比以往任何时候都更拼命。偶尔,在为某个棘手的 bug 苦战几小时之后,我会去刷一下 Twitter 或 HN,看到有人发问:“Paul Graham 还写代码吗?”

做 Bel 又难又满足。我做得太投入,以至于无论何时,脑子里都装着一大块代码,可以随时往里面续写。我记得 2015 年某个晴天,我带儿子们去海边,看着他们在潮间带的水洼里玩耍,我一边在想着如何处理某个跟 continuation 有关的问题。那一刻我感觉自己把生活过对了。我之所以记得这件事,是因为这种感觉对我来说太新鲜了,让我有些怅然。好消息是,往后几年里,这样的时刻多了起来。

2016 年夏天,我们搬到了英国(England)。我们想让孩子见识一下在另一个国家生活是什么样子,而我又生来就是英国公民,所以这似乎是顺理成章的选择。我们原本只打算住一年,但实在太喜欢,到现在还住在那儿。所以 Bel 大部分都是在英国写的。

2019 年秋天,Bel 终于完成了。和 McCarthy 最初的 Lisp 一样,它是一份规格说明而非具体实现,不过同样和 McCarthy 的 Lisp 一样,它是一份用代码表达的规格说明。

既然又能写文章了,我把积压已久的一堆题目挨个写了出来。整个 2020 年我一直在写文章,但同时也开始思考还有什么别的事情可做。该如何选择要做什么呢?嗯,过去我又是怎么选择要做什么的呢?我为自己写了一篇文章来回答这个问题,而答案竟然又长又乱,让我自己都很意外。如果连亲身经历过的我都觉得意外,那么也许它对别人也会有意思,对那些同样有着乱糟糟人生的人也会是种鼓励。于是我又写了一个更详尽的版本给别人读,而你正在读到的这一句,就是它的最后一句。