我做过的事
上大学之前,除了学校之外,我主要做的两件事是写作和编程。我写的不是议论文。我写的是当时入门写作者理应写的东西,恐怕现在依然如此:短篇小说。我的小说糟糕透顶。几乎没有情节,只有情感强烈的角色,我还以为这样就显得深刻。
我最早尝试写的程序是在我们学区用来做当时所谓“数据处理”的 IBM 1401 上。那是在九年级,所以我当时13、14岁。学区的这台1401碰巧就放在我们初中的地下室,我和我的朋友 Rich Draves(里奇·德雷夫斯)获得了使用许可。那下面就像一个迷你邦德反派的巢穴,摆满了各种看起来像外星机器的设备——CPU、磁盘驱动器、打印机、读卡器——全都架在架空地板上,在明亮的荧光灯下。
我们用的语言是 Fortran 的一个早期版本。你必须把程序打在穿孔卡片上,然后把卡片叠起来放进读卡器,按下一个按钮把程序载入内存并运行。结果通常是在那台声音震天响的打印机上打印出点东西。
我对1401感到困惑。我不知道该用它做什么。回想起来,我也确实没什么能做的。程序唯一的输入形式是存储在穿孔卡片上的数据,而我没有任何存储在穿孔卡片上的数据。唯一的其他选择就是做一些不依赖任何输入的事,比如计算圆周率的近似值,但我的数学知识不足以做出任何有趣的东西。所以我毫不奇怪自己记不起写过什么程序,因为它们肯定没做什么。我最清晰的记忆,是得知程序有可能不会终止的那一刻——我的一个程序就没停下来。在一台没有分时系统的机器上,这既是技术错误,也是社交错误,数据中心经理的表情就说明了一切。
有了微型计算机,一切都变了。现在你可以在面前桌上就放一台计算机,它能在运行时响应你的按键,而不只是处理完一叠穿孔卡片就停下来。[1]
我的朋友中第一个拥有微型计算机的人是自己亲手组装的。那是 Heathkit 作为套件出售的。我至今清晰地记得,看着他坐在计算机前把程序直接敲进去时,我感到的钦佩与嫉妒。
那时候计算机很贵,我缠着父亲好几年,他才在大约1980年给我买了一台 TRS-80。当时的黄金标准是 Apple II,但 TRS-80 也够用了。正是在那时我才真正开始编程。我写了些简单的小游戏、一个预测我的模型火箭能飞多高的程序,以及一个文字处理器,我父亲用它至少写了一本书。内存里只能放大约两页文本,所以他一次写两页然后打印出来,但这已经比打字机好太多了。
虽然我喜欢编程,但我没打算在大学里学它。大学里我打算学哲学,那听起来要强大得多。在我天真的高中生眼里,哲学似乎是对终极真理的研究,相比之下,其他领域研究的东西不过是些领域知识。而我到大学后发现,其他领域占据了思想空间的绝大部分,留给这些所谓终极真理的地方所剩无几。留给哲学的似乎只有那些在其他领域的人看来可以安全忽略的边缘情况。
我18岁时还无法用语言表达这些。当时我只知道自己一直在修哲学课,而它们一直很无聊。于是我决定转去学 AI。
在1980年代中期,AI 正当风潮,但有两件事尤其让我想从事它:一部 Heinlein(海因莱因)的小说 The Moon is a Harsh Mistress(《月亮是位严苛的女士》),里面有一个叫 Mike 的智能计算机,还有一部 PBS 纪录片,片中 Terry Winograd(特里·威诺格拉德)在使用 SHRDLU。我没有重读过《月亮是位严苛的女士》,所以不知道它现在读起来如何,但在当时我完全被它带进了那个世界。似乎拥有 Mike 只是时间问题,而当我看到威诺格拉德使用 SHRDLU 时,似乎那个时间最多也就几年了。你所要做的就是教会 SHRDLU 更多的词。
当时 Cornell 还没有 AI 的课程,连研究生课程都没有,所以我开始自学。这意味着要学 Lisp,因为在当时 Lisp 被视为 AI 的语言。当时常用的编程语言都相当原始,程序员的观念也相应地原始。Cornell 默认的语言是一种类似 Pascal 的语言,叫 PL/I,其他地方的情况也差不多。学习 Lisp 如此迅速地扩展了我对程序的概念,以至于过了好几年我才开始感觉到新边界在哪里。这才对头;这才是我期待大学能带来的。虽然它不是发生在课堂上,本该如此,但那也没关系。接下来的两年里我势头正劲。我知道自己要做什么了。
我的本科毕业论文是逆向重做了 SHRDLU。天哪,我太喜欢做那个程序了。那是一段令人愉悦的代码,但更让人兴奋的是我的信念——现在难以想象,但在1985年并不独特——即它已经在攀登智能的低坡。
我加入了 Cornell 的一个不用选专业的项目。你可以上任何你喜欢的课,在学位上写任何你喜欢的内容。我当然选择了“Artificial Intelligence”。当我拿到实体文凭时,沮丧地发现引号也被印了上去,让它看起来像是带讽刺意味的引号。当时这让我很困扰,但现在看来却讽刺地准确,原因我马上就会发现。
我申请了三所研究生院:MIT 和 Yale,当时以 AI 闻名,还有 Harvard,因为里奇·德雷夫斯在那里,我去参观过,而且那里还有 Bill Woods(比尔·伍兹),他发明了我那个 SHRDLU 克隆版所用的那种解析器。只有 Harvard 录取了我,所以我就去了那里。
我不记得那一刻是什么时候发生的,甚至不确定是否有那样一个具体的时刻,但在读研究生第一年,我意识到当时所实践的 AI 是一场骗局。我的意思是指那种 AI:程序被告知“狗坐在椅子上”,然后把它翻译成某种形式化表示并加入到它所知道的事情列表中。
这些程序真正表明的是,自然语言中有一个子集是形式语言。但只是很小的一个真子集。显然,它们能做的与真正理解自然语言之间存在一条无法跨越的鸿沟。事实并非只是给 SHRDLU 多教几个词那么简单。那种用显式数据结构来表示概念的 AI 路子是行不通的。它的缺陷一如既往地制造了大量机会,让人们写论文去打各种补丁,但它永远无法让我们得到 Mike。
于是我环顾四周,看看能从我计划的废墟中挽救些什么,还有 Lisp。我从经验中知道,Lisp 本身就很有趣,并不仅仅因为它与 AI 的关联,尽管当时人们关注它主要是因为这个。所以我决定专注于 Lisp。事实上,我决定写一本关于 Lisp 黑客技术的书。回想起来,我开始写那本书时对 Lisp 黑客技术懂得少得可怕。但没有什么比写一本书更能帮助你学习它了。那本书 On Lisp(《On Lisp》)直到1993年才出版,但其中大部分是在研究生院写的。
计算机科学是理论和系统两半之间一种不稳定的联盟。搞理论的人证明东西,搞系统的人建造东西。我想建造东西。我对理论抱有充分的敬意——事实上,我暗暗怀疑它是两半中更令人钦佩的那一半——但建造东西似乎要令人兴奋得多。
但系统工作的问题在于它无法持久。你今天写的任何程序,无论多好,充其量几十年后就会过时。人们或许会在脚注中提到你的软件,但没有人会真正使用它。而且,到那时它会显得非常薄弱。只有对领域历史有了解的人才会意识到,它在当时曾是优秀的。
计算机实验室里一度有一些多余的 Xerox Dandelion。任何想拿一台来玩的人都可以拿。我曾短暂地动心,但按现在的标准它们慢得要命;要它有什么用?其他人也不想要,于是它们就被处理掉了。那就是系统工作的下场。
我不仅想建造东西,还想建造能持久的东西。
在这种不满的状态下,我在1988年去 CMU 看望在那里读研究生的里奇·德雷夫斯。有一天我去参观卡内基学院,那是我小时候经常去的地方。在看一幅画时,我意识到了一件看似显而易见、却让我大吃一惊的事。那里,就在墙上,挂着一件你可以做出并能持久的东西。绘画不会过时。其中一些最好的作品已有数百年历史。
而且,这还是可以谋生的手艺。当然,不如写软件那么容易,但我想,如果你真的勤奋、生活得非常节俭,要赚到足以生存的钱一定是可能的。而作为艺术家,你可以真正独立。你不会有老板,甚至不需要去申请研究经费。
我一直喜欢看画。我能画吗?我毫无头绪。我从未想过这甚至是可能的。我在理智上知道人们会创作艺术——它不是凭空出现的——但仿佛创作艺术的人是另一个物种。他们要么生活在很久以前,要么是在《Life》杂志人物特写中做着奇怪事情的神秘天才。真的能够创作艺术——把那个动词放在那个名词前面——这想法本身就近乎奇迹。
那年秋天,我开始在 Harvard 上艺术课。研究生可以在任何系选课,而我的导师 Tom Cheatham(汤姆·奇特姆)非常随和。如果他知道我在上那些奇怪的课,他也从未说过什么。
于是我成了一个计算机科学博士项目里的学生,却打算当艺术家,同时又真心热爱 Lisp 黑客技术并埋头写着《On Lisp》。换句话说,像许多研究生一样,我精力充沛地投入在多个与我的论文无关的项目上。
我看不到摆脱这种处境的办法。我不想从研究生院退学,但不然还能怎么出来?我记得当我的朋友 Robert Morris(罗伯特·莫里斯)因编写了1988年的互联网蠕虫而被 Cornell 开除时,我还嫉妒他找到了如此壮观的退学方式。
然后在1990年4月的一天,墙上出现了一道裂缝。我碰到了奇特姆教授,他问我是否已经进展到可以在当年6月毕业。我论文一个字都还没写,但在我一生中最快的思考中,我决定试试在截止日期前剩下的大约5周内写一篇,尽可能复用《On Lisp》里的部分,并毫无可察觉的迟疑地回答:“是的,我想可以。几天内我会给你点东西看。”
我选了 continuations 的应用作为题目。回想起来,我本该写关于宏和嵌入式语言的。那里有一整个几乎未被探索的世界。但我当时只想离开研究生院,而我那篇匆匆写就的论文勉强够用了。
同时我在申请艺术学校。我申请了两所:美国的 RISD,以及佛罗伦萨的 Accademia di Belli Arti,因为它是最古老的艺术学校,我想它一定很好。RISD 录取了我,而 Accademia 杳无音讯,所以我去了 Providence。
我申请的是 RISD 的 BFA 项目,这实际上意味着我要再上一次大学。这听起来没那么奇怪,因为我当时才25岁,而且艺术学校里有各种年龄的人。RISD 把我算作转学的二年级学生,并要求我夏天完成基础课。基础课是指每个人都必须上的基本科目课,如素描、色彩和设计。
临近夏末,我收到一个大大的惊喜:一封来自 Accademia 的信,因为他们寄到了 Cambridge England 而不是 Cambridge Massachusetts 而被耽搁了,邀请我那年秋天去佛罗伦萨参加入学考试。这时离考试只有几周了。我那位好心的房东让我把东西放在她的阁楼里。我在研究生院做咨询工作时攒了一些钱;如果生活节俭,大概够撑一年。现在我所要做的就是学意大利语。
只有 stranieri(外国人)才要参加这个入学考试。回想起来,这很可能是一种排除他们的方式,因为被“在佛罗伦萨学艺术”这一想法吸引来的 stranieri 太多,否则意大利学生就会在人数上处于劣势。经过夏天在 RISD 的基础课训练,我的绘画和素描还算过得去,但我至今仍不知道自己是怎么通过笔试的。我记得我在论述题中写了关于 Cezanne(塞尚)的内容,并且尽可能把论述的智力水平拔高,以充分利用我有限的词汇量。[2]
我才讲到25岁,就已经出现了如此明显的模式。我又一次即将进入某所庄严的学府,希望学习某个声名显赫的学科,却又一次即将失望。Accademia 绘画系的学生和老师都是你能想象到的最友善的人,但他们早已达成了一种安排:学生不要求老师教任何东西,作为交换,老师也不要求学生学任何东西。同时,所有人都表面上遵守着19世纪画室的惯例。我们真的有一台那种小炉子,用柴火烧的,你在19世纪的画室画中看到的那种,裸体模特尽可能靠近它坐着以免被冻着。除了我,几乎没有其他人画她。其余学生把时间花在聊天或偶尔模仿他们在美国艺术杂志上看到的东西上。
后来发现我们的模特就住在我家楼下那条街上。她靠模特工作和为当地古董商做赝品谋生。她会从书中临摹一幅不为人知的古画,然后他会把赝品弄旧,使其看起来像真的。[3]
在 Accademia 当学生时,我开始在卧室里晚上画静物。这些画很小,因为房间很小,也因为我用的是剩下的零碎画布,那是我当时唯一买得起的。画静物与画人不同,因为顾名思义,对象不会动。人一次最多只能坐大约15分钟,而且坐得也不怎么安稳。所以画人的传统做法是先知道怎么画一个通用的人,然后再根据你要画的具体对象加以修改。而静物,如果你愿意,你可以逐像素地临摹你所看到的。当然,你不想止步于此,否则就只得到照相般的准确度,而静物有趣之处在于它经过了大脑的过滤。你想强调那些视觉线索,例如,告诉你颜色在某处突然变化是因为那是物体的边缘。通过微妙地强调这些,你可以画出比照片更逼真的画,不仅在某种隐喻意义上,而且在严格的信息论意义上。[4]
我喜欢画静物,因为我对自己所看到的东西感到好奇。在日常生活中,我们并没有有意识地注意到我们看到的大部分东西。大多数视觉感知由低层次过程处理,它们只会告诉你的大脑“那是一滴水”,而不会告诉你最亮和最暗的点在哪里,或“那是一丛灌木”,而不会告诉你每片叶子的形状和位置。这是大脑的特点,不是缺陷。在日常生活中,注意到每丛灌木上的每片叶子会让人分心。但当你必须画某样东西时,你就必须更仔细地观察,而当你这样做时,有很多东西可看。即使花上几天去画人们通常视为理所当然的东西之后,你仍然能不断发现新东西,就像花几天去写一篇关于人们通常视为理所当然之事的文章一样。
这不是唯一的画法。我甚至不100%确定这是个好画法。但它看起来是个足够好的尝试,值得一试。
我们的老师 Ulivi 教授是个好人。他能看出我很用功,给了我一个好分数,写在每个学生都有的类似护照的本子上。但 Accademia 除了意大利语之外没教我任何东西,而且我的钱也快花光了,所以第一年结束后我就回了美国。
我想回 RISD,但我当时已经身无分文,而 RISD 非常贵,所以我决定先工作一年,然后第二年秋天再回去。我在一家叫 Interleaf 的公司找到了一份工作,这家公司做创建文档的软件。你是说像 Microsoft Word 那样的?没错。那正是我学到低端软件往往会吞噬高端软件的地方。但 Interleaf 还有几年可活。[5]
Interleaf 做了一件相当大胆的事。受 Emacs 启发,他们添加了一种脚本语言,甚至让这种脚本语言成为 Lisp 的一种方言。现在他们想要一个 Lisp 黑客来用它写东西。这是我 closest 的一份正常工作,在此我向我的老板和同事道歉,因为我是个糟糕的员工。他们的 Lisp 只是巨大 C 蛋糕上最薄的一层糖霜,而我既不懂 C 也不想学,所以我从未理解软件的大部分。而且我极不负责。那时一份编程工作意味着每天在特定的工作时间内到岗。这在我看来很不自然,而在这一点上,世界其他地方正在逐渐向我的看法靠拢,但在当时这造成了很多摩擦。临近年底,我大部分时间都在偷偷写《On Lisp》,那时我已经拿到了出版合同。
好的一面是我赚了很多钱,尤其是按艺术学生的标准。在佛罗伦萨,付完我那份房租后,我剩下的预算每天只有7美元。现在我每小时赚的钱是那时的4倍多,即使我只是在开会。靠着节俭生活,我不仅攒够了回 RISD 的钱,还还清了大学贷款。
我在 Interleaf 学到了一些有用的东西,尽管大多是关于不要做什么。我学到技术公司最好由产品人员而非销售人员来领导(尽管销售是一项真正的技能,擅长的人真的很擅长),当代码被太多人编辑时会产生 bug,便宜的办公空间如果令人压抑就不是什么好交易,计划好的会议不如走廊里的交谈,由官僚的大客户带来的钱是危险的,而且传统的办公时间与最佳黑客时间、传统的办公室与最佳黑客地点之间几乎没有重叠。
但我学到的最重要的一点,也是我在 Viaweb 和 Y Combinator 中都用到的,就是低端会吞噬高端:成为“入门级”选择是好事,尽管那会不那么有声望,因为如果你不是,总会有别人去做,并把你挤到天花板上。这反过来意味着声望是一个危险信号。
第二年秋天我离开回去上 RISD 时,我安排为那个为客户做项目的团队做自由职业,这就是我接下来几年赖以生存的方式。后来我回去为一个项目做访问时,有人告诉我一种叫 HTML 的新东西,据他描述,它是 SGML 的一个衍生品。标记语言爱好者在 Interleaf 是职业风险,我没理会他,但这个叫 HTML 的东西后来成了我生活中很重要的一部分。
1992年秋天,我搬回 Providence 继续在 RISD 学习。基础课只是入门内容,而 Accademia 曾是一个(非常文明的)笑话。现在我要看看真正的艺术学校是什么样子。但唉,它和 Accademia 并无太大区别。组织得更好,当然,也贵得多,但现在越来越清楚,艺术学校与艺术的关系并不像医学院与医学的关系。至少绘画系不是。我隔壁邻居所属的纺织系似乎相当严格。插画和建筑无疑也是如此。但绘画已经是“后严格”了。绘画系的学生被期望去表达自我,这对那些更世故的学生来说,意味着要设法炮制出某种独特的标志性风格。
标志性风格在视觉上相当于演艺界所说的“schtick”:某种能立即让作品被认出是你而非他人的东西。例如,当你看到一幅看起来像某种卡通的画,你就知道那是 Roy Lichtenstein(罗伊·利希滕斯坦)的。所以当你在一间对冲基金经理的公寓里看到一幅这样的大画挂着,你就知道他花了数百万美元买下它。艺术家拥有标志性风格并不总是出于这个原因,但买家为这类作品付高价通常是这个原因。[6]
也有很多认真的学生:那些在高中时就“会画画”的孩子,现在来到了据称是全国最好的艺术学校,想学会画得更好。他们往往对在 RISD 发现的一切感到困惑和沮丧,但他们还是坚持了下来,因为画画就是他们所做的事。我不是高中时就会画画的孩子之一,但在 RISD,我肯定更接近他们的部落,而不是那些寻求标志性风格的部落。
我在 RISD 上的一门色彩课中学到了很多,但除此之外我基本上是在自学画画,而这我完全可以免费做。所以在1993年我退学了。我在 Providence 逗留了一段时间,然后我的大学朋友 Nancy Parmet(南希·帕梅特)帮了我一个大忙。她母亲在纽约拥有一栋楼里的一套租金管制公寓正要空出来。我想要吗?它并不比我现在住的地方贵多少,而纽约据说是艺术家聚集的地方。所以,是的,我想要![7]
Asterix 漫画开头会拉近镜头,聚焦在罗马高卢一个未被罗马人控制的微小角落。你也可以在纽约市地图上做类似的事:如果你放大到上东区,有一个不富裕的微小角落,至少在1993年是如此。它叫 Yorkville,那是我新的家。现在我是一名纽约艺术家——严格意义上的,在纽约生活并画画的人。
我担心钱,因为我能感觉到 Interleaf 正在走下坡路。自由职业的 Lisp 黑客工作非常稀少,而我不想用另一种语言编程,那在当时如果幸运的话就意味着要用 C++。所以,凭着我对财务机会无可挑剔的嗅觉,我决定再写一本关于 Lisp 的书。这会是一本通俗的书,那种可以用作教材的书。我想象着自己靠版税节俭地生活,把所有时间都花在画画上。(这本书 ANSI Common Lisp(《ANSI Common Lisp》)封面上的画,就是我那段时间画的。)
对我来说,纽约最好的事是 Idelle Weber(艾黛尔·韦伯)和 Julian Weber(朱利安·韦伯)的存在。艾黛尔·韦伯是一位画家,早期的照相写实主义者之一,我在 Harvard 上过她的绘画课。我从未见过比她更受学生爱戴的老师。大量的 former 学生都与她保持联系,包括我。搬到纽约后,我成了她事实上的工作室助理。
她喜欢在4到5英尺见方的大方形画布上作画。1994年末的一天,当我在为其中一块巨幅画布绷框时,收音机里在讲一位著名的基金经理。他并不比我大多少,却超级富有。突然一个念头闪过:我为什么不去变富呢?那样我就能做任何我想做的事了。
与此同时,我越来越多地听到一种叫万维网的新东西。Robert Morris(罗伯特·莫里斯)在我去 Cambridge 看他时向我展示了它,那时他正在 Harvard 读研究生。在我看来,网络将会是一件大事。我曾见过图形用户界面对微型计算机普及所起的作用。在我看来,网络会对互联网做同样的事。
如果我想致富,这里就是下一班离站的列车。这部分我猜对了。我猜错的是主意。我决定我们应该创办一家把画廊放到网上的公司。老实说,在读过那么多 Y Combinator 的申请后,这个想法算不上史上最糟的创业点子,但也差不多了。画廊不想上网,时髦的画廊至今依然不想。那不是他们销售的方式。我写了一些为画廊生成网站的软件,罗伯特写了一些调整图片大小和搭建 http 服务器来提供页面的软件。然后我们试图签下画廊。要说这是一笔艰难的销售都是轻描淡写。连免费送都难。少数几家画廊让我们免费为他们做了网站,但没有一家付钱。
然后一些网上商店开始出现,我意识到除了订购按钮之外,它们和我们为画廊生成的网站一模一样。这个听起来很厉害的叫“互联网店面”的东西,正是我们已经知道如何构建的东西。
所以在1995年夏天,在我向出版社提交了《ANSI Common Lisp》的定稿后,我们开始尝试编写构建网上商店的软件。起初这将是普通的桌面软件,那在当时意味着 Windows 软件。那是一个令人不安的前景,因为我们俩都不知道怎么写 Windows 软件,也不想学。我们生活在 Unix 的世界里。但我们决定至少试试在 Unix 上写一个商店构建器的原型。罗伯特写了一个购物车,我用 Lisp 写了一个新的商店站点生成器——当然是用 Lisp。
我们在 Cambridge 罗伯特的公寓里工作。他的室友有大段时间不在,那段时间我得以睡在他的房间里。不知为何那里没有床架也没有床单,只有一张放在地板上的床垫。一天早上,当我躺在这张床垫上时,一个想法让我像大写字母 L 一样坐了起来。如果我们在服务器上运行软件,让用户通过点击链接来控制它,会怎样?那样我们就永远不必为用户的计算机编写任何要运行的东西了。我们可以在同一台服务器上生成站点并提供服务。用户除了浏览器什么都不需要。
这种软件,现在被称为 web app,当时还很常见,但当时甚至不清楚它是否可能。为了弄清楚,我们决定试着做一个可以通过浏览器控制的商店构建器版本。几天后,在8月12日,我们做出了一个能用的版本。UI 糟糕透顶,但它证明了你可以通过浏览器构建整个商店,无需任何客户端软件,也无需在服务器的命令行中输入任何东西。
现在我们觉得我们真的找到了方向。我对整整新一代以这种方式工作的软件产生了憧憬。你将不再需要版本,或移植,或那些废话。在 Interleaf 曾有一个叫 Release Engineering 的组,人数似乎至少和实际写软件的组一样多。现在你可以直接在服务器上更新软件。
我们创办了一家新公司,叫 Viaweb,因为我们的软件 via the web 工作,我们从艾黛尔的丈夫朱利安那里获得了1万美元的种子资金。作为回报,加上他做了最初的法律工作并提供商业建议,我们给了他公司10%的股份。十年后,这笔交易成了 Y Combinator 的模板。我们知道创始人需要这样的东西,因为我们自己也曾需要。
在这个阶段,我的净资产是负的,因为我在银行里大约有一千美元,却被政府税收所抵消的债务超过了这个数。(我有 diligently 按比例留出从 Interleaf 做咨询赚来的钱该缴的税吗?我没有。)所以虽然罗伯特有他的研究生津贴,我需要那笔种子资金来维持生活。
我们原本希望在9月发布,但随着工作的推进,我们对软件的野心越来越大。最终我们设法构建了一个所见即所得的站点构建器,意思是当你在创建页面时,它们看起来与之后生成的静态页面一模一样,只不过链接不再指向静态页面,而是指向存储在服务器上哈希表中的闭包。
学过艺术是有帮助的,因为在线商店构建器的主要目标是让用户看起来合法,而看起来合法的关键是高制作水准。如果你把页面布局、字体和颜色做对,你就能让一个在卧室里开店的人看起来比大公司更合法。
(如果你好奇为什么我的网站看起来如此过时,那是因为它仍然是用这个软件做的。在今天它可能看起来很笨拙,但在1996年它可是时髦的极致。)
9月,罗伯特反抗了。“我们已经做这个做了一个月,”他说,“还没做完。”这在事后看来很有趣,因为他之后还会继续做将近3年。但我决定招募更多程序员也许是明智的,我问罗伯特和他一起在读研究生的人中谁真的很厉害。他推荐了 Trevor Blackwell(特雷弗·布莱克威尔),起初这让我惊讶,因为那时我对特雷弗的主要印象是他那个把生活中一切都归结为一叠随身携带的索引卡的计划。但 Rtm 一如既往是对的。特雷弗被证明是一个极其高效的黑客。
和罗伯特与特雷弗一起工作非常愉快。他们是我认识的最有独立思想的两个人,而且方式完全不同。如果你能看到 Rtm 的大脑内部,它会像一座殖民时期新英格兰的教堂,而如果你能看到特雷弗的内部,它会像奥地利洛可可最过度的那种。
我们在1996年1月开业,拥有6家商店。幸好我们等了几个月,因为虽然我们担心已经迟了,但实际上我们几乎致命地早了。当时媒体上有很多关于电子商务的讨论,但实际上想要网上商店的人并不多。[8]
软件主要有三部分:编辑器,人们用来构建站点,由我写的;购物车,由罗伯特写的;以及管理器,负责跟踪订单和统计数据,由特雷弗写的。在当时,编辑器是最好的通用站点构建器之一。我保持代码紧凑,而且除了与罗伯特和特雷弗的代码集成外不必与其他软件集成,所以做起来非常愉快。如果我只需要做这个软件,接下来的3年将是我一生中最轻松的3年。不幸的是,我不得不做更多事,全都是我比编程更不擅长的事,而接下来的3年反而成了最有压力的。
在90年代后半段,有很多初创公司在做电子商务软件。我们决心要做 Microsoft Word,而不是 Interleaf。这意味着要易于使用且便宜。幸好我们很穷,因为这导致我们把 Viaweb 定价得比我们意识到的还要便宜。我们对小商店每月收100美元,对大商店每月收300美元。这个低价是一个很大的吸引力,也是竞争对手持续的痛点,但我们定低价并非出于什么聪明的洞见。我们根本不知道企业为东西付多少钱。每月300美元在我们看来已经是一大笔钱了。
我们像那样因意外而做对了很多事。例如,我们做了现在所谓“做不 scale 的事”,尽管当时我们会将其描述为“因为太烂而被逼到最绝望的境地去获取用户”。其中最常见的就是为他们构建商店。这似乎特别屈辱,因为我们软件存在的全部理由就是让人们可以用它自己建商店。但为了获取用户,什么都得做。
我们学到了很多关于零售的知识,远比我们想知道的多。例如,如果你只能有一张男士衬衫的小图(而且按现在的标准那时所有的图片都很小),那么有一张领口的特写比一整件衬衫的照片更好。我记得学到这一点是因为这意味着我不得不重新扫描大约30张男士衬衫的图片。我第一批扫描的图片可是美极了。
虽然这感觉不对,但这恰恰是正确的做法。为用户构建商店教会了我们关于零售的知识,也让我们体会到使用我们软件的感受。起初我既对“商业”感到困惑又感到排斥,觉得我们需要一个“商业人士”来负责它,但一旦我们开始有了用户,我就被转化了,很大程度上就像我有了孩子后对为人父母的转化一样。无论用户想要什么,我都全心奉献。也许有一天我们会有如此多的用户以至于我无法再为他们扫描图片,但在那之前,没有什么更重要的事可做。
另一件我当时没明白的事是,增长率是对初创公司的终极考验。我们的增长率很好。1996年底我们有大约70家商店,1997年底大约有500家。我错误地以为重要的东西是用户的绝对数量。而这在某种意义上确实重要,因为那是你赚多少钱,如果赚得不够,你可能会倒闭。但从长远看,增长率会照顾好绝对数量。如果我们是我们当时在 Y Combinator 辅导的一家初创公司,我会说:别这么有压力,因为你们做得很好。你们每年增长7倍。只要别再招太多人,你们很快就会盈利,然后就能掌控自己的命运。
唉,我招了很多人,部分是因为我们的投资者希望我这么做,部分是因为那就是互联网泡沫期间初创公司的做法。一家只有少数员工的公司会显得不专业。所以直到1998年夏天 Yahoo 收购我们时,我们才达到收支平衡。这反过来意味着在公司的整个生命周期里,我们都受制于投资者。而由于我们和我们的投资者都是初创公司的新手,结果即使按初创公司的标准也是一团糟。
当 Yahoo 收购我们时,那是一种巨大的解脱。原则上我们的 Viaweb 股票是有价值的。那是一家盈利且快速增长的企业的股份。但在我感觉中它并不怎么值钱;我完全不知道如何给一家企业估值,却又过于清楚地意识到我们似乎每隔几个月就有一次濒死体验。我也没有在创业后显著改变我研究生的生活方式。所以当 Yahoo 收购我们时,感觉就像从贫穷到富有。由于要去加州,我买了一辆车,一辆黄色的1998年款 VW GTI。我记得当时想,它的真皮座椅本身就是我拥有的迄今为止最奢侈的东西。
接下来的一年,从1998年夏天到1999年夏天,一定是我一生中效率最低的一年。当时我没有意识到,但我因经营 Viaweb 的努力和压力而筋疲力尽。到了加州后,我一度试图延续我通常的编程到凌晨3点的作息,但疲劳加上 Yahoo 过早老化的文化和 Santa Clara мрачный 的格子间,逐渐把我拖垮。几个月后,感觉竟诡异地像在 Interleaf 工作。
Yahoo 收购我们时给了我们很多期权。当时我以为 Yahoo 被高估得厉害,它们的股票永远不会值钱,但令我惊讶的是,股价在接下来一年涨了5倍。我坚持到第一批期权兑现,然后在1999年夏天离开了。已经太久没有画过任何东西,我都快忘了为什么要做这件事。我的脑子里4年来完全装满了软件和男士衬衫。但我当初是为了致富以便能画画才做这些的,我提醒自己,而现在我已经富了,所以我应该去画画了。
当我说我要离开时,我在 Yahoo 的老板和我长谈了一次,谈我的计划。我向他讲述了我想要画的各种画。那时我很感动他对我如此关心。现在我才意识到那是因为他以为我在撒谎。我当时的期权价值大约每月200万美元。如果我把这么多钱留在桌上不管,那一定是为了去创办另一家新创业公司,而如果我这么做,可能会带走一些人。这是互联网泡沫的高峰,Yahoo 正是震中。我的老板那时已是亿万富翁。在那时离开去创办一家新创公司,在他看来一定是一个疯狂而又似乎合理的雄心勃勃的计划。
但我真的是辞职去画画的,而且我立刻就开始了。没有时间可以浪费。我已经花了4年去致富。现在当我和那些卖掉公司后要离开的创始人交谈时,我的建议总是一样的:去度个假。那正是我应该做的,找个地方什么都不做一两个月,但我当时根本没想到。
所以我尝试去画画,但似乎就是没有精力或雄心。部分问题是我在加州不认识多少人。我在 Santa Cruz 山里买了一栋房子,风景优美但离哪里都远,这加剧了这个问题。我又坚持了几个月,然后绝望中我回到了纽约,除非你了解租金管制,否则你会惊讶地听说我那套公寓还在,像我旧生活的一座坟墓般封存着。至少艾黛尔还在纽约,还有其他试图画画的人,尽管我一个也不认识。
回到纽约后,我恢复了旧生活,只是现在我富有了。听起来就有多怪异。我恢复了所有旧模式,只是现在以前没有的门都打开了。现在当我走累了,只要一招手(除非下雨),一辆出租车就会停下来载我。现在当我走过那些迷人的小餐馆时,我可以进去点午餐。有一阵子很令人兴奋。画画开始变得顺利。我尝试了一种新的静物:我先用旧方法画一幅画,然后把它拍下来,放大后印在画布上,再以此作为底色,用同样的静物(希望还没腐烂)画第二幅静物。
与此同时我在找公寓买。现在我真的可以选择住哪个街区了。我问自己和各个房地产经纪人,纽约的 Cambridge 在哪里?在偶尔去真正的 Cambridge 参观的帮助下,我逐渐意识到根本没有这样的地方。哈。
大约在这个时候,2000年春天,我有了一个想法。从我们在 Viaweb 的经验来看,web app 显然是未来。为什么不构建一个用来制作 web app 的 web app 呢?为什么不让人们通过浏览器在我们的服务器上编辑代码,然后为他们托管 resulting 的应用程序呢?[9] 你可以在这些应用程序可以仅通过一次 API 调用来使用的服务器上运行各种服务:拨打和接听电话、处理图像、接受信用卡支付等等。
我对这个想法感到如此兴奋,以至于无法思考别的事。它似乎显然就是未来。我并不特别想再创办一家公司,但显然这个想法必须以一家公司的形式来实现,所以我决定搬到 Cambridge 并创办它。我希望能把罗伯特拉来和我一起做,但在那里我遇到了障碍。罗伯特当时是 MIT 的博士后,虽然上次我把他拉来做我的计划之一时他赚了很多钱,但那也耗费了大量时间。所以虽然他同意这听起来是个可信的想法,但他坚决拒绝参与。
哼。那我就自己干。我招募了曾为 Viaweb 工作过的 Dan Giffin(丹·吉芬)和两个想要暑期工作的本科生,我们开始尝试构建现在看来相当于约二十家公司和几个开源项目价值的软件。用来定义应用的语言当然会是 Lisp 的一种方言。但我还没天真到以为能向普通大众直接推销一个显眼的 Lisp;我们会像 Dylan 那样把括号藏起来。
到那时,像 Viaweb 这样的公司有了一个名字,“application service provider”,即 ASP。这个名字没持续多久就被“software as a service”取代了,但它流行了足够长的时间,以至于我以它命名了这家新公司:它将被称为 Aspra。
我开始做应用构建器,丹做网络基础设施,两个本科生做前两个服务(图像和电话)。但大约在夏天过半时,我意识到我真的不想经营一家公司——尤其不是一家大公司,而这看起来将不得不是一家大公司。我创办 Viaweb 只是因为我需要钱。现在我不再需要钱了,我为什么还要做这个?如果这个愿景必须以一家公司的形式来实现,那就让愿景见鬼去吧。我会构建一个可以作为开源项目完成的子集。
令我惊讶的是,花在这上面的时间毕竟没有浪费。在我们创办 Y Combinator 之后,我经常会遇到正在做这个新架构中某些部分的初创公司,而花了那么多时间思考它甚至尝试编写其中一些,对我非常有帮助。
我将作为开源项目构建的子集是新的 Lisp,它的括号我现在甚至不必隐藏。很多 Lisp 黑客都梦想构建一种新的 Lisp,部分原因是该语言的一个显著特征就是它有方言,部分原因我认为是因为我们心中有一个柏拉图式的 Lisp,所有现有方言都未能达到。我当然有。所以在夏天结束时,丹和我在我在 Cambridge 买的一栋房子里转向开发这种新的 Lisp 方言,我把它叫做 Arc。
第二年春天,闪电击中了。我被邀请在一个 Lisp 会议上做演讲,所以我讲了我们在 Viaweb 是如何使用 Lisp 的。之后我在 paulgraham.com 上放了一个这次演讲的 postscript 文件,这个网站是我多年前用 Viaweb 创建的,但从未用于任何事。一天之内它获得了3万次页面浏览。到底发生了什么?引荐网址显示有人把它发到了 Slashdot 上。[10]
哇,我想,这里有观众。如果我写点东西放到网上,任何人都能读到。这在现在看来似乎显而易见,但在当时却令人惊讶。在印刷时代,通往读者的渠道非常狭窄,由被称为编辑的凶猛怪兽把守。你写的任何东西要获得观众的唯一途径是作为一本书,或在报纸或杂志上出版。现在任何人都可以发布任何东西。
这在原则上自1993年以来就已可能,但当时还没多少人意识到。我在那段时间的大部分时间里都密切参与构建网络的基础设施,同时也是一名作家,却花了8年才意识到这一点。即便如此,我又花了几年才理解其含义。这意味着将会有整整新一代的文章。[11]
在印刷时代,发表文章的渠道小得可怜。除了少数去纽约参加正确派对的被官方认可的思想家之外,唯一被允许发表文章的人是撰写关于其专业领域的专家。有那么多文章从未被写出来,因为没有办法发表它们。现在它们可以了,而我就要去写它们。[12]
我做过好几种不同的事,但就我弄清楚该做什么这一点而言,转折点是我开始在网上发表文章。从那以后我知道,无论我还做什么,我都会一直写文章。
我知道在线文章起初会是一种边缘媒介。在社交上,它们会更像是那些在 GeoCities 网站上发牢骚的疯子贴的 rant,而不是《The New Yorker》上刊登的那种文雅、排版精美的作品。但到那时我已经懂得足够多,觉得这反而是令人鼓舞而非令人沮丧的。
我一生中注意到的最显眼的模式之一是,为我而言,在那些不具声望的事情上工作效果有多好。静物一直是最不具声望的绘画形式。Viaweb 和 Y Combinator 在我们创办时看起来都很烂。当陌生人问我在写什么,而我解释说那是一篇我要发表在我网站上的文章时,我依然会看到他们眼神空洞。甚至 Lisp,尽管在智识上享有声望,有点像拉丁语那种,也似乎同样不怎么时髦。
并不是说不具声望的工作本身就好。但当你发现自己尽管其当前缺乏声望仍被某种工作所吸引时,这既是一个信号,表明那里有真实的东西可被发现,也表明你的动机是正确的。不纯的动机对有野心的人来说是巨大的危险。如果有什么会让你误入歧途,那就是想要给人留下深刻印象的欲望。所以,虽然在不具声望的事情上工作并不能保证你在正确的轨道上,但至少能保证你不在最常见的错误轨道上。
在接下来的几年里,我写了大量关于各种不同主题的文章。O'Reilly 将其中一些重印成书,书名就叫 Hackers & Painters(《黑客与画家》),取自其中的一篇文章。我还做了垃圾邮件过滤器,并继续画了一些画。我过去每周四晚上都会为一群朋友做晚餐,这教会了我如何为群体做饭。我还在 Cambridge 买了另一栋楼,一座以前的糖果厂(据说后来是色情工作室),用作办公室。
2003年10月的一个晚上,我家举办了一场大派对。这是我朋友 Maria Daniels(玛丽亚·丹尼尔斯)的一个聪明主意,她是周四晚餐的常客。三个不同的主人会把各自的朋友都邀请到同一个派对上。所以对每个客人来说,其他客人中有三分之二是他们不认识但可能会喜欢的人。其中一位客人是我不认识但后来会非常喜欢的人:一位叫 Jessica Livingston(杰西卡·利文斯顿)的女士。几天后我约了她。
杰西卡在一家波士顿投资银行负责营销。这家银行自以为了解初创公司,但在接下来的一年里,当她结识了我那些来自创业世界的朋友时,她惊讶地发现现实有多么不同。以及他们的故事有多么多彩。于是她决定编纂一本对创业创始人访谈的书。
当银行出现财务问题,她不得不解雇一半员工时,她开始寻找新工作。2005年初,她在一家波士顿风投公司面试一份营销工作。他们花了数周才做出决定,而在这段时间里,我开始告诉她所有需要修正的关于风险投资的事。他们应该做更多数量、更小额度的投资,而不是少数几笔巨额投资,他们应该资助更年轻、更懂技术的创始人而不是 MBA,他们应该让创始人继续担任 CEO,等等。
我写文章的一个技巧一直是做演讲。必须站在一群人面前告诉他们一些不会浪费他们时间的东西的前景,是想象力的巨大推动力。当 Harvard Computer Society,这个本科生计算机俱乐部,请我去演讲时,我决定告诉他们如何创办一家初创公司。也许他们能够避免我们犯过的最糟糕的错误。
于是我做了这个演讲,在演讲过程中我告诉他们,种子资金最好的来源是成功的创业创始人,因为那样他们也会成为建议的来源。此时似乎他们都在期待地看着我。惊恐于收件箱将被商业计划书淹没的前景(如果我早知道就好了),我脱口而出“但不是我!”然后继续演讲。但之后我想到我真的应该不再拖延做天使投资了。自从 Yahoo 收购我们以来我就一直想做,而现在7年过去了,我甚至还没做过一笔天使投资。
与此同时,我一直在和罗伯特与特雷弗策划我们可以一起做的项目。我怀念和他们一起工作,而且似乎一定有我们可以合作的东西。
当杰西卡和我在3月11日吃完晚饭走回家,在 Garden 街和 Walker 街的拐角处,这三条线索汇合了。去他的那些花了那么久才做决定的风投。我们要创办自己的投资公司,真正实施我们一直在谈论的那些想法。我来出资,杰西卡可以辞职为它工作,我们还会把罗伯特和特雷弗也拉来做合伙人。[13]
再一次,无知对我们有利。我们完全不知道如何做天使投资人,而在2005年的波士顿,也没有 Ron Conway(罗恩·康威)那样的人可以学习。所以我们只是做了看似显而易见的选择,而我们所做的一些事结果证明是新颖的。
Y Combinator 有多个组成部分,而我们并非一次性就弄明白了所有。我们最先弄明白的是要成为一家天使投资公司。在当时,那两个词是不在一起的。有风投公司,它们是有组织、有专人负责投资的公司,但它们只做百万美元级别的大额投资。也有天使投资人,他们做较小额度的投资,但这些是通常专注于其他事情、顺带做投资的个人。而且他们两者在早期对创始人的帮助都不够。我们知道创始人有多么无助,因为我们记得自己当时有多么无助。例如,朱利安为我们做的一件在我们看来像魔法的事就是把我们设立成一家公司。我们写相当困难的软件没问题,但真正去注册成立公司,弄出章程和股票以及所有那些东西,你到底该怎么做?我们的计划不仅是做种子投资,还要为初创公司做朱利安为我们做过的一切。
YC 并没有被组织成一只基金。运营它足够便宜,以至于我们用自己的钱来资助它。这句话99%的读者都会一带而过,但专业投资者会想“哇,这意味着他们拿到了所有回报。”但再一次,这并非出于我们任何特别的洞见。我们不知道风投公司是如何组织的。我们从未想过要去募集一只基金,即使想过,也不知道从何开始。[14]
YC 最独特的地方是批量模式:一年两次,一次性资助一堆初创公司,然后花三个月时间集中精力尽力帮助他们。这一部分我们是意外发现的,不仅仅是隐式地,更是由于我们对投资的无知而显式地发现的。我们需要作为投资者获得经验。还有什么比一次资助一整批初创公司更好的方式呢?我们知道本科生在暑假期间会在科技公司做临时工作。为什么不组织一个暑期项目,让他们去创办初创公司呢?我们不会因为在某种意义上是假投资者而感到内疚,因为他们在类似意义上也会是假创始人。所以虽然我们可能不会从中赚太多钱,但至少我们可以在他们身上练习做投资者,而他们则可能会拥有一个比在 Microsoft 工作更有趣的暑假。
我们会用我在 Cambridge 拥有的那栋楼作为总部。我们每周会在那里一起吃一次晚餐——定在周二,因为我已经在周四为周四晚餐的客人们做饭了——晚餐后我们会请来创业方面的专家做演讲。
我们知道本科生那时正在决定暑期工作,所以几天之内我们就炮制了一个叫 Summer Founders Program 的东西,我在我的网站上发布了一个公告,邀请本科生申请。我从未想过写文章会成为获取“deal flow”(项目来源)的方式,用投资者的话来说,但结果证明这是完美的来源。[15] 我们收到了225份 Summer Founders Program 的申请,令我们惊讶的是,其中很多人已经毕业,或即将在那个春天毕业。这个 SFP 的事情已经开始感觉比我们预想的要严肃了。
我们邀请了225个团队中的约20个来进行面对面面试,并从中挑选了8个进行资助。他们是一个令人印象深刻的群体。那第一批包括 reddit、Justin Kan(贾斯汀·卡恩)和 Emmett Shear(埃米特·希尔),他们后来创办了 Twitch,Aaron Swartz(亚伦·斯沃茨),他已经帮助编写了 RSS 规范并在几年后成为开放获取的殉道者,以及 Sam Altman(萨姆·奥尔特曼),他后来成为 YC 的第二任总裁。我不认为第一批如此优秀完全是运气。要报名参加像 Summer Founders Program 这样奇怪的东西,而不是去 Microsoft 或 Goldman Sachs 这样的正经地方做暑期工作,你必须相当大胆。
给初创公司的交易基于我们与朱利安做的交易(1万美元换10%)和罗伯特所说的 MIT 研究生暑期所得(6000美元)的结合。我们按每位创始人6000美元投资,在典型的两位创始人情况下就是12000美元,换取6%的股份。这一定是公平的,因为它比我们自己接受的交易好一倍。加上在那个真的很热的第一个夏天,杰西卡给创始人免费送了空调。[16]
很快我就意识到我们偶然发现了规模化创业资助的方法。批量资助初创公司对我们来说更方便,因为这意味着我们可以一次性为很多初创公司做事,但对初创公司来说,成为一批中的一员也更好。它解决了创始人面临的最大问题之一:孤立。现在你不仅有了同事,还有能理解你所面临问题并能告诉你他们如何解决这些问题的同事。
随着 YC 的成长,我们开始注意到规模的其他优势。校友们成了一个紧密的社区,致力于互相帮助,尤其是帮助当期批次,他们记得自己曾处于那个位置。我们也注意到初创公司们正在成为彼此的客户。我们过去开玩笑地称之为“YC GDP”,但随着 YC 的成长,这越来越不像一个玩笑。现在很多初创公司几乎完全从同批次的伙伴中获得最初的一批客户。
我最初并没打算让 YC 成为一份全职工作。我打算做三件事:黑客、写文章、做 YC。随着 YC 的成长,以及我对它越来越兴奋,它开始占据了我远超三分之一的注意力。但在头几年,我仍然能够做其他事情。
2006年夏天,罗伯特和我开始做一个新版本的 Arc。这个版本相当快,因为它被编译成了 Scheme。为了测试这个新的 Arc,我用它写了 Hacker News。它最初打算作为创业创始人的新闻聚合器,叫 Startup News,但几个月后我厌倦了只读关于初创公司的内容。而且我们想触达的并不是创业创始人。而是未来的创业创始人。所以我把名字改成了 Hacker News,主题改为任何能激发智力好奇心的东西。
HN 无疑对 YC 有好处,但它也是迄今为止我最大的压力来源。如果我只需要挑选和帮助创始人,生活会轻松得多。而这意味着 HN 是个错误。至少,工作中最大的压力源应该接近工作的核心。而我就像一个跑马拉松时感到疼痛的人,疼痛不是来自跑步的 exertion,而是因为一双不合脚的鞋磨出的水泡。当我在 YC 期间处理某个紧急问题时,有大约60%的几率它与 HN 有关,40%的几率与所有其他事情的总和有关。[17]
除了 HN,我还用 Arc 写了 YC 所有的内部软件。但虽然我继续大量地用 Arc 工作,我逐渐停止了对 Arc 本身的开发,部分是因为我没有时间,部分是因为现在我们有这么多基础设施依赖于它,再去摆弄这门语言就没那么有吸引力了。于是我现在的三个项目缩减为两个:写文章和做 YC。
YC 与我做过的其他种类的工作不同。不是由我自己决定做什么,问题会来找我。每6个月就有一批新的初创公司,而他们的问题,无论是什么,都成了我们的问题。这是非常吸引人的工作,因为他们的问题非常多样,而优秀的创始人非常高效。如果你想在最短时间内尽可能多地了解初创公司,你不可能挑选到更好的方式。
工作中有我不喜欢的部分。联合创始人之间的争执、弄清楚人们何时对我们撒谎、与那些虐待初创公司的人作斗争,等等。但即使是不喜欢的部分我也努力工作。Kevin Hale(凯文·黑尔)曾说过关于公司的一句话一直萦绕着我:“没有人比老板更努力。”他既是描述性的也是规定性的,而后者让我感到害怕。我想让 YC 变好,所以如果我工作的努力程度设定了其他人工作努力程度的上限,那我最好非常努力地工作。
2010年的一天,当 Robert Morris(罗伯特·莫里斯)来加州参加面试时,他做了一件令人惊讶的事:他主动给了我建议。我只记得他以前只做过一次这样的事。在 Viaweb 时,有一天我因肾结石疼得弯不起腰,他建议我最好让他送我去医院。那就是 Rtm 主动提建议所需要的程度。所以我非常清晰地记得他的原话。“你知道,”他说,“你应该确保 Y Combinator 不是你做的最后一件很酷的事。”
当时我不明白他的意思,但渐渐地我意识到他是在说我应该辞职。这似乎是很奇怪的建议,因为 YC 做得很好。但如果说有什么比 Rtm 主动提建议更罕见,那就是 Rtm 说错。所以这让我开始思考。确实,按我当时的轨迹,YC 将是我做的最后一件事,因为它正占据我越来越多的注意力。它已经吞掉了 Arc,正在吞掉文章。要么 YC 是我毕生的事业,否则我最终就得离开。而它不是,所以我会离开。
2012年夏天,我母亲中风了,原因后来查明是由结肠癌引起的血栓。中风破坏了她的平衡,她被送进了养老院,但她真的很想出来回到自己家,我和我姐姐决心帮她实现。我经常飞去 Oregon 看她,在那些航班上有大量时间思考。在其中一次航班上,我意识到我已经准备好把 YC 交给其他人了。
我问杰西卡是否想当总裁,但她不想,所以我们决定试着招募萨姆·奥尔特曼。我们和罗伯特、特雷弗商量,我们同意进行一次彻底的换班。直到那时,YC 一直由我们四人创办的原始 LLC 控制。但我们想让 YC 长期存在,要做到这一点,它不能由创始人控制。所以如果萨姆答应,我们就让他重组 YC。罗伯特和我会退休,杰西卡和特雷弗会成为普通合伙人。
当我们问萨姆是否想当 YC 总裁时,起初他说不。他想创办一家制造核反应堆的初创公司。但我坚持不懈,在2013年10月他终于同意了。我们决定他将从2014年冬季批次开始接手。2013年剩下的时间里,我越来越多地把运行 YC 的事交给萨姆,部分是为了让他学习这份工作,部分是因为我正专注于我母亲,她的癌症复发了。
她于2014年1月15日去世。我们知道这会发生,但当它真的发生时依然很难受。
我继续在 YC 工作到3月,帮助那批初创公司完成 Demo Day,然后就相当彻底地退出了。(我仍然会和校友以及那些在做我感兴趣事情的新初创公司交谈,但那每周只花几个小时。)
接下来我该做什么?Rtm 的建议里并没有包括这个。我想做一些完全不同的事,所以我决定去画画。我想看看如果我真正专注于此,我能画得多好。所以就在我停止做 YC 的第二天,我开始画画了。我已经生疏了,花了一段时间才找回状态,但至少完全引人入胜。[18]
2014年剩下的大部分时间我都在画画。我从未能够如此不受打扰地工作,而且我画得比以前更好了。还不够好,但更好了。然后在11月,就在一幅画的中间,我没劲了。在此之前,我总是好奇我正在画的画会变成什么样,但突然间,完成这幅画似乎成了一件苦差事。于是我停了下来,清洗了画笔,从那以后就再没画过。至少到目前为止是这样。
我知道这听起来有点懦弱。但注意力是一场零和游戏。如果你可以选择做什么,而你选择了一个对你来说不是最好(或至少不是很好)的项目,那么它就阻碍了另一个对你更好的项目。而在50岁时,瞎折腾是有机会成本的。
我又开始写文章,并在接下来的几个月里写了一堆新的文章。我甚至写了几篇不是关于初创公司的。然后在2015年3月,我又开始做 Lisp 了。
Lisp 独特之处在于它的核心是一种通过用自身编写解释器来定义的语言。它最初并不是作为通常意义上的编程语言而设计的。它原本是要作为一种计算的形式化模型,作为图灵机的替代方案。如果你想用一种语言自身来为它写一个解释器,你需要的最小预定义操作集是什么?John McCarthy(约翰·麦卡锡)发明、或更准确地说是发现的 Lisp,就是对这个问题的回答。[19]
麦卡锡起初并没有意识到这个 Lisp 甚至可以用来给计算机编程,直到他的研究生 Steve Russell(史蒂夫·拉塞尔)提出了这个想法。拉塞尔把麦卡锡的解释器翻译成了 IBM 704 机器语言,从那时起 Lisp 也开始成为通常意义上的编程语言。但它作为计算模型的起源赋予了它其他语言无法比拟的力量和优雅。正是这一点在大学时吸引了我,尽管当时我并不明白为什么。
麦卡锡1960年的 Lisp 除了解释 Lisp 表达式之外什么都不做。它缺少你在编程语言中想要的很多东西。所以这些必须被添加进去,而当它们被添加时,并没有使用麦卡锡最初的公理化方法。那在当时是不可行的。麦卡锡通过手工模拟程序的执行来测试他的解释器。但它已经接近于你能用那种方式测试的解释器的极限——事实上,其中有一个 McCarthy 忽略的 bug。要测试一个更复杂的解释器,你就必须运行它,而当时的计算机还不够强大。
但现在它们已经足够强大了。现在你可以继续使用麦卡锡的公理化方法,直到定义出一门完整的编程语言。并且只要你对麦卡锡的 Lisp 所做的每一次改变都是保持“被发现性”的变换,你原则上就可以得到一门具有这种品质的完整语言。说起来比做起来容易,当然,但如果原则上可能,为什么不试试呢?所以我决定试一试。这花了4年,从2015年3月26日到2019年10月12日。幸好我有一个精确定义的目标,否则很难坚持这么久。
我用 Arc 在自身中写了这个新的 Lisp,叫做 Bel。这听起来像个矛盾,但这表明了为使之可行我不得不进行的那种 trickery。通过一大堆骇人的 hack,我设法做出了一个足够接近用自身编写的解释器、且能实际运行的东西。不快,但快到足以测试。
在这段时间的大部分时间里,我禁止自己写文章,否则我永远也完不成。在2015年末我花了3个月写文章,当我回去做 Bel 时,我几乎看不懂那些代码。倒不是因为它写得差,而是因为问题本身太错综复杂。当你在做一个用自身编写的解释器时,很难跟踪在哪个层级发生了什么,而错误到你手上时几乎已被加密。
所以我说在 Bel 完成之前不再写文章。但我在做 Bel 时很少告诉别人。所以多年来一定看起来我什么都没做,而实际上我比以往任何时候都更努力地工作。偶尔在与某个可怕的 bug 搏斗数小时后,我会查看 Twitter 或 HN,看到有人在问“Paul Graham 还写代码吗?”
做 Bel 很艰难但令人满足。我如此 intensively 地做它,以至于在任何给定时间,我脑中都装着相当大一块代码,可以在脑中继续编写。我记得2015年一个阳光明媚的日子,我带孩子们去海边,看着他们在潮汐池中玩耍时,脑中想通了如何处理某个涉及 continuations 的问题。感觉我把生活过对了。我记得这一点是因为我对这种感觉竟如此新奇而略感沮丧。好消息是,在接下来的几年里我有了更多这样的时刻。
2016年夏天,我们搬到了英国。我们想让孩子们看看在另一个国家生活是什么样子,而由于我出生即是英国公民,那似乎是 obvious 的选择。我们只打算待一年,但我们太喜欢那里了,以至于至今仍住在那里。所以 Bel 的大部分是在英国写的。
2019年秋天,Bel 终于完成了。像麦卡锡最初的 Lisp 一样,它是一个规范而非一个实现,尽管像麦卡锡的 Lisp 一样,它是一个以代码形式表达的规范。
现在我又可以写文章了,我就写了一堆积压主题的文章。我一直写文章到2020年,但我也开始思考其他可以做的事。我该如何选择做什么呢?好吧,我过去是如何选择做什么的呢?我为自己写了一篇文章来回答这个问题,而我惊讶地发现答案竟如此漫长而杂乱。如果这连亲身经历的我都感到惊讶,那么我想它或许对其他人也会有趣,并能鼓励那些生活同样杂乱的人。所以我为其他人写了一个更详细的版本,而这就是它的最后一句话。
附注
[1] 我的经历跳过了计算机演进中的一步:带有交互式操作系统的分时机器。我直接从批处理跳到了微型计算机,这让微型计算机显得更加令人兴奋。
[2] 抽象概念的意大利语单词几乎总是可以从其英语同源词预测(除了像 polluzione 这样的偶尔陷阱)。不同的是日常词汇。所以如果你用几个简单动词把大量抽象概念串在一起,你就可以让一点点意大利语发挥很大作用。
[3] 我住在 Piazza San Felice 4,所以我去 Accademia 的步行路线正好贯穿老佛罗伦萨的脊梁:经过 Pitti,穿过大桥,经过 Orsanmichele,在 Duomo 和 Baptistery 之间穿过,然后沿 Via Ricasoli 走到 Piazza San Marco。我在各种可能的条件下从街道层面看过佛罗伦萨,从空旷黑暗的冬夜到街道挤满游客的闷热夏日。
[4] 你当然也可以把人当作静物来画,如果你愿意,而他们也愿意的话。那种肖像可以说是静物画的顶峰,尽管长时间的摆姿确实往往会让被画者露出痛苦的表情。
[5] Interleaf 是众多拥有聪明人才并构建了令人印象深刻的技术、却被摩尔定律碾压的公司之一。在1990年代,商品化(即 Intel)处理器能力的指数级增长像推土机一样碾过了高端、专用硬件和软件公司。
[6] 在 RISD 寻求标志性风格的人并非特别唯利是图。在艺术界,金钱和酷是紧密相连的。任何昂贵的东西都会被视为酷的,而任何被视为酷的东西很快也会变得同样昂贵。
[7] 严格来说,那套公寓不是租金管制(rent-controlled)而是租金稳定(rent-stabilized),但这是只有纽约人才会知道或在意的细微差别。关键是它非常便宜,不到市场价的一半。
[8] 大多数软件一完成就可以发布。但当软件是一个在线商店构建器而你又在托管这些商店时,如果你还没有任何用户,这个事实将会痛苦地显而易见。所以在我们能够公开上线之前,我们必须私下上线,也就是招募一组初始用户并确保他们有像样的商店。
[9] 我们在 Viaweb 中曾为用户提供过一个代码编辑器,让他们定义自己的页面样式。他们不知道的是,他们在底层编辑的是 Lisp 表达式。但这不是一个应用编辑器,因为代码是在商户站点生成时运行的,而不是在购物者访问时运行的。
[10] 这是现在已很熟悉的经历的第一次,接下来发生的事也是,当我阅读评论时发现里面充满了愤怒的人。我怎么能声称 Lisp 比其他语言更好?它们不都是图灵完备的吗?看到对我文章回应的的人有时会告诉我他们多么为我感到难过,但我毫不夸张地回答说,从一开始就一直如此。这就是这片领地的代价。一篇文章必须告诉读者他们尚不知道的东西,而有些人不喜欢被告知这些。
[11] 人们在90年代当然也在互联网上放了大量东西,但把东西放到网上和在网上发表是不同的。在网上发表意味着你把在线版本视为(或至少是)主要版本。
[12] 这里有一个普遍的教训,我们在 Y Combinator 的经验也教导了这一点:习俗在导致它们的限制消失后很久仍会继续约束你。惯常的风险投资做法曾像关于发表文章的习俗一样,基于真实的约束。创业曾要昂贵得多,也相应地稀少。现在它们可以既便宜又常见,但风投的习俗仍反映着旧世界,就像关于写文章的习俗仍反映着印刷时代的约束一样。
这反过来意味着那些独立思考的人(即较少受习俗影响的人)将在受快速变化影响的领域中拥有优势(在这些领域习俗更可能已过时)。
不过,这里有一个有趣的点:你并不总能预测哪些领域会受到快速变化的影响。显然软件和风险投资会,但谁会预测到写文章也会呢?
[13] Y Combinator 并非最初的名字。起初我们叫 Cambridge Seed。但我们不想要一个地域性的名字,以防有人在硅谷复制我们,所以我们以 lambda 演算中最酷的技巧之一——Y combinator 来重新命名了自己。
我选择橙色作为我们的颜色,部分因为它是最温暖的颜色,部分因为没有风投使用它。2005年所有的风投都使用沉稳的颜色,如栗色、海军蓝和森林绿,因为他们想吸引 LP,而不是创始人。YC 的标志本身就是一个内部笑话:Viaweb 的标志曾是红色圆圈上的白色 V,所以我把 YC 的标志做成了橙色方块上的白色 Y。
[14] YC 在2009年开始的几年里确实成为了一只基金,因为它变得如此之大,我已无法再以个人资金来资助它。但在 Heroku 被收购后,我们有了足够的钱回到自筹资金的模式。
[15] 我从未喜欢过“deal flow”这个词,因为它暗示在任何给定时间新初创公司的数量是固定的。这不仅是错的,而且 YC 的目的正是要证伪它,通过促成那些否则不会存在的初创公司的诞生。
[16] 据她说,它们形状和大小各不相同,因为当时空调被抢购一空,她不得不把能买到的都买来,但它们都比她现在能搬动的要重。
[17] HN 的另一个问题是一个奇怪的边缘情况,当你既写文章又运营一个论坛时就会出现。当你运营一个论坛时,人们会假定你能看到每一个对话,至少是每一个涉及你的对话。而当你写文章时,人们会在论坛上发布对它们极具想象力的误读。单独来看,这两种现象都乏味但可忍受,但结合起来却是灾难性的。你实际上必须回应那些误读,因为你出现在对话中的假定意味着,对任何获得足够多赞的误读不作回应,会被解读为默认其正确。但这反过来又会鼓励更多;任何想与你挑起争端的人都会感到现在正是机会。
[18] 离开 YC 最糟糕的事是不再和杰西卡一起工作。我们几乎在认识的整个时间里都在做 YC,我们既没有尝试也没有想要把它与我们的私人生活分开,所以离开就像连根拔起一棵根深蒂固的树。
[19] 要更精确地谈论发明与发现的概念,一种方法是谈论外星人。任何足够先进的外星文明肯定会知道勾股定理,例如。我相信,尽管确定性较低,他们也会知道 McCarthy 在1960年论文中的 Lisp。
但即便如此,也没有理由认为这就是他们可能知道的语言的极限。外星人 presumably 也需要数字、错误和 I/O。所以似乎至少存在一条从 McCarthy 的 Lisp 出发的、保持“被发现性”的路径。
感谢 Trevor Blackwell(特雷弗·布莱克威尔)、John Collison(约翰·科里森)、Patrick Collison(帕特里克·科里森)、Daniel Gackle(丹尼尔·加克尔)、Ralph Hazell(拉尔夫·哈泽尔)、杰西卡·利文斯顿、罗伯特·莫里斯和 Harj Taggar(哈吉·塔加尔)审阅了本文的草稿。
随机一篇博客