我的工作回顾
2021年2月
上大学之前,我在课外主要投入的两件事是写作和编程。我那时不写散文,而是写当时(恐怕现在也是)初学写作者被要求写的东西:短篇小说。我的小说糟糕透顶,几乎没有什么情节,只有一些情绪强烈的人物,我当时以为这样就能显得深刻。
我最初尝试编写的程序,是在我们学区那台用于所谓“数据处理”的 IBM 1401 上完成的。那是九年级时,我大概十三四岁。学区的 1401 恰好放在我们初中的地下室里,我和朋友 Rich Draves 获得了使用许可。那下面就像微型反派邦德的巢穴,所有那些看起来像外星设备的机器——中央处理器、磁盘驱动器、打印机、读卡器——都摆在架高的地板上,上方亮着刺眼的荧光灯。
我们用的语言是 Fortran 的早期版本。你必须把程序打在穿孔卡片上,然后把卡片叠好放进读卡器,按下按钮把程序载入内存并运行。结果通常是那台声音大得惊人的打印机会打印出一些东西。
我对 1401 感到困惑,不知道能用它做什么。现在回想起来,当时我也确实没什么可做的。程序唯一的输入形式是存储在穿孔卡片上的数据,而我根本没有存储在穿孔卡片上的数据。唯一的选择是做那些不依赖任何输入的事情,比如计算圆周率的近似值,但我的数学知识还不够,做不了这类有趣的事情。所以我不奇怪自己记不清写过什么程序,因为它们不可能做出什么名堂。我记得最清楚的是,当我发现自己写的某个程序无法终止运行时,我明白了程序是有可能不终止的。在那种没有分时系统的机器上,这既是技术错误,也是社交失误——数据中心经理的表情说明了一切。
微机的出现改变了一切。现在你面前的书桌上就能放一台电脑,它在运行时能对你的按键做出响应,而不是只能默默处理一叠穿孔卡片然后停下来。[[1]]
我的朋友中第一个拥有微机的人是自己组装起来的,那是 Heathkit 出品的套件。我清晰记得看着他坐在那台电脑前,直接往电脑里敲程序时,我是多么印象深刻和嫉妒。
那时候电脑很贵,我磨了好几年才说服父亲在 1980 年左右买了一台 TRS-80。当时最好的机型是 Apple II,但 TRS-80 已经足够好了。这时我才真正开始编程。我写了一些简单的游戏,一个预测我的模型火箭能飞多高的程序,还有一个文字处理器——我父亲用它写了至少一本书。内存里只能容纳大约两页文字,所以他一次写两页然后打印出来,但这比打字机好多了。
虽然我喜欢编程,但我没打算在大学里学这个。我打算在大学学哲学,那听起来更有力量。在我那高中生的天真想法里,哲学是对终极真理的研究,与之相比,其他领域研究的东西不过是特定领域的知识。等我上了大学才发现,其他领域占据了思想空间的绝大部分,留给这些所谓终极真理的空间所剩无几。留给哲学的似乎只剩下其他领域觉得可以放心忽略的边角料。
我 18 岁的时候说不清这些道理。当时我只知道,我不断选哲学课,而它们不断让我感到无聊。于是决定转去学人工智能。
1980 年代中期,人工智能正处在风口浪尖,但有两件事尤其让我想从事这个领域:一是海因莱因的小说《严厉的月亮》,里面有一个叫 Mike 的智能计算机;二是一部 PBS 纪录片,展示了 Terry Winograd 使用 SHRDLU 的过程。我没有试着重新读一遍《严厉的月亮》,所以不知道它是否经得起时间的考验,但当年读它的时候,我完全沉浸在那个世界里。似乎我们拥有 Mike 只是时间问题,而当我看到 Winograd 用 SHRDLU 时,感觉那一刻最多也就几年之遥。你所要做的就是教 SHRDLU 更多词汇。
当时康奈尔大学没有人工智能课程,连研究生课程都没有,所以我开始自学。这意味着要学 Lisp,因为那时 Lisp 被认为是人工智能的语言。那时的常用编程语言相当原始,程序员的观念也相应如此。康奈尔大学的默认语言是一种类似 Pascal 的语言叫 PL/I,其他学校的情况也差不多。学习 Lisp 如此迅速地扩展了我对程序的概念,以至于过了好几年我才开始对新边界的所在有了感觉。这才对嘛;这才是我期望大学能带给我的。这没有发生在课堂上——本来应该是那样的——但也没关系。接下来几年我一帆风顺,知道自己要做什么了。
为了写本科毕业论文,我对 SHRDLU 做了反向工程。天哪,我太喜欢研究那个程序了。那是一段令人愉悦的代码,但更让我兴奋的是我的信念——现在很难想象,但在 1985 年这并不罕见——它已经在攀登智能的低坡了。
我进了康奈尔的一个项目,这个项目不要求你选专业。你可以随便上什么课,随便选择你要写在学位上的方向。我当然选了“人工智能”。当我拿到实物文凭时,沮丧地发现引号也被印了上去,读起来像是讽刺性的引号。当时这让我很困扰,但现在看来这显得有趣而准确,原因我即将发现。
我申请了三所研究生院:MIT 和耶鲁,这两所当时在人工智能领域声誉卓著;还有哈佛,我去那里参观过,因为 Rich Draves 在那,而且 Bill Woods 也在那——他发明了我在 SHRDLU 克隆程序中使用的解析器类型。只有哈佛录取了我,所以我就去了那里。
我不记得那个时刻是什么时候发生的,或者是否真的有一个具体的时刻,但在研究生第一年,我意识到那时所实践的人工智能是个骗局。我指的是那种程序接到“狗坐在椅子上”这样的陈述,就把它翻译成某种形式化表示,并加入它所知道的事实清单。
这些程序真正展示的是,自然语言中有一个子集是形式语言。但这是一个非常严格的子集。很明显,它们能做的事情与真正理解自然语言之间存在着不可逾越的鸿沟。事实上,这并不仅仅是教 SHRDLU 更多词汇的问题。那种用显式数据结构来表示概念的整个人工智能方法,是行不通的。它的破碎,就像经常发生的那样,产生了大量写论文的机会,可以写各种能给它打补丁的方法,但它永远不会让我们得到 Mike。
所以我环顾四周,看看能从我的计划残骸中救出什么,那就是 Lisp。我凭经验知道,Lisp 本身就很有趣,而不仅仅是因为它与人工智能的关联——尽管那是当时人们关心它的主要原因。于是我决定专注于 Lisp。事实上,我决定写一本关于 Lisp 黑客技术的书。想想我开始写那本书时对 Lisp 黑客技术了解之少,真有点后怕。但要学习某个东西,没有什么比写一本关于它的书更有效了。那本书《On Lisp》直到 1993 年才出版,但我在研究生院期间就写了大部分。
计算机科学是两半之间不安的联盟:理论与系统。理论的人证明东西,系统的人构建东西。我想构建东西。我对理论相当尊重——实际上,我私心怀疑理论是两半中更令人钦佩的——但构建东西似乎有趣得多。
不过,系统工作的问题在于它不持久。你今天写的任何程序,无论多好,最多几十年后就会过时。人们可能会在脚注中提到你的软件,但不会有人真正用它。而且,它确实看起来是很没分量的工作。只有了解这个领域历史的人才会意识到,在当时它是好的。
有一次,计算机实验室里有一些多余的 Xerox Dandelions 工作站四处放着。想要的人可以拿一台去玩。我短暂地心动过,但它们以现在的标准来看太慢了,有什么意义呢?别人也不想要,所以它们就被送走了。这就是系统工作的命运。
我不仅想构建东西,而且想构建能持久的东西。
在这种不满的状态下,1988 年我去 CMU 拜访了 Rich Draves,他在那里读研究生。有一天我去了卡内基学院,那是我小时候常去的地方。在那里看一幅画时,我意识到了一些可能看起来显而易见的事情,但对我来说是个巨大的惊喜。就在墙上,有一种东西是你创造出来可以持久的。画作不会过时。有些最好的画已经有几百年历史了。
而且,这是你可以用来谋生的事情。当然不会像写软件那么容易赚钱,但我觉得如果你是真的很勤奋,生活过得很节俭,那肯定还是可以赚到足够的钱生存下去。作为艺术家,你可以真正独立。你没有老板,甚至不需要申请研究经费。
我一直很喜欢看画。我能画吗?我完全不知道。我从来没想过有这个可能。我理智上知道艺术是人创造的——它不是凭空出现的——但创造艺术的人仿佛是不同的物种。他们要么生活在很久以前,要么是神秘的天才,在《生活》杂志的人物报道里做着奇怪的事情。真正能创造艺术——把“创造”这个动词放在“艺术”这个名词前面——这个想法,几乎是奇迹。
那年秋天我开始在哈佛上艺术课。研究生可以上任何系的课,我的导师 Tom Cheatham 非常随和。就算他知道我上那些奇怪的课,他也从没说过什么。
所以现在我在读计算机科学的博士项目,却计划当艺术家,同时又真心热爱 Lisp 黑客技术,还在写《On Lisp》。换句话说,像许多研究生一样,我正精力充沛地做着手头的多个项目,它们都不是我的论文。
我看不到走出这个局面的路。我不想退学,但有别的出路吗?我记得当我的朋友 Robert Morris 因为写了 1988 年的互联网蠕虫而被康奈尔开除时,我很嫉妒他找到了这么一种壮观的方式离开研究生院。
然后 1990 年 4 月的一天,墙上出现了一条裂缝。我碰巧遇到 Cheatham 教授,他问我是不是快完成了,能不能在 6 月毕业。我的论文一个字都没写,但在我一生中最快的一次思考中,我决定尝试在截止日期前剩下的 5 周左右时间里写一篇论文,尽可能复用《On Lisp》的部分内容,然后我能毫无停顿地回答:“是的,我想可以。我会在几天内给你一些东西看。”
我选择了续延的应用作为主题。现在回想起来,我应该写宏和嵌入式语言。那是一个几乎尚未被探索的整个天地。但我只想离开研究生院,我匆匆写成的论文勉强够了。
与此同时,我正申请艺术学院。我申请了两所:美国的罗德岛设计学院(RISD)和佛罗伦萨的美术学院,后者因历史悠久,我以为想必不错。罗德岛设计学院录取了我,而佛罗伦萨美术学院则杳无音信,于是我便动身前往普罗维登斯。
我申请的是罗德岛设计学院的纯艺术学士项目,这意味着实际上我得重新读一次大学。这听起来虽奇,实则不然,因为我年仅25岁,且艺术院校里各年龄段的学生比比皆是。罗德岛设计学院将我认定为转学的大二学生,并要求我那年夏天完成基础课程。所谓基础课程,即人人都需修读的如素描、色彩和设计等基础科目。
夏末时分,我收到一个意外之喜:一封来自佛罗伦萨美术学院的的信,因误寄至英国剑桥而非马萨诸塞州剑桥而延误,信中邀请我那年秋天赴佛罗伦萨参加入学考试。如今距离考试仅有几周之遥。我那位好心的女房东允许我将行李寄存在她的阁楼里。我读研时做咨询工作攒了些钱,若是生活节俭,大概能维持一年。眼下,我唯一要做的就是学会意大利语。
只有stranieri(外国人)需参加此入学考试。回想起来,这很可能是为了限制外国学生人数,因为向往到佛罗伦萨学习艺术的外国人众多,若不如此,意大利本国学生的人数恐将被反超。得益于那年夏天在RISD基础课程中的绘画训练,我的素描和绘画功底尚可,但我至今仍不明白自己是如何通过笔试的。我记得作文题我写了塞尚,还尽可能提升论述的智识水平,以弥补词汇量有限的短板。
[[2]]
我才25岁,却已能看出如此明显的模式。我再一次即将踏入某座声名显赫的学府,指望学到某个光鲜领域的知识,也再一次即将失望而归。佛罗伦萨美术学院绘画系的师生是你能想象到的最和善的人,但他们早已达成一种默契:学生不要求老师教什么,老师也不要求学什么生学什么。与此同时,所有人对外仍恪守着19世纪画室的陈规。我们屋里甚至还真有一个用引火木生火的小炉子,就像19世纪画室画中常见的那种,还有一位裸体模特尽可能靠近炉子坐着而不会被烧伤。只是除了我以外,几乎没多少人画她。其余学生不是在闲聊,就是偶尔尝试模仿在美国艺术杂志上看到的东西。
后来得知,我们的模特就住在我家街对面。她靠当模特和给当地古董商做赝品为生。她临摹书中的冷门古画,然后古董商拿着复制品加以做旧处理,使其显得年代久远。
[[3]]
在佛罗伦萨美术学院就读期间,我晚上开始在卧室里画静物。这些画尺幅极小,因为房间狭小,而且我是在剩余的帆布碎片上作画,那是我当时唯一买得起的材料。画静物不同于画人物,因为静物如其名,是不会动的。人物一次摆姿势通常坚持不了15分钟,而且即便坐着也不会纹丝不动。因此,画人物的传统套路是知道如何画一个通用的人形,然后再加以修改,使之符合眼前具体的模特。而画静物,只要愿意,你可以一丝不苟地对照所见,一笔一笔地临摹。当然,你不想止步于此,否则你得到的不过是摄影般的精确,而静物画的趣味恰恰在于,它经过了画家头脑的加工。你会想强调那些视觉线索,比如,颜色在某一点突然变化是因为那是物体的边缘。通过巧妙地强调这些细节,你创作出的画作不仅能超越照片的写实程度,这不仅是比喻意义上的,更是严格的信息论意义上的。
[[4]]
我喜欢画静物,是因为我对所见之物充满好奇。日常生活中,我们对眼前所见的大部分事物并无清晰的意识。大多数视觉感知由大脑的低层级处理机制完成,它们只告诉大脑“那是一个水滴”,却不告诉你最亮和最暗点的细节;或者告诉你“那是一片灌木”,却不描述每一片叶子的形状和位置。这是大脑的特性,而非缺陷。日常生活中,若留意每一片灌木的每一片叶子,那只会让人分心。但当你必须描绘某物时,你就得更加细致地观察,一旦如此,便有大量可看之处。即便是人们习以为常的东西,你尝试画上数日,仍能不断发现新的事物,正如花数日时间构思一篇有关人们习以为常之事的文章,你同样会有新的感悟。
这并非唯一的绘画方式。我甚至不敢百分之百确定这是否是好的绘画方式。但这似乎是值得一试的好方法。
我们的老师乌利维教授是个好人。他看出我很用功,便给了我一个高分,记在学生人人都有的类似护照的本子上。但佛罗伦萨美术学院除了意大利语外,并未教会我什么,而我的钱也快花光了,于是在第一学年结束时,我回到了美国。
我想重返RISD,但此时我已身无分文,而RISD学费昂贵,于是我决定先工作一年,第二年秋天再回RISD。我在一家名为Interleaf的公司找到一份工作,这家公司开发文档创建软件。你是说像微软Word那样?正是如此。也正是这段经历,让我明白了低端软件往往最终会吞噬高端软件。不过,Interleaf当时还挺过了几年。
[[5]]
Interleaf做过一件相当大胆的事。受Emacs启发,他们加入了一种脚本语言,甚至让这种脚本语言成为Lisp的一种方言。现在他们需要一位Lisp黑客来为它编写程序。这是我有过的最接近正常上班的工作,我在此向我的老板和同事们道歉,因为我是个糟糕的员工。他们的Lisp语言不过是庞大C语言世界上一层薄薄的糖衣,而由于我不懂C语言,也不想学,大部分软件我从未真正理解过。此外,我还极度不负责任。那时编程工作意味着每天必须在固定时间上班。这让我觉得很不自然,如今世界其他地方也开始逐渐认同我的观点,但当时这却造成了诸多摩擦。那年年底,我大部分时间都在偷偷写《On Lisp》——那时我已经签了出版合同。
好的一面是,我挣了很多钱,特别是按艺术学生的标准来看。在佛罗伦萨,除去房租,我每天的开销预算是7美元。而现在,我每小时的收入是它的四倍多,哪怕只是坐在开会。加上生活节俭,我不仅攒够了回RISD的钱,还还清了大学贷款。
在Interleaf我学到了一些有用的东西,尽管大多是反面教材。我明白了技术公司最好由懂产品的人而非销售人员管理(尽管销售是门真本事,擅长此道者确实厉害);代码如果经手太多人修改,容易产生bug;廉价但令人压抑的办公空间并不划算;计划内的会议不如走廊里的偶遇交谈;庞大而官僚的客户是危险的资金来源;传统的办公时间与编程的最佳时间重合不多,传统的办公室也并非编程的理想场所。
但我学到的最重要一课,后来在Viaweb和Y Combinator都一直受用,那就是低端吞噬高端:成为“入门级”选择是好事,即便这没那么体面,因为如果你不做,别人也会做,他们会顶着你向上,把你压在天花板上。这反过来也意味着,体面名誉往往是危险的信号。
第二年秋天我离开公司回RISD时,与公司达成协议,为他们做客户项目的自由职业工作,这成了我接下来几年的生计来源。后来有一次回公司参与项目,有人跟我提起一种叫HTML的新东西,他说是SGML的衍生物。标记语言爱好者,Interleaf里大有人在,我并未在意他说的,但后来HTML却成了我生活中非常重要的一部分。
1992年秋天,我搬回普罗维登斯继续在RISD求学。RISD的基础课程不过是入门性质,佛罗伦萨美术学院则是个(相当文明的)玩笑。现在,我想看看真正的艺术院校到底什么样。可惜,它与其说像真正的艺术院校,不如说更像佛罗伦萨美术学院。确实,它组织更有序,费用也高得多,但显而易见,艺术学院与艺术的关系,并不像医学院与医学的关系那样紧密。至少绘画系如此。我隔壁邻居所在的纺织系似乎就相当严谨。无疑,插画系和建筑系也是如此。但绘画系,则处于后严谨状态。绘画系的学生被要求进行自我表达,而对于那些更为世故的学生而言,这意味着试图捣鼓出某种独特的标志性风格。
标志性风格,在视觉艺术领域,相当于演艺界所谓的“噱头”:一种能立刻让人认出作品是出自你手、而非他人的特征。例如,当你看到一幅看上去像某种卡通的画作,你便知道那是罗伊·利希滕斯坦的作品。所以,如果对冲基金经理的公寓里挂着一幅这种类型的大画,你会知道他花了几百万美元买下它。这不总是艺术家追求标志性风格的原因,但这通常是买家愿意为这类作品高价买单的原因。
[[6]]
同时,学校里也有不少认真踏实的学生:那些在高中时“会画画”的孩子,他们来到这所据说是全国最好的艺术院校,希望画技更上一层楼。他们往往被在RISD所见所闻弄得困惑和沮丧,但他们还是坚持下来,因为画画是他们的本命。我并非高中时就会画画的那种孩子,但在RISD,我绝对更接近他们那个群体,而不是追求标志性风格的那一群。
在RISD我上的色彩课让我受益匪浅,但除此之外,我基本上是在自学绘画,而这种学习方式无需任何花费。于是1993年,我辍学了。我在普罗维登斯逗留了一段时间,然后我的大学朋友南希·帕尔梅特帮了我一个大忙。她母亲在纽约名下的一栋楼里,有套受租金管制的公寓即将空出来。问我是否想要?房租并不比我现住处贵多少,而且纽约号称艺术家聚集之地。所以,我当然想要!
[[7]]
《阿斯泰里克斯》漫画的开篇,总是聚焦于罗马高卢的一个小角落,而这个角落竟未被罗马人控制。在纽约市的地图上,你也可以做类似的事:放大上东区,会发现一个不富裕的微小角落(至少1993年时如此)。这个地方叫约克维尔,那便是我的新家。如今,我成了一名纽约艺术家——严格从作画和居住地来说。
我对金钱感到紧张,因为我能感觉到 Interleaf 正在走下坡路。自由职业的 Lisp 黑客工作非常稀少,而我不想用另一种语言编程——在那时,如果运气好,那意味着要用 C++。所以,凭着我那对财务机会从不失误的嗅觉,我决定再写一本关于 Lisp 的书。这会是一本畅销书,那种可以作为教材的书。我想象自己靠版税过着节俭的生活,把所有时间都用来画画。(这本书封面上的画,ANSI Common Lisp,就是我在那段时间画的。)
对我来说,纽约最好的地方是伊黛尔和朱利安·韦伯的存在。伊黛尔·韦伯是一位画家,早期照相写实主义的代表人物之一,我在哈佛上过她的绘画课。我从未见过有哪位老师像她那样深受学生爱戴。大量的前学生和她保持联系,包括我。我搬到纽约后,就成了她事实上的工作室助手。
她喜欢在大幅的方形画布上作画,边长 4 到 5 英尺。1994 年末的一天,我正在绷紧其中一张这样的“巨幅”画布时,收音机里正播着一位著名基金经理的新闻。他比我大不了多少,却超级富有。我突然想到:我为什么不变得富有呢?那样我就能做任何我想做的事情了。
与此同时,我越来越多地听到一个叫“万维网”的新东西。罗伯特·莫里斯在剑桥时给我看了这个,那时他在哈佛读研究生。在我看来,网络将会成为一件大事。我见过图形用户界面如何让微型计算机流行起来。似乎网络也会为互联网带来同样的效果。
如果我想致富,这就是驶出车站的下一班火车。在这一点上我是对的。我搞错的是创意。我决定我们应该开一家公司,把艺术画廊放到网上。老实说,在读了这么多 Y Combinator 的申请后,我不能说这是有史以来最糟糕的创业想法,但它绝对排得上号。艺术画廊不想上网,现在也不想,尤其是那些高档的画廊。它们不是那样卖画的。我写了一些软件来为画廊生成网站,罗伯特写了一些程序来调整图片大小并设置一个 http 服务器来提供页面。然后我们试图让画廊注册使用。说这很难卖简直是轻描淡写。就算免费送也很难。有几家画廊让我们免费为它们建网站,但没有一家付钱给我们。
然后一些在线商店开始出现,我意识到除了订单按钮之外,它们和我们为画廊生成的网站一模一样。这个听起来很唬人的东西叫“互联网店面”,其实我们已经知道怎么建了。
所以在 1995 年夏天,我把 ANSI Common Lisp 的定稿交给出版社之后,我们开始尝试编写构建在线商店的软件。起初,这将是普通的桌面软件,在那时意味着 Windows 软件。那个前景令人不安,因为我们俩都不知道怎么写 Windows 软件,也不想学。我们生活在 Unix 的世界里。但我们决定至少尝试在 Unix 上写一个原型商店构建器。罗伯特写了一个购物车,我写了一个新的网站生成器,当然是用的 Lisp。
我们在剑桥罗伯特的公寓里工作。他的室友经常长时间不在,那些时候我就睡在他的房间。不知为什么,没有床架也没有床单,只有地板上的一个床垫。一天早上,我躺在这个床垫上时,突然冒出一个想法,让我像大写字母 L 一样猛地坐了起来。如果我们把软件运行在服务器上,让用户通过点击链接来控制它,会怎么样?那我们就不用写任何在用户电脑上运行的东西了。我们可以在同一个服务器上生成网站并从那里提供它们。用户只需要一个浏览器就够了。
这种软件现在称为Web应用,已经很常见了,但在当时,人们甚至不清楚它是否可能实现。为了弄清楚,我们决定试着做一个可以通过浏览器控制的商店构建器版本。几天后的 8 月 12 日,我们做出来一个能用的版本。界面很糟糕,但它证明了你完全可以通过浏览器构建一个完整的商店,不需要任何客户端软件,也不需要往服务器上敲命令行。
那时我们觉得自己真的发现了什么大东西。我憧憬着整整一代新软件都这样工作。你不再需要版本控制、移植,或那些乱七八糟的东西。在 Interleaf 有一个叫“发布工程”的整个部门,人数似乎至少和真正写软件的团队一样多。现在你可以在服务器上直接更新软件。
我们成立了一家新公司,叫 Viaweb,因为我们的软件是通过网络(web)工作的,我们从伊黛尔的丈夫朱利安那里获得了 1 万美元的种子资金。作为回报,加上他做了初步的法律工作并给我们商业建议,我们给了他公司 10% 的股份。十年后,这笔交易成了 Y Combinator 的模式。我们知道创始人需要这样的东西,因为我们自己就需要。
在这个阶段,我的净资产是负的,因为我银行里的一千美元左右远不足以抵消我欠政府的税款。(我有没有勤奋地把从 Interleaf 咨询赚的钱按比例留出来?没有,我没有。)所以虽然罗伯特有研究生津贴,但我需要那笔种子资金来过活。
我们原本希望九月份推出,但我们在开发过程中对软件越来越雄心勃勃。最终,我们设法构建了一个所见即所得的网站构建器,也就是说,当你创建页面时,它们看起来完全像之后会生成的静态页面,只不过链接不是指向静态页面,而是指向存储在服务器哈希表中的闭包。
学过艺术很有帮助,因为在线商店构建器的主要目标是让用户看起来正规,而看起来正规的关键是高制作水准。如果你把页面布局、字体和颜色弄对了,你可以让一个在卧室里开店的家伙看起来比大公司还要正规。
(如果你好奇为什么我的网站看起来这么老式,那是因为它仍然是用这个软件做的。它今天可能看起来笨重,但在 1996 年,它可是时髦的极致。)
九月,罗伯特反抗了。“我们已经在这个东西上工作一个月了,”他说,“还没做完。”事后看来这很可笑,因为他几乎又工作了三年。但我决定多招些程序员可能是明智的,我问罗伯特,和他一起读研的人里谁真的很厉害。他推荐了特雷弗·布莱克威尔,起初这让我很惊讶,因为那时我对特雷弗的主要印象是,他计划把所有生活琐事都简化成一叠随身携带的索引卡。但 Rtm 一如既往是对的。特雷弗原来是一个极其高效的黑客。
和罗伯特、特雷弗一起工作非常有趣。他们是我认识的最有独立思想的人,而且方式完全不同。如果你能看到 Rtm 的大脑,它看起来会像一座殖民时期的新英格兰教堂;如果你能看到特雷弗的大脑,它看起来像奥地利洛可可式最过分的繁复。
我们在 1996 年 1 月开业,有 6 家商店。还好我们多等了几个月,因为虽然我们担心自己晚了,实际上我们几乎是致命地太早了。那时媒体上有很多关于电子商务的讨论,但真正想开在线商店的人并不多。[[8]]
软件主要有三个部分:编辑器,人们用它来建网站,我写的;购物车,罗伯特写的;以及管理器,用于跟踪订单和统计数据,特雷弗写的。在当时,编辑器是最好的通用网站构建器之一。我保持了代码紧凑,而且不需要与除罗伯特和特雷弗的之外任何软件集成,所以开发起来相当有趣。如果我只需要做这个软件,接下来的三年将是我一生中最轻松的时光。不幸的是,我还要做很多事情,所有这些事情我都不如编程擅长,接下来的三年反而成了最紧张的时期。
在 90 年代后半期,有很多初创公司开发电子商务软件。我们决心做 Microsoft Word,而不是 Interleaf。这意味着要易用且便宜。我们穷反而是件幸事,因为这让我们把 Viaweb 定价得比我们意识到的还要便宜。我们一个小商店每月收费 100 美元,一个大商店每月 300 美元。这个低价是个很大的吸引力,也是竞争对手眼中常年的刺,但我们定低价并不是因为什么精明的洞察。我们根本不知道企业为东西付多少钱。每月 300 美元对我们来说似乎是很大一笔钱。
我们像这样无意中做对了很多事情。例如,我们做了现在所谓的“做无法规模化的事情”,尽管当时我们会把它描述为“糟糕到只能被迫用最绝望的手段来获取用户”。最常见的手段就是帮用户建商店。这似乎特别丢人,因为我们软件存在的全部理由就是人们可以用它来自己建商店。但只要能拿到用户,什么都行。
我们学到了很多我们本不想知道的零售知识。比如,如果你只能有一张小尺寸的男士衬衫图片(而且按现在的标准,当时所有图片都很小),拍衣领的特写比拍整件衬衫更好。我记得学到这个是因为这意味着我得重新扫描大约 30 张男士衬衫的图片。我第一遍扫描的图片本来还那么漂亮。
虽然这感觉不对,但这恰恰是应该做的事情。为用户建商店让我们了解了零售,也了解了使用我们软件的感受。一开始我对“商业”既困惑又排斥,觉得我们需要一个“商业人士”来负责,但一旦我们开始有了用户,我就被转化了,就像有了孩子之后我被转化为父亲一样。用户想要什么,我就完全为他们服务。也许有一天我们的用户会多到我无法再为他们扫描图片,但与此同时,没有什么比这更重要的事了。
另一件我当时没明白的事情是,增长率是初创公司的终极考验。我们的增长率还不错。1996 年底我们有大约 70 家商店,1997 年底大约有 500 家。我错误地认为重要的是用户的绝对数量。而从某种意义上说,这确实重要,因为这关系到你赚多少钱,如果你赚得不够多,你可能会倒闭。但从长远来看,增长率会解决绝对数量的问题。如果我们是一家我在 Y Combinator 指导的初创公司,我会说:别这么紧张了,因为你做得很好。你每年增长 7 倍。只要别再招太多人,你很快就能盈利,然后你就能掌控自己的命运。
唉,我招了很多很多人,部分原因是投资者希望我这么做,部分原因是互联网泡沫时期初创公司都是这么做的。只有少数几个员工的公司会显得不够专业。所以我们直到 1998 年夏天雅虎收购我们时才达到盈亏平衡。这反过来意味着,在公司整个生命周期中,我们都受投资者的摆布。而且,由于我们和我们的投资者都是初创公司的新手,结果即使按初创公司的标准来说也是一团糟。
雅虎收购我们公司时,我如释重负。原则上讲,我们的 Viaweb 股票价值不菲——它是一家盈利且快速增长的公司的一份股份。但对我而言,它并没有让我觉得多么值钱;我不知道如何评估一家企业的价值,但我却异常清醒地意识到,我们似乎每隔几个月就会经历一次濒临死亡的危机。而且,自从创业以来,我的研究生生活方式也几乎没变过。所以当雅虎收购我们时,感觉就像从赤贫走向了巨富。既然我们要去加州,我就买了辆车——一辆黄色的 1998 款大众 GTI。我记得当时心想,光是那真皮座椅,就已经是我拥有的最奢侈的东西了。
接下来的那一年,从 1998 年夏天到 1999 年夏天,一定是我人生中最没生产力的一年。我当时并未意识到,但经营 Viaweb 所付出的努力和承受的压力已让我精疲力竭。刚到加州时,我还试图维持一贯的作风,编程到凌晨三点,但疲惫加上雅虎那种过早老化的文化,以及圣克拉拉那阴森的格子间农场,逐渐把我拖垮了。几个月后,那种感觉令人不安地像极了在 Interleaf 工作。
雅虎收购我们时给了我们很多期权。当时我觉得雅虎被高估得离谱,这些期权永远不会值钱,但令我惊讶的是,第二年股价竟涨了五倍。我一直持有到第一批期权归属,然后在 1999 年夏天离开了。我太久没画过画,以至于都快忘了自己当初为什么做这件事。四年来,我的脑子里完全被软件和男式衬衫占据。但我提醒自己,我做这一切是为了变得富有,然后去画画,而如今我富有了,就应该去画画。
当我说要离开时,雅虎的上司和我进行了一场长谈,聊我的计划。我把我想画的各种画都告诉了他。当时,我很感动他对我如此关心。现在我明白了,那是因为他觉得我在撒谎。当时我的期权每月价值约两百万美元。如果我放着这种钱不赚,那只能是去创办新的 startup,而如果我这么做,我可能会带走一些人。那时正是互联网泡沫的最高峰,雅虎正是风暴中心。我的上司当时是个亿万富翁。在他眼里,放弃这一切去创办新公司,一定是个疯狂但又似乎合理的雄心勃勃的计划。
但我确实是为了画画而辞职的,而且我立刻就开始了。时间紧迫。我已经花了四年时间赚钱。现在,当我遇到那些卖掉公司后离开的创始人时,我的建议总是相同:去度个假。那才是我本该做的——找个地方待上一两个月,什么都不做——但我当时压根没想到这一点。
于是我开始尝试画画,但我似乎就是没有精力或雄心。部分问题在于我在加州认识的人不多。我还在圣克鲁斯山里买了栋房子,景色很美,但离任何地方都有好几英里。我又勉强撑了几个月,然后绝望地回到了纽约——除非你了解房租管制法,否则你会惊讶地发现,我的公寓居然还在,像一座封印着我旧日生活的坟墓。至少 Idelle 在纽约,那里还有其他想画画的人,尽管我一个也不认识。
回到纽约后,我恢复了往昔的生活,只不过现在有钱了。这听起来有多诡异,感受起来就有多诡异。我恢复了所有的旧习惯,只是现在多了许多以前没有的门。以前走累了只能继续走,现在只需抬抬手,(只要不下雨)就会有出租车停下来接我。以前路过迷人的小餐馆只能看看,现在可以进去点份午餐。有一阵子这确实令人兴奋。画画也开始有起色了。我尝试了一种新的静物画法:先用传统方式画一幅,然后拍照、打印,放大在画布上,再用它作为第二幅静物画的底色,从同样的对象(希望它们还没腐烂)画起。
与此同时,我找房子准备买。现在我真的可以选住哪个街区了。我问自己,也问各个房产中介:纽约的剑桥在哪里?时不时去真正的剑桥转转,我终于渐渐意识到——没有。嗯。
大约在那时,2000 年春天,我有了一个想法。从 Viaweb 的经验来看,网页应用显然是未来。为什么不做一款用来制作网页应用的网页应用呢?为什么不让人们通过浏览器在我们服务器上编辑代码,然后由我们托管他们生成的应用呢?[[9]] 你可以在这些服务器上运行各种服务,这些应用只需调用 API 就能使用:拨打和接听电话、处理图像、接受信用卡付款等等。
我对这个想法兴奋不已,无法再想别的事。这显然就是未来。我并不特别想再创办一家公司,但显然这个想法必须以公司的形式来实现,所以我决定搬到剑桥,把它做起来。我希望引诱 Robert 和我一起干,但在这里遇到了障碍。Robert 当时是 MIT 的博士后,虽然上次我引诱他参与我的计划时他赚了不少钱,但那也耗费了巨量时间。所以虽然他同意这个想法听起来靠谱,却坚决拒绝参与。
哼。好吧,那我就自己做。我招募了曾在 Viaweb 工作的 Dan Giffin,以及两个想找暑期工作的本科生,我们开始动手构建——如今看来,这大约是二十家公司和几个开源项目的软件工作量。定义应用的编程语言当然会是 Lisp 的一种方言。但我没那么天真,不会认为我能直接把一种露骨的 Lisp 抛给大众;我们得把括号藏起来,就像 Dylan 那样。
到那时,Viaweb 这种公司有了名字:“应用服务提供商”,简称 ASP。这个名字没持续多久就被“软件即服务”取代了,但它流行的时间足够长,我于是以此为新公司命名:打算叫它 Aspra。
我开始做应用构建器,Dan 负责网络基础设施,两个本科生做头两个服务(图像和电话)。但夏天过了一半,我意识到我真的不想经营一家公司——尤其是大公司,而看来这又非大不可。我创办 Viaweb 只是因为我需要钱。现在我不再需要钱了,为什么还要做这个?如果这个愿景必须实现为一家公司,那去他的愿景。我就做个开源项目能做的子集。
出乎意料的是,我花在这些东西上的时间并没有白费。后来我们创办 Y Combinator 之后,我经常遇到一些 startup 在构建这种新架构的各个部分,而曾经花那么多时间思考、甚至尝试编写其中一部分,这非常有帮助。
我要做成开源项目的那个子集,就是新的 Lisp,这次连括号都不用藏了。许多 Lisp 黑客都梦想构建一种新的 Lisp,部分是因为这个语言的一个显著特征就是它有许多方言,部分原因,我想,是因为我们心中有一种柏拉图式的 Lisp 理想形态,而所有现有方言都未能企及。我当然也不例外。于是夏末时,Dan 和我在我在剑桥买的一栋房子里,转而开始开发这个新方言,我把它叫做 Arc。
第二年春天,闪电劈中了。我被邀请在一个 Lisp 会议上做演讲,于是我讲了我们如何用 Lisp 开发 Viaweb。之后我把这次演讲的 PostScript 文件传到了 paulgraham.com——这个网站是我多年前用 Viaweb 建的,但一直没用来做任何事。一天之内它就获得了三万次页面浏览。究竟发生了什么?从来源 URL 来看,是有人把它贴到了 Slashdot 上。[[10]]
哇,我想,有读者群。如果我在网上写点东西,任何人都能看到。这如今看来显而易见,但当时却令人惊讶。在印刷时代,通往读者的渠道极其狭窄,把守着这些渠道的是被称为编辑的凶猛怪物。你写任何东西要想获得读者,唯一的途径就是出版成书,或刊登在报纸杂志上。现在任何人都能发布任何内容了。
这在原则上一九九三年就成了可能,但当时认识到这一点的人还不多。在那段时间的大部分时间里,我一直深度参与构建网络基础设施,同时也是个写作者,但我花了八年才意识到这一点。即便如此,我又花了好几年才理解其含义。这意味着将会有一个全新的随笔写作时代。[[11]]
在印刷时代,发表随笔的渠道几乎不存在。除了少数几位获得官方认可的、在纽约参加正确派对的 thinkers 之外,唯一被允许发表随笔的人是那些写自己专业领域文章的专家。有太多随笔从未被写出来,因为没有发表的途径。现在可以了,而我就要来写。[[12]]
我做过很多不同的事,但如果说有一个转折点,让我明确自己该做什么,那便是我开始在线上发表随笔的时候。从那时起我就知道,无论我将来做什么,我都会一直写随笔。
我知道在线随笔一开始会是一种边缘媒介。在社会观感上,它们可能更像疯子在 GeoCities 网站上发的胡言乱语,而非《纽约客》里那种文雅且排版精美的作品。但到了这个时候,我已经明白,这反而应该让我受到鼓舞,而非沮丧。
我在生活中观察到最显著的规律之一,就是去做那些没有声望的事情,对我而言,效果一直很好。静物画一直是绘画中最没有声望的形式。Viaweb 和 Y Combinator 在创办时都显得很土。直到现在,当陌生人问我写什么,我回答说是要发在自己网站上的一篇随笔时,他们仍会露出呆滞的眼神。就连 Lisp,虽然智力上像拉丁语一样有声望,但也差不多同样不时髦。
并不是说没声望的工作本身就好。但当你在某种工作缺乏声望时仍被其吸引,这既说明那里有真正值得发现的东西,也说明你怀有正确的动机。对雄心勃勃的人来说,不纯粹的动机是巨大的危险。如果有任何东西会把你引入歧途,那就是想给人留下印象的欲望。所以,虽然做没声望的事不能保证你走在正轨上,但它至少保证你没有走在最常见的那种歪路上。
接下来的几年里,我写了大量关于各种主题的随笔。O’Reilly 把其中一些结集出版,书名取自其中一篇,叫《黑客与画家》。我还做了垃圾邮件过滤器,也画了一些画。我以前每周四晚都会为一群朋友办晚餐聚会,这教会了我如何为多人做饭。另外我在剑桥又买了一栋楼,以前是个糖果厂(据说后来还做过色情工作室),用来当办公室。
2003年10月的一个夜晚,我家举办了一场盛大的派对。这是我朋友玛丽亚·丹尼尔斯(Maria Daniels)的巧思,她是周四聚餐会的常客。三位不同的主人各自邀请自己的朋友,共同汇聚成一场派对。这样对于每位客人来说,三分之二的其他人都是陌生人,但很可能趣味相投。其中一位客人,起初我并不认识,但后来却成了我非常喜欢的人:一位名叫杰西卡·利文斯顿(Jessica Livingston)的女性。几天后,我约她出去了。
杰西卡当时在一家波士顿投资银行负责市场营销。这家银行自认为深谙初创企业之道,但在接下来的一年里,随着她结识了我来自初创圈的朋友们,她惊讶地发现现实与想象相去甚远,而他们的故事又是多么丰富多彩。于是,她决定编纂一本关于初创企业创始人的访谈录。
当银行出现财务问题,她不得不裁掉一半员工时,她开始寻找新工作。2005年初,她面试了波士顿一家风险投资公司的市场营销职位。对方花了数周时间才做出决定,而在此期间,我开始向她阐述风险投资领域需要修正的种种问题。他们应该进行更多小额投资,而非少数几笔巨额投资;应该资助更年轻、更懂技术的创始人,而非MBA出身的人;应该让创始人继续担任CEO,等等。
我写作文章的一个诀窍,向来是进行演讲。当你知道自己不得不站在一群人面前,讲些不浪费他们时间的内容时,这无疑会极大地激发想象力。当哈佛计算机协会(Harvard Computer Society),这个本科生计算机俱乐部,邀请我演讲时,我决定告诉他们如何创办初创公司。或许他们能避免我们曾犯下的那些最严重的错误。
于是,我做了这场演讲,在演讲中我告诉他们,种子资金的最佳来源是成功的初创企业创始人,因为那样他们也能提供宝贵的建议。话音刚落,似乎所有人都期待地看着我。一想到我的收件箱会被商业计划书淹没(要是我早知道就好了),我吓得脱口而出:“但不是我!”然后继续演讲。但事后我想到,我真的应该停止在天使投资这件事上拖延了。自从雅虎收购我们后,我就一直打算做这件事,现在已经七年过去了,我竟然还没做过一笔天使投资。
与此同时,我一直在和罗伯特(Robert)与特雷弗(Trevor)密谋我们能一起合作的项目。我很怀念与他们共事的日子,似乎总该找点我们能共同参与的事情。
3月11日,当杰西卡和我晚餐后步行回家,走到花园街与沃克街的拐角处时,这三条线索交汇了。去他妈的犹豫不决的风险投资人。我们要自己创办投资公司,真正践行我们一直在谈论的想法。我来出资,杰西卡可以辞掉工作来为它效力,我们还邀请罗伯特和特雷弗作为合伙人加入。[[13]]
无知又一次帮了我们大忙。我们完全不知道如何做天使投资人,而且在2005年的波士顿,也没有可以学习的罗恩·康威(Ron Conway)式人物。于是,我们只是做了那些看似理所当然的选择,而其中一些做法最终被证明是新颖的。
Y Combinator由多个部分组成,我们并非一下子全部想明白。我们最先明确的是要做一家天使投资机构。那时候,“天使”和“机构”这两个词并不搭界。风险投资公司是组织化的企业,有专职投资的人员,但他们只做数百万美元的大额投资;而天使投资人做的是较小的投资,但他们是个人,通常专注于其他事情,只是兼职做投资。而且两者在初创公司起步阶段给予的帮助都不够。我们知道创始人在某些方面是多么无助,因为我们记得自己当初是多么无助。例如,朱利安(Julian)为我们做的一件在我们看来简直像魔法般的事,就是帮我们注册成立了公司。我们能轻松编写相当复杂的软件,但真要完成公司注册,弄明白章程、股权和各种繁琐事务,我们到底该怎么办呢?我们的计划不仅是进行种子投资,还要为初创公司效仿朱利安为我们所做的一切。
YC并没有组织成基金的形式。运营成本足够低,我们用自己的钱就能资助。这一点对99%的读者来说可能一带而过,但专业投资者会想:“哇,这意味着他们独享了所有回报。”但再次强调,这并非我们有什么独到见解。我们根本不知道风投公司是如何组织的。我们从未想过要募集基金,即使想过,也不知道该从何入手。[[14]]
YC最显著的特点就是“批量模式”:每年两批,同时资助一批初创公司,然后花三个月时间集中精力帮助它们。这部分是我们偶然发现的,不仅是无意识的,更是因为我们完全不懂投资。我们需要积累作为投资者的经验。我们想,还有什么比一次性资助一大群初创公司更好的方式呢?我们知道本科生暑假会在科技公司做临时工作。为什么不组织一个暑期项目,让他们在暑假创办初创公司呢?某种程度上,我们不会因为自己算是“冒牌”投资者而感到内疚,因为他们也是类似的“冒牌”创始人。所以,虽然我们可能赚不到多少钱,但至少可以拿他们来练习如何做投资者,而他们那边,暑假生活大概也会比去微软上班有趣得多。
我们会用我在剑桥市拥有的那栋楼作为总部。我们每周二在那里共进一次晚餐,因为周四我已经为周四聚餐会的人做饭了。晚餐后,我们会邀请初创企业专家来做讲座。
我们知道本科生当时正在决定暑期工作的事情,所以短短几天内,我们就策划出了一个名为“暑期创始人计划”(Summer Founders Program)的项目,并在我的网站上发布了申请公告。我从未想过写文章会成为获取投资者所谓的“项目流”的途径,但它最终成了完美的来源。[[15]]
我们收到了225份“暑期创始人计划”的申请,惊讶地发现其中很多人已经毕业,或者即将在那年春天毕业。这个SFP项目已经开始变得比我们预想的更正式了。
我们从225组申请者中邀请了大约20组进行当面面试,从中挑选了8组进行资助。他们是令人印象深刻的一群。第一批包括了reddit,还有贾斯汀·坎(Justin Kan)和埃米特·希尔(Emmett Shear),他们后来创立了Twitch;还有亚伦·斯沃茨(Aaron Swartz),他已经参与编写了RSS规范,几年后将为开放获取运动献身;以及萨姆·奥尔特曼(Sam Altman),他后来成为YC的第二任总裁。我认为第一批之所以如此优秀,并非完全是运气使然。你必须相当大胆,才会报名参加像“暑期创始人计划”这样奇怪的项目,而不是去微软或高盛这样正经的地方找份暑期工作。
给初创公司的投资条款,是基于我们与朱利安的交易(1万美元换10%股份)和罗伯特所说的麻省理工研究生暑期收入(6000美元)的结合。我们按每位创始人6000美元进行投资,典型的两位创始人组合就是1.2万美元,换取6%的股份。这应该是公平的,因为条件是我们自己当初接受交易的两倍好。而且,在那个异常炎热的第一个夏天,杰西卡还自掏腰包给创始人们送了免费的空调。[[16]]
很快,我意识到我们偶然发现了扩大初创企业融资规模的方法。批量资助初创公司对我们来说更方便,因为这意味着我们可以同时为许多初创公司做事,但成为批量中的一员对初创公司本身也更好。它解决了创始人面临的最大问题之一:孤立无援。现在你不仅有同事,而且这些同事理解你面临的问题,并能告诉你他们是如何解决的。
随着YC的成长,我们开始注意到规模化带来的其他优势。校友们形成了一个紧密的社区,致力于互相帮助,尤其是帮助当前的这批学员,因为他们记得自己也曾处于同样的境地。我们还注意到,这些初创公司开始互为客户。我们曾开玩笑地提到“YC国内生产总值”,但随着YC的发展,这越来越不像个玩笑。现在,许多初创公司的初始客户几乎完全来自同批次的伙伴。
我最初并没有打算让YC成为我的全职工作。我原本要做三件事:写代码、写文章、做YC。但随着YC的成长,我越来越兴奋,它开始占据我远超三分之一的精力。但在最初的几年里,我仍然能够兼顾其他事情。
2006年夏天,罗伯特和我开始开发新版本的Arc语言。这个版本运行速度相当快,因为它被编译成了Scheme。为了测试这个新的Arc,我用它编写了Hacker News。它最初是面向初创企业创始人的新闻聚合网站,名为“初创企业新闻”(Startup News),但几个月后,我就厌倦了整天只看关于初创企业的内容。而且,我们想要触达的并非现在的初创企业创始人,而是未来的创始人。所以,我把网站更名为Hacker News,话题也扩展为任何能激发人求知欲的内容。
HN无疑对YC有好处,但它也是我最大的压力来源。如果我只需要负责筛选和帮助创始人,生活会轻松得多。而这说明HN可能是个错误。工作中最大的压力来源,至少应该贴近工作的核心吧。而我却像一个跑马拉松时感到痛苦的人,不是因为奔跑的劳累,而是因为鞋子不合脚磨出了水泡。当我处理YC某个紧急问题时,大约有60%的几率与HN有关,而剩下40%的几率才关乎其他所有事情。[[17]]
除了HN,我还用Arc编写了YC所有的内部软件。但是,虽然我继续大量使用Arc进行开发,我却逐渐停止了对Arc本身的改进,部分原因是没时间,部分原因是既然有这么多基础设施依赖于它,再去折腾语言本身就没那么有吸引力了。所以,现在我的三个项目缩减成了两个:写文章和做YC。
YC与我做过的其他工作截然不同。不是我自己决定做什么,而是问题主动找上门来。每六个月就有一批新的初创公司,他们的问题,不管是哪种,都成了我们的问题。这是一份非常吸引人的工作,因为问题多种多样,而优秀的创始人又非常高效。如果你想在最短的时间内尽可能多地了解初创企业,再没有比这更好的方法了。
这份工作也有些我不喜欢的部分。比如联合创始人之间的纠纷,识破他人对我们的谎言,与虐待初创公司的人作斗争等等。但即使是不喜欢的部分,我也很努力去做。凯文·黑尔(Kevin Hale)曾说过一句关于公司的话,一直萦绕在我心头:“没有人比老板更努力。”他的意思既是描述性的,也是规范性的,而吓到我的正是后者。我希望YC变好,所以如果我努力的程度决定了所有人努力的上限,那我最好非常努力。
2010 年的某一天,当时他正在加州进行面试访问,罗伯特·莫里斯做了一件令人震惊的事:他主动给了我一个建议。我只记得他之前这么做过一次。那是在 Viaweb 的一天,我因肾结石痛得直不起腰,他建议最好由他带我去医院。要让 Rtm 主动提建议,就得是这种情况。所以我非常清楚地记得他的原话。“你知道,”他说,“你应该确保 Y Combinator 不是你做的最后一件酷事。”
当时我并不明白他的意思,但渐渐地我意识到他是在说:我该退出了。这建议似乎很奇怪,因为 YC 当时发展得很好。但如果有一件事比 Rtm 提建议更罕见,那就是 Rtm 犯错。所以这让我陷入了思考。确实,按照我当时的轨迹,YC 将会是我做的最后一件事,因为它占据了我越来越多的注意力。它已经吞噬了 Arc,并且正在吞噬我的文章。要么 YC 是我毕生的事业,要么我最终得离开。而它并不是,所以我得离开。
2012 年夏天,我母亲中风了,病因是结肠癌引起的血栓。中风破坏了她的平衡能力,她被送进了疗养院,但她非常想出来回到自己的家,我和姐姐决心帮她实现这个愿望。我常常飞往俄勒冈州去看她,在那些航班上我有大量时间思考。在其中的一次航班上,我意识到自己已经准备好把 YC 交给别人了。
我问杰西卡是否想当总裁,但她不想,所以我们决定尝试招募萨姆·奥特曼。我们和罗伯特、特雷弗谈了谈,一致同意要完成一次彻底的换班。在那之前,YC 一直由我们四人最初创办的原始有限责任公司控制。但我们希望 YC 能长久发展,而要实现这一点,它就不能由创始人掌控。所以如果萨姆同意,我们就让他重组 YC。罗伯特和我会退休,杰西卡和特雷弗则成为普通合伙人。
当我们问萨姆是否想当 YC 总裁时,他起初说不行。他想创办一家初创公司来制造核反应堆。但我坚持不懈,最终在 2013 年 10 月他同意了。我们决定让他从 2014 年冬季批次开始接手。在 2013 年剩下的时间里,我越来越多地把 YC 的运营交给萨姆,一方面是为了让他熟悉工作,另一方面是因为我专注于照顾母亲——她的癌症复发了。
她于 2014 年 1 月 15 日去世。我们早有预料,但真到了那一刻,依然令人难以承受。
我一直工作到三月份,帮助那批初创公司顺利度过 Demo Day,之后便几乎完全退出了。(我仍然会与校友以及从事我感兴趣项目的新初创公司交流,但那每周只花几个小时。)
接下来我该做什么?Rtm 的建议并未涉及这一点。我想做点完全不同的事情,所以我决定去画画。我想看看如果真的全身心投入,我能画得多好。于是在停止 YC 工作的第二天,我开始画画。我手生得很,花了一段时间才恢复状态,但至少它让我完全投入其中。[[18]]
2014 年剩余的大部分时间我都在画画。我以前从未能如此不受干扰地工作,我的画技也比以往更好了。虽然还不够好,但确实进步了。然后在十一月,正当我画到一半时,我突然失去了动力。在那之前,我一直好奇自己正在画的那幅画最终会是什么样子,但突然之间,完成它似乎变成了一件苦差事。于是我放下画笔,清洗了画笔,从那以后就再没画过。至少到目前为止是这样。
我意识到这听起来有点软弱。但注意力是一场零和博弈。如果你能选择做什么工作,而你选择了一个对你来说不是最好的(或至少是不错的那个)项目,那么它就在妨碍另一个更好的项目。而且到了 50 岁,瞎折腾是有机会成本的。
我又开始写文章了,并在接下来的几个月里写了一批新文章。我甚至写了几篇与初创公司无关的文章。然后在 2015 年 3 月,我重新开始研究 Lisp。
Lisp 的独特之处在于,它的核心是一种用自身编写解释器来定义的语言。它最初并不是作为普通意义上的编程语言而设计的。它意在成为一种计算的形式化模型,一种图灵机的替代品。如果你想用一种语言本身来为其编写解释器,那么你需要的最少预定义操作符集是什么?约翰·麦卡锡发明的(或者更准确地说,发现的)那个 Lisp,正是对这个问题的回答。[[19]]
麦卡锡起初并没有意识到这种 Lisp 甚至可以用来给计算机编程,直到他的研究生史蒂夫·拉塞尔提出了这个建议。拉塞尔将麦卡锡的解释器翻译成了 IBM 704 的机器语言,从那时起,Lisp 也开始成为一种普通意义上的编程语言。但它作为计算模型的起源赋予了它其他语言无法比拟的力量和优雅。正是这一点在大学时吸引了我,尽管我当时并不理解其中缘由。
麦卡锡 1960 年的 Lisp 所做的仅仅是解释 Lisp 表达式。它缺少了许多你在编程语言中想要的东西。所以这些必须被添加进去,而当它们被添加时,并没有使用麦卡锡最初那种公理化的方法。这在当时是不可行的。麦卡锡是通过手工模拟程序执行来测试他的解释器的。但那已经接近了可以那样测试的解释器的极限——事实上,其中有一个麦卡锡忽略的 bug。要测试更复杂的解释器,你就得运行它,而当时的计算机还不够强大。
不过现在它们够强大了。现在你可以继续使用麦卡锡的公理化方法,直到定义出一种完整的编程语言。而且,只要你对麦卡锡的 Lisp 所做的每一次修改都是一种保持可发现性的变换,那么原则上,你最终就能得到一种具有这种品质的完整语言。当然,做起来比说起来难得多,但如果原则上可能,为什么不去试试呢?所以我决定尝试一下。这花了四年时间,从 2015 年 3 月 26 日到 2019 年 10 月 12 日。幸运的是,我有一个精确定义的目标,否则很难坚持那么久。
我用 Arc 语言编写了这种新的 Lisp,名为 Bel,并且它本身是用 Lisp 写的。这听起来可能自相矛盾,但这表明了我为了让这东西能工作而不得不采用的各种巧妙手段。通过一组极其 hack 的集合,我设法做出了某种足够接近用自身编写的解释器、并且实际上可以运行的东西。它不快,但足以用来测试。
在大部分时间里,我不得不禁止自己写文章,否则我永远也完不成。2015 年底,我花了 3 个月写文章,等我回头继续做 Bel 时,我几乎看不懂那些代码了。这与其说是代码写得不好,不如说是问题本身太错综复杂。当你在做一个用自身编写的解释器时,很难追踪在哪个层次发生了什么,而且错误到你手上时可能几乎就像被加密了一样。
所以我说 Bel 完成之前不再写文章。但在工作期间我几乎没告诉什么人关于 Bel 的事。所以多年来,外界一定以为我什么都没做,而实际上我在比以往任何工作都更努力地工作。偶尔在花了几个小时与某个可怕的 bug 搏斗之后,我会刷刷 Twitter 或 HN,看到有人问:“保罗·格雷厄姆还在写代码吗?”
研究 Bel 很艰难,但令人满足。我如此专注地投入,以至于在任何时候我脑子里都装着相当大一部分代码,并且能在脑中继续编写。我记得 2015 年一个阳光明媚的日子,我带儿子们去海边,看着他们在潮池里玩耍时,同时思考着如何解决某个涉及 continuation 的问题。那感觉就像我活对了人生。我记得这件事,是因为我有点沮丧地发现这种感觉是多么新奇。好消息是,在接下来的几年里,我拥有了更多这样的时刻。
2016 年夏天,我们搬到了英国。我们希望孩子们能体验一下在另一个国家生活的感觉,而我出生时就是英国公民,所以这似乎是个理所当然的选择。我们本打算只待一年,但我们太喜欢那里了,以至于现在仍住在那里。所以 Bel 的大部分都是在英国写的。
2019 年秋天,Bel 终于完成了。和麦卡锡最初的 Lisp 一样,它是一个规范而非实现,尽管和麦卡锡的 Lisp 一样,它是一个用代码表达的规范。
既然我又可以写文章了,我写了不少关于积累下来的话题的文章。整个 2020 年我都在写文章,但我也开始思考其他可以做的事情。我该如何选择做什么?好吧,过去我是如何选择做什么工作的?我为自己写了一篇文章来回答这个问题,我惊讶地发现答案竟然如此冗长而杂乱。如果这连我这个亲历者都感到惊讶,那么我想或许别人也会觉得有趣,并且对那些生活同样杂乱的人有所鼓励。所以我写了一个更详细的版本供他人阅读,而这就是它的最后一句话。
注释
[[1]] 我的经历跳过了计算机进化中的一个步骤:带交互式操作系统 的分时机器。我从批处理直接跳到微型计算机,这使得微型计算机显得更加激动人心。
[[2]] 意大利语中抽象概念的词汇几乎总能通过其英语同源词预测出来(除了像 polluzione 这样偶尔的陷阱)。不同的往往是日常用语。所以如果你把大量抽象概念用几个简单动词串起来,你就能用一点点意大利语走遍天下。
[[3]] 我住在圣费利切广场 4 号,所以我去美术学院的路是沿着老佛罗伦萨的中轴线直走:经过皮蒂宫,过桥,经过圣米迦勒教堂,穿过大教堂和洗礼堂之间,然后沿着里卡索利街上到圣马可广场。我见过佛罗伦萨街头各种状态,从空旷黑暗的冬夜,到炎热难耐、街上挤满游客的夏日。
[[4]] 当然,如果你想的话,你也可以像画静物一样画人,只要他们愿意。这种肖像画可以说是静物画的巅峰,尽管长时间坐着确实容易让被画者露出痛苦的表情。
[[5]] Interleaf 是许多拥有聪明人才、打造了令人印象深刻的技术、却最终被摩尔定律碾压的公司之一。在 1990 年代,通用(即英特尔)处理器性能的指数级增长像推土机一样碾过了高端、专用目的的硬件和软件公司。
[[6]] 罗德岛设计学院那些追求招牌风格的学生并不特别唯利是图。在艺术界,金钱和酷是紧密相连的。任何昂贵的东西都会被看作酷,而任何被视为酷的东西很快也会变得同样昂贵。
[[7]] 严格来说,那间公寓不是租金管制而是租金稳定,但这只有纽约人才会知道或在意这种区别。重要的是它真的很便宜,不到市场价的一半。
[[8]] 大多数软件完成后就可以上线。但当软件是一个在线商店构建器,并且你托管着这些商店时,如果你还没有任何用户,这个事实将会非常明显。所以在公开上线之前,我们必须先私下启动,也就是招募一组初始用户,并确保他们的商店看起来像样。
[[9]] 我们在 Viaweb 里有一个代码编辑器,供用户定义自己的页面风格。他们不知道的是,他们实际上是在编辑底层的 Lisp 表达式。但这并不是一个应用编辑器,因为代码是在商家网站生成时运行的,而不是在购物者访问时运行的。
[[10]] 这是如今已成为常见体验的首次实例,接下来的事情也是如此:当我阅读评论时,发现满屏都是愤怒的读者。我怎能声称Lisp优于其他语言?它们不都是图灵完备的吗?有时,人们看到我文章引发的反响,会告诉我他们为我感到难过,但我回答他们时毫不夸张:从一开始,事情就一直是这样。这属于写作的固有风险。一篇文章必须告诉读者他们未知之事,而有些人并不喜欢被告知这些。
[[11]] 九十年代,人们当然在网上发布了许多内容,但将内容放到网上与在线出版并非同一回事。在线出版意味着你将网络版本视为(至少是一个)主要版本。
[[12]] 这里有一个普遍的经验教训,我们在Y Combinator的经历同样印证了这一点:即使在导致这些限制的客观条件早已消失之后,习俗仍会长期束缚着你。风险投资的传统惯例,曾与关于文章发表的习俗一样,基于真实的限制条件。初创企业曾经创办成本高昂,相应地也较为稀少。如今它们可以变得廉价且普遍,但风投们的习俗仍反映着旧世界,就像关于写文章的习俗仍反映着印刷时代的限制一样。
这反过来意味着,思想独立的人(即较少受习俗影响的人)在快速变化影响下的领域中将拥有优势(在这些领域,习俗更可能过时)。
不过,这里有一个有趣的观点:你无法总是预测哪些领域会受到快速变化的影响。显然软件和风险投资会受到影响,但谁能预料到文章写作也会如此呢?
[[13]] Y Combinator最初并非此名。起初我们叫剑桥种子(Cambridge Seed)。但我们不想要一个带地域色彩的名字,以防硅谷有人模仿,于是我们以lambda演算中最酷的技巧之一——Y组合子——来重新命名自己。
我选择橙色作为我们的品牌色,一方面因为它是最温暖的色调,另一方面因为没有风投使用它。2005年,所有风投都使用庄重的颜色,如栗色、海军蓝和森林绿,因为他们试图吸引的是有限合伙人,而非创始人。YC的标志本身是个内部笑话:Viaweb的标志曾是一个红底白色的V,所以我把YC的标志设计成了橙底白色的Y。
[[14]] 从2009年开始的几年里,YC确实转型为了一个基金,因为它发展得太大,我再也无法个人出资支持。但在Heroku被收购后,我们有了足够的资金,便重新回到了自筹资金的状态。
[[15]] 我从不喜欢“项目流”这个术语,因为它暗示在任何特定时间点,新初创企业的数量是固定的。这不仅与事实相悖,而且YC的使命恰恰就是要推翻这种观念,促使那些原本不会存在的初创企业得以创立。
[[16]] 她报告说,它们形状各异、大小不一,因为当时空调抢购一空,她只能买到什么算什么,但每一台都比她现在能搬动的要重。
[[17]] HN面临的另一个问题是,当你既写文章又运营论坛时,会出现一个奇怪的边缘情况。当你运营一个论坛时,人们默认你会看到所有对话,至少是涉及你的所有对话。而当你写文章时,人们会在论坛上对你文章发表极具想象力的曲解。单独来看,这两种现象令人厌烦但尚可忍受,但两者结合则是灾难性的。你不得不回应那些曲解,因为默认你就在对话中意味着,不对任何获得足够高投票的曲解做出回应,就会被解读为默认其正确。但这反过来又鼓励了更多曲解;任何想找你挑衅的人都会感觉到,现在正是他们的机会。
[[18]] 离开YC最糟糕的事情是不能再与Jessica共事了。我们相识以来几乎一直在共同经营YC,我们既未曾试图也不希望将工作与个人生活分开,因此离开就像是拔起一棵根深蒂固的树。
[[19]] 要更精确地理解“发明”与“发现”这两个概念的区别,一种方式是讨论外星人。例如,任何足够先进的 alien 文明肯定都会知道毕达哥拉斯定理。我同样相信,尽管不那么确定,他们也会知道麦卡锡1960年论文中的Lisp语言。
但若如此,我们就没有理由认为这就是他们可能知晓的语言的极限。想必外星人也需要数字、错误处理及输入输出吧。因此,似乎很可能存在至少一条从麦卡锡的Lisp出发的路径,沿此路径,“被发现性”得以保持。