我所从事的工作
2021年2月
大学前,我在课外主要从事的两件事是写作和编程。我不写文章。我写的是当时初学写作的人应该写的东西,可能现在还是:短篇小说。我的故事很糟糕。几乎没有情节,只有感情强烈的角色,我以为这让他们显得深刻。
我尝试编写的第一个程序是在我们学区用于当时称为"数据处理"的IBM 1401上。那时我在九年级,所以是13或14岁。学区的1401恰好在我们的初中的地下室,我的朋友Rich Draves和我获得了使用它的许可。那里就像一个小型的邦德反派巢穴,所有这些看起来外星般的机器——CPU、磁盘驱动器、打印机、卡片阅读器——坐在明亮的荧光灯下的抬高地板上。
我们使用的语言是Fortran的早期版本。你必须在打孔卡上键入程序,然后将它们堆叠在卡片阅读器中并按下按钮将程序加载到内存中并运行。结果通常是在极其响亮的打印机上打印一些东西。
我对1401感到困惑。我无法弄清楚如何使用它。回想起来,我能用它做的事情不多。程序的唯一输入形式是存储在打孔卡上的数据,而我没有任何存储在打孔卡上的数据。唯一的选择是做不依赖任何输入的事情,比如计算π的近似值,但我的数学知识不足以做任何有趣的这类事情。所以我不奇怪我不记得我编写的任何程序,因为它们不可能做太多事情。我最清晰的记忆是我了解到程序可能不会终止的那一刻,当我的一个程序没有终止时。在没有分时系统的机器上,这既是社会错误也是技术错误,正如数据中心经理的表情所表明的那样。
有了微型计算机,一切都改变了。现在你可以有一台电脑就坐在你面前,在桌子上,它可以在运行时响应你的按键,而不仅仅是处理一堆打孔卡然后停止。[1]
我的朋友中第一个拥有微型计算机的人是自己组装的。它是由Heathkit作为套件出售的。我生动地记得看着它坐在它前面,直接在电脑中键入程序时我感到多么印象深刻和羡慕。
那时候计算机很昂贵,我纠缠了多年才说服我父亲在1980年左右买了一台TRS-80。当时黄金标准是Apple II,但TRS-80已经足够好了。这是我真正开始编程的时候。我编写了简单的游戏,一个预测我的模型火箭能飞多高的程序,以及我的父亲用来写至少一本书的文字处理器。内存中只有大约2页文本的空间,所以他一次写2页然后打印出来,但这比打字机好多了。
虽然我喜欢编程,但我没打算在大学里学习它。在大学里我要学习哲学,这听起来强大得多。对于我天真的高中自我来说,这似乎是对终极真理的研究,相比之下其他领域研究的东西将只是领域知识。当我到达大学时,我发现其他领域占据了思想空间的很大部分,这些所谓的终极真理没有太多空间留下来。哲学似乎只剩下其他领域的人认为可以安全忽略的边缘情况。
我18岁时无法把这些变成语言。我当时只知道我不断选修哲学课程,而它们总是很无聊。所以我决定转向AI。
AI在1980年代中期很流行,但有两件事特别让我想要从事它:海因莱因的一部名为《月亮是一个严厉的女人》的小说,其中有一个名为Mike的智能计算机,以及一个展示Terry Winograd使用SHRDLU的PBS纪录片。我没有尝试重读《月亮是一个严厉的女人》,所以我不知道它老化得如何,但当我读它时,我完全被它的世界吸引住了。似乎只是时间问题,我们就会有Mike,当我看到Winograd使用SHRDLU时,似乎那时间将是几年。你所要做的就是教SHRDLU更多的词语。
那时康奈尔大学没有任何AI课程,甚至研究生课程也没有,所以我开始尝试自学。这意味着学习Lisp,因为在那些日子Lisp被认为是AI的语言。当时常用的编程语言相当原始,程序员的想法也相应地如此。康奈尔的默认语言是一种类似Pascal的语言,称为PL/I,其他地方的情况也类似。学习Lisp如此迅速地扩展了我对程序的概念,以至于我花了几年时间才开始感觉到新的限制在哪里。这更像它;这是我对大学期望的。它没有像应该的那样在课堂上发生,但没关系。接下来的几年我很顺利。我知道我要做什么。
对于我的本科论文,我逆向工程了SHRDLU。天啊,我多么喜欢在这个程序上工作。这是一段令人愉悦的代码,但更令人兴奋的是我的信念——现在很难想象,但在1985年并不独特——它已经在攀登智能的较低坡度。
我进入了康奈尔的一个不要求你选择专业的项目。你可以选修任何你喜欢的课程,选择任何你喜欢放在学位上的东西。我当然选择了"人工智能"。当我拿到实际的物理文凭时,我惊恐地发现引号被包括在内,这使它们读作引号。当时这困扰着我,但现在看来可笑地准确,原因我即将发现。
我申请了3所研究生院:MIT和耶鲁,当时以AI闻名,以及哈佛,我访问过因为Rich Draves去那里,也是Bill Woods的故乡,他发明了我在我的SHRDLU克隆中使用的解析器类型。只有哈佛接受了我,所以我就去了那里。
我不记得那一刻是什么时候发生的,或者甚至是否有特定的时刻,但在研究生第一年期间,我意识到AI,当时实践的方式,是一个骗局。我的意思是那种AI,其中被告知"狗坐在椅子上"的程序将其转换为某种正式表示并将其添加到它知道的事情列表中。
这些程序真正显示的是,自然语言的一个子集是一种形式语言。但是一个非常适当的子集。很明显,他们能做的事情和真正理解自然语言之间有一个不可逾越的鸿沟。事实上,这不仅仅是教SHRDLU更多词语的问题。整个AI方式,用代表概念的显式数据结构,是行不通的。它的 brokenness 确实,像经常发生的那样,产生了大量机会来写关于可以应用的各种创可贴的论文,但它永远不会给我们带来Mike。
所以我环顾四周,看看我能从计划的残骸中挽救什么,那就是Lisp。我从经验中知道Lisp本身就很有趣,不仅仅是因为它与AI的联系,尽管那时这是人们关心它的主要原因。所以我决定专注于Lisp。事实上,我决定写一本关于Lisp黑客技术的书。想到我开始写那本书时对Lisp黑客技术了解得多么少,真是令人害怕。但是没有什么比写一本关于某件事的书更能帮助你学习它了。这本书,《On Lisp》,直到1993年才出版,但我在研究生院写了大部分。
计算机科学是两个部分之间不安的联盟:理论和系统。理论家证明事情,系统家建造事情。我想建造事情。我对理论有很大的尊重——确实,一种偷偷摸摸的怀疑,认为它是两个部分中更令人钦佩的——但建造事情似乎令人兴奋得多。
然而,系统工作的问题在于它不持久。你今天编写的任何程序,无论多好,最多几十年后就会过时。人们可能在脚注中提到你的软件,但没有人会实际使用它。而且,它会显得非常无力的工作。只有对领域历史有了解的人才会意识到,在它的时代,它曾经是好的。
有一次,计算机实验室里有一些多余的施乐Dandelions。任何想要一个来玩的人都可以有一个。我短暂地被诱惑了,但按照现在的标准它们太慢了;有什么意义呢?也没有其他人想要一个,所以它们被运走了。这就是系统工作的下场。
我不仅要建造事情,还要建造会持久的事情。
在这种不满的状态下,我在1988年去CMU拜访Rich Draves,他在那里读研究生。有一天我去参观卡内基研究所,我小时候在那里花了很多时间。在那里看一幅画时,我意识到一些可能看起来显而易见的事情,但对我来说是一个巨大的惊喜。在那里,就在墙上,是一些你可以制造的东西,它会持久。绘画不会过时。一些最好的已经有几百年历史了。
而且这是你可以谋生的事情。当然不像写软件那么容易,但我认为如果你真正勤奋且生活非常节俭,必须有可能赚足够的钱生存。作为艺术家,你可以真正独立。你不会有老板,甚至不需要获得研究经费。
我一直喜欢看画。我能画画吗?我不知道。我从未想象过这是可能的。我在理智上知道人们制造艺术——它不是自发出现的——但制造它的人似乎是不同的物种。他们要么生活在很久以前,要么是在《生活》杂志的简介中做奇怪事情的神秘天才。实际上能够制造艺术,把这个动词放在这个名词前面,似乎几乎是奇迹性的。
那年秋天我开始在哈佛选修艺术课程。研究生可以在任何系选修课程,我的导师Tom Cheatham非常随和。即使他知道我选修的奇怪课程,他也什么都没说。
所以现在我在计算机科学博士项目中,却计划成为艺术家,却又真正热爱Lisp黑客技术和努力编写《On Lisp》。换句话说,像许多研究生一样,我精力充沛地从事多个不是我的论文的项目。
我没有看到摆脱这种局面的方法。我不想退学,但我还能怎么出去呢?我记得当我的朋友Robert Morris因编写1988年互联网蠕虫而被康奈尔开除时,我羡慕他找到了如此壮观的方式来离开研究生院。
然后在1990年4月的一天,墙上出现了一道裂缝。我遇到了Cheatham教授,他问我是否已经足够进展可以在那年六月毕业。我的论文一个字都没有写,但一定是我一生中最快的思考,我决定在剩下的5周左右的时间内尝试写一篇,尽可能重用《On Lisp》的部分,我能够毫无察觉地延迟回答"是的,我想是的。我几天内给你一些东西阅读。"
我选择了continuations的应用作为主题。回想起来我应该写关于宏和嵌入式语言。那里有一个几乎未被探索的整个世界。但我只想离开研究生院,我快速写的论文足够了,勉强而已。
与此同时,我在申请艺术学院。我申请了两所:美国的RISD,和佛罗伦萨的Accademia di Belli Arti,因为它是最古老的艺术学校,我想象它会很好。RISD接受了我,而我从未收到Accademia的回音,所以我去了普罗维登斯。
我申请了RISD的BFA项目,这实际上意味着我必须再次上大学。这听起来不像那么奇怪,因为我只有25岁,艺术学校里充满了不同年龄的人。RISD把我算作转学大二学生,说我必须那年夏天做基础课程。基础课程是每个人都必须参加的基础科目课程,如绘画、色彩和设计。
在夏末,我得到了一个大惊喜:一封来自Accademia的信,被延迟了因为他们把它寄到了剑桥英格兰而不是剑桥马萨诸塞州,邀请我那年秋天在佛罗伦萨参加入学考试。现在只有几周时间了。我善良的女房东让我把我的东西留在她的阁楼里。我有一些从研究生院咨询工作中节省的钱;如果我生活节俭,可能足够一年。现在我必须做的就是学习意大利语。
只有stranieri(外国人)必须参加这个入学考试。回想起来,这很可能是排除他们的一种方式,因为有那么多stranieri被在佛罗伦萨学习艺术的想法吸引,否则意大利学生会被数量超过。那年夏天从RISD基础课程来看,我在绘画和素描方面处于不错的状态,但我仍然不知道我是如何通过书面考试的。我记得我通过写关于塞尚来回答散文问题,并且我把智力水平提高到尽可能高,以充分利用我有限的词汇量。[2]
我只到25岁,已经有如此明显的模式。我又一次即将进入一些庄严的机构,希望学习一些有声望的科目,又一次即将失望。Accademia绘画系的学生和教员是你能想象到的最友好的人,但他们早就达成了一个安排,学生不会要求教员教任何东西,反过来教员也不会要求学生学习任何东西。同时,所有相关者都会在外表上坚持19世纪画室的惯例。我们确实有一个那些小火炉中的一个,用引火柴喂养,你在19世纪画室绘画中看到的那种,一个裸体模特坐在尽可能靠近而不被烧伤的地方。除了我,几乎没有人画她。其余的学生把时间花在聊天上,或者偶尔尝试模仿他们在美国艺术杂志中看到的东西。
我们的模特原来就住在我家楼下街。她通过模特工作和为当地古董商制作赝品来谋生。她会从书中复制一个模糊的旧绘画,然后他会拿走副本并虐待它使其看起来旧。[3]
当我在Accademia当学生时,我开始在晚上在我的卧室里画静物画。这些画作很小,因为房间很小,因为我把它们画在剩余的画布碎料上,那是我当时唯一能负担得起的。画静物画不同于画人,因为主体,顾名思义,不能移动。人们一次只能坐大约15分钟,当他们坐下时也不会坐得很稳。所以画人的传统方式是知道如何画一个通用的人,然后你修改它以匹配你正在画的特定人。而静物画,如果你愿意,可以从你看到的东西像素级复制。你当然不想停在那里,否则你只得到摄影准确性,而使静物画有趣的是它经过了一个头脑。你想强调视觉线索,告诉你,例如,颜色在某个点突然变化的原因是它是一个物体的边缘。通过微妙地强调这样的事情,你可以使绘画比照片更现实,不仅仅是在某种隐喻意义上,而是在严格的信息理论意义上。[4]
我喜欢画静物画是因为我对看到的东西好奇。在日常生活中,我们没有意识地意识到我们看到的很多东西。大多数视觉感知是由低级过程处理的,它们只告诉你的大脑"那是水滴"而不告诉你像最亮和最暗点在哪里这样的细节,或者"那是灌木"而不告诉你每片叶子的形状和位置。这是大脑的一个特征,而不是bug。在日常生活中,注意到每片灌木上的每片叶子会让人分心。但当你必须画什么东西时,你必须更仔细地看,当你这样做时,有很多可看的。在尝试画人们通常视为理所当然的东西几天后,你可能仍在注意到新事情,就像尝试写关于人们通常视为理所当然的东西的文章几天后一样。
这不是唯一的绘画方式。我不是100%确定它甚至是画画的不错方式。但这似乎是一个足够好的赌注,值得尝试。
我们的老师Ulivi教授是个好人。他看到我努力工作,给了我一个好成绩,他写在每个学生都有的某种护照上。但Accademia除了意大利语外没有教我任何东西,而我的钱快用完了,所以在第一年结束时我回到了美国。
我想回到RISD,但我现在破产了而RISD非常昂贵,所以我决定找一年的工作然后在下个秋天回到RISD。我在一家叫做Interleaf的公司找到了一份工作,它制作用于创建文档的软件。你的意思是像微软Word?完全正确。这就是我学到低端软件往往吃掉高端软件的方式。但Interleaf还有几年的寿命。[5]
Interleaf做了相当大胆的事情。受Emacs启发,他们添加了一种脚本语言,甚至使脚本语言成为Lisp的一种方言。现在他们想要一个Lisp黑客来用它写东西。这是我最接近正常工作的事情,我在此向我的老板和同事道歉,因为我是一个糟糕的员工。他们的Lisp是巨大C蛋糕上的最薄糖衣,因为我不知道C也不想学习它,我从未理解大部分软件。而且我非常不负责任。那时候编程工作意味着在某些工作时间内每天出现。这对我来说似乎不自然,而在这一点上世界其他地区正在转向我的思维方式,但当时造成了很多摩擦。在一年结束时,我花了很多时间秘密地研究《On Lisp》,那时我已经获得了出版合同。
好的部分是我得到了巨额金钱,特别是按艺术学生标准。在佛罗伦萨,支付我的房租部分后,我其他一切的预算是每天7美元。现在我每小时得到的报酬比那多4倍以上,即使我只是坐在会议上。通过节俭生活,我不仅设法节省了足够的钱回到RISD,还还清了我的大学贷款。
我在Interleaf学到了一些有用的东西,尽管它们主要是关于不该做什么的。我学到技术公司最好由产品人而不是销售人运营(尽管销售是真正的技能,擅长它的人真的很擅长),当代码被太多人编辑时会导致bug,如果办公室空间令人沮丧那么便宜的办公室空间不是 bargain,计划会议不如走廊对话,大的官僚客户是危险的资金来源,以及常规办公时间和黑客的最佳时间,或常规办公室和最佳地点之间没有太多重叠。
但我学到的最重要的东西,也是我在Viaweb和Y Combinator中使用的东西,是低端吃掉高端:成为"入门级"选项是好的,即使那会不那么有声望,因为如果你不是,别人会是,并且会把你压在天花板上。这反过来意味着声望是一个危险信号。
当我那年秋天离开回到RISD时,我安排为为客户做项目的组做自由职业工作,这就是我在接下来几年中生存的方式。当我后来回来访问一个项目时,有人告诉我一个叫做HTML的新东西,正如他描述的,它是SGML的衍生物。标记语言爱好者是Interleaf的职业危害,我忽略了他,但这个HTML东西后来成为我生活的一个重要部分。
1992年秋天,我搬回普罗维登斯继续在RISD学习。基础课程只是介绍性的东西,而Accademia是一个(非常文明的)笑话。现在我要看看真正的艺术学校是什么样子。但可惜它更像Accademia而不是不像。当然组织得更好,而且昂贵得多,但现在越来越清楚艺术学校与艺术的关系不像医学院与医学的关系。至少绘画系不是。我隔壁邻居所属的纺织系似乎相当严谨。无疑插图和建筑也是。但绘画是后严谨的。绘画学生应该表达自己,对更世俗的人来说这意味着试图搞出某种独特的签名风格。
签名风格是视觉上等同于演艺界所谓的"schtick"的东西:立即识别作品是你的而不是别人的东西。例如,当你看到一幅看起来像某种卡通的绘画时,你知道它是Roy Lichtenstein的。所以如果你看到这种类型的大画挂在对冲基金经理的公寓里,你知道他为此支付了数百万美元。艺术家有签名风格并不总是因为这个原因,但这通常是买家为这类作品支付很多的原因。[6]
也有许多认真的学生:高中时"能画"的孩子,现在来到了据说是全国最好的艺术学校,学习画得更好。他们往往对在RISD发现的东西感到困惑和士气低落,但他们继续前进,因为绘画是他们做的事情。我不是高中时能画的孩子之一,但在RISD我肯定更接近他们的部落而不是签名风格寻求者的部落。
我在RISD的色彩课程中学到了很多,但除此之外我基本上是在自学画画,而这我可以免费做。所以在1993年我退学了。我在普罗维登斯闲逛了一段时间,然后我的大学朋友Nancy Parmet帮了我一个大忙。她母亲拥有的纽约一栋公寓中的一套租金管制公寓正在空置。我想要吗?它不比我现在的贵多少,而纽约据说是艺术家所在的地方。所以是的,我想要它![7]
Asterix漫画开始时放大罗马高卢的一个微小角落,结果证明那里不受罗马人控制。你可以在纽约市地图上做类似的事情:如果你放大上东区,有一个微小的角落不富裕,或者至少在1993年不是。它叫做Yorkville,那是我的新家。现在我是一个纽约艺术家——在制作绘画和生活在纽约的严格技术意义上。
我对钱感到紧张,因为我能感觉到Interleaf正在走下坡路。自由职业Lisp黑客工作非常罕见,我不想不得不用另一种语言编程,在那些日子里如果幸运的话那意味着C++。所以我以我对财务机会无误的嗅觉,决定写另一本关于Lisp的书。这将是一本通俗的书,可以用作教科书的那种。我想象自己靠版税节俭生活,把所有时间花在绘画上。(这本书《ANSI Common Lisp》封面上的绘画是我那时画的。)
纽约对我最好的事情是Idelle和Julian Weber的存在。Idelle Weber是一位画家,早期照相写实主义者之一,我在哈佛上过她的绘画课。我从未认识过比她更受学生爱戴的老师。大量前学生与她保持联系,包括我。搬到纽约后,我成为她的事实上的工作室助理。
她喜欢在大的方形画布上绘画,每边4到5英尺。1994年底的一天,当我正在拉伸这些怪物之一时,收音机里有一些关于著名基金经理的事情。他并不比我大多少,却超级富有。我突然想到:我为什么不变得富有?然后我就能做我想做的任何工作。
与此同时,我越来越多地听到这个叫做万维网的新事物。Robert Morris在我去剑桥拜访他时向我展示了它,他现在在哈佛读研究生。在我看来,web将是一件大事。我已经看到图形用户界面对微型计算机的普及做了什么。似乎web将对互联网做同样的事情。
如果我想变得富有,这是离开车站的下一班火车。我对那部分是对的。我错的是想法。我决定我们应该创办一家公司把艺术画廊上网。老实说,在阅读了这么多Y Combinator申请后,我不能说这是有史以来最糟糕的创业想法,但它是其中之一。艺术画廊不想上网,现在也不想,不是那些华丽的画廊。那不是他们的销售方式。我为画廊编写了一些生成网站的软件,Robert编写了一些调整图像大小和设置http服务器来提供页面的软件。然后我们尝试签约画廊。称之为困难的销售是轻描淡写的。赠送都很困难。一些画廊让我们为他们免费制作网站,但没有人为此付费。
然后一些在线商店开始出现,我意识到除了订单按钮外,它们与我们为画廊生成的网站相同。这个听起来令人印象深刻的东西叫做"网上商店"是我们已经知道如何建造的东西。
所以在1995年夏天,在我将《ANSI Common Lisp》的照相稿提交给出版商后,我们开始尝试编写软件来构建在线商店。起初这将是普通的桌面软件,在那些日子里意味着Windows软件。这是一个令人震惊的前景,因为我们俩都不知道如何编写Windows软件或想学习。我们生活在Unix世界。但我们决定至少尝试在Unix上编写一个原型商店构建器。Robert编写了购物车,我为商店编写了一个新的网站生成器——当然是用Lisp。
我们在剑桥Robert的公寓里工作。他的室友长时间不在,在那期间我睡在他的房间。由于某种原因没有床架或床单,只有地板上的床垫。一天早上,当我躺在那个床垫上时,我有了一个让我像大写L一样坐起来的想法。如果我们在服务器上运行软件,让用户通过点击链接控制它呢?那么我们永远不必编写任何在用户计算机上运行的东西。我们可以在为它们提供服务的同一服务器上生成网站。用户不需要比浏览器更多的东西。
这种软件,称为web应用程序,现在很常见,但当时不清楚它甚至可能。为了找出答案,我们决定尝试制作我们的商店构建器的一个版本,你可以通过浏览器控制。几天后,在8月12日,我们有了一个可用的版本。UI很糟糕,但它证明你可以通过浏览器构建整个商店,不需要任何客户端软件或在服务器上命令行输入任何东西。
现在我们感觉我们真的找到了什么。我预见到一整代新软件将以这种方式工作。你不需要版本,或移植,或任何那些垃圾。在Interleaf,有一个叫做Release Engineering的整个小组,似乎至少和实际编写软件的小组一样大。现在你可以直接在服务器上更新软件。
我们创办了一家新公司,我们称之为Viaweb,因为我们的软件通过web工作,我们从Idelle的丈夫Julian那里获得了10,000美元的种子资金。作为回报,以及做初始法律工作和给我们商业建议,我们给了他公司的10%。十年后,这笔交易成为Y Combinator模式的榜样。我们知道创始人需要这样的东西,因为我们自己需要。
在这个阶段,我的净资产是负的,因为我在银行的大约一千美元被我欠政府的税款超过了平衡。(我是否勤奋地把我为Interleaf咨询赚的钱的适当比例留出来?不,我没有。)所以虽然Robert有他的研究生津贴,我需要那笔种子资金来生活。
我们原本希望在9月推出,但随着我们在其上工作,我们对软件变得更加雄心勃勃。最终我们设法构建了一个WYSIWYG网站构建器,在某种意义上,当你创建页面时,它们看起来完全像以后将生成的静态页面,除了链接不是指向静态页面,而是引用存储在服务器哈希表中的闭包。
学习过艺术是有帮助的,因为在线商店构建器的主要目标是使用户看起来合法,而看起来合法的关键是高制作价值。如果你正确处理页面布局、字体和颜色,你可以让一个在卧室经营商店的人比大公司看起来更合法。
(如果你好奇为什么我的网站看起来如此老式,因为它仍然是使用这个软件制作的。今天看起来可能笨重,但在1996年它是 slick 的最后一步。)
在9月,Robert反叛了。“我们已经为此工作了一个月,“他说,“而它还没有完成。“回想起来这很有趣,因为他几乎还会再为此工作近3年。但我认为谨慎地招募更多程序员可能是明智的,我问Robert谁在研究生院与他一起工作真的很出色。他推荐了Trevor Blackwell,起初这让我惊讶,因为那时我认识Trevor主要是因为他计划将他生活中的一切减少为一堆他随身携带的索引卡片。但Rtm是对的,像往常一样。Trevor被证明是一个惊人有效的黑客。
与Robert和Trevor一起工作很有趣。他们是我认识的最有独立思想的两个人,而且是以完全不同的方式。如果你能看到Rtm的大脑内部,它看起来像殖民时期的新英格兰教堂,而如果你能看到Trevor的,它看起来像奥地利洛可可最糟糕的过度。
我们在1996年1月有6家商店开业了。我们等了几个月是好事,因为虽然我们担心我们迟了,但我们实际上几乎是致命的早。那时新闻界有很多关于电子商务的讨论,但没有多少人真的想要在线商店。[8]
软件有三个主要部分:编辑器,人们用来构建网站,我编写的;购物车,Robert编写的;以及管理器,跟踪订单和统计数据的,Trevor编写的。在它的时代,编辑器是最好的通用网站构建器之一。我保持代码紧凑,不必与Robert和Trevor的以外的任何软件集成,所以工作起来相当有趣。如果我必须做的就是在这个软件上工作,接下来的3年将是我一生中最容易的。不幸的是,我必须做更多的事情,所有这些事情我都不如编程擅长,接下来的3年反而成为最紧张的。
90年代后半段有很多制作电子商务软件的创业公司。我们决心成为Microsoft Word,而不是Interleaf。这意味着易于使用和 inexpensive。我们很穷,这对我们来说是幸运的,因为这导致我们使Viaweb比我们意识到的更加 inexpensive。我们对小商店每月收费100美元,对大商店每月收费300美元。这个低价是一个很大的吸引力,并且是对竞争对手的不断刺痛,但我们低价并不是因为一些聪明的洞察。我们不知道企业为东西支付多少钱。每月300美元对我们来说似乎很多钱。
我们偶然做对了很多事情。例如,我们做了现在被称为"做不扩展的事情"的事情,尽管当时我们会将其描述为"如此 lame 以至于我们被迫采取最绝望的措施来获得用户”。最常见的是为他们建造商店。这似乎特别羞辱,因为我们软件的全部理由是人们可以用它来制作自己的商店。但任何获得用户的事情都可以。
我们学到了比我们想知道的更多的零售知识。例如,如果你只能有一个男人衬衫的小图像(而所有图像按现在的标准都很小),有衣领的特写比整件衬衫的图片更好。我记得学习这一点的原因是这意味着我必须重新扫描大约30张男人衬衫的图像。我的第一批扫描也很漂亮。
虽然这感觉不对,但这正是应该做的事情。为用户建造商店教会了我们零售,以及使用我们的软件的感觉。我最初既困惑又厌恶"商业”,认为我们需要一个"商业人"来负责,但一旦我们开始获得用户,我转变了,就像我有孩子后转变为父亲hood一样。无论用户想要什么,我完全是他们的。也许有一天我们会有这么多用户,我不能为他们扫描图像,但与此同时没有更重要的事情要做。
我当时没理解的另一件事是增长率是创业公司的最终考验。我们的增长率很好。我们在1996年底有大约70家商店,1997年底有大约500家。我错误地认为重要的是用户的绝对数量。而这在某种意义上是重要的事情,那就是你赚多少钱,如果你赚得不够,你可能会倒闭。但从长远来看,增长率会照顾绝对数量。如果我们是我在Y Combinator指导的创业公司,我会说:停止如此紧张,因为你做得很好。你每年增长7倍。只要不要雇佣太多更多人,你很快就会盈利,然后你将控制自己的命运。
唉我雇佣了更多的人,部分因为我们的投资者希望我这么做,部分因为那是创业公司在互联网泡沫期间做的事情。只有少数员工的公司会显得业余。所以我们直到大约1998年夏天Yahoo购买我们时才达到盈亏平衡。这反过来意味着我们在公司的整个生命周期中都受投资者摆布。由于我们和我们的投资者都是创业新手,结果即使是按创业标准也是一团糟。
Yahoo购买我们时是一个巨大的解脱。原则上我们的Viaweb股票很有价值。它是一个盈利且快速增长的业务中的股份。但它对我来说感觉不是很值钱;我不知道如何评估业务,但我非常敏锐地意识到我们似乎每几个月就有一次濒死体验。自从我们开始以来,我也没有显著改变我的研究生生活方式。所以当Yahoo购买我们时,感觉就像从贫穷到富有。因为我们要去加利福尼亚,我买了一辆车,一辆黄色的1998年大众GTI。我记得认为它的皮革座椅单独是我拥有的最奢华的东西。
接下来的一年,从1998年夏天到1999年夏天,一定是我一生中最没有生产力的时期。我当时没有意识到,但我被运行Viaweb的努力和压力耗尽了。到达加利福尼亚后一段时间,我试图继续我通常的编程到凌晨3点的模式,但疲劳加上Yahoo过早老化的文化和圣克拉拉阴郁的立方体农场逐渐拖垮了我。几个月后,感觉令人不安地像在Interleaf工作。
Yahoo购买我们时给了我们很多期权。当时我认为Yahoo被如此高估以至于它们永远不会值钱,但令我惊讶的是股票在第二年上涨了5倍。我坚持到第一批期权归属,然后在1999年夏天我离开了。自从我画任何东西以来已经很长时间了,我半忘记了我为什么这样做。我的大脑4年来完全充满了软件和男人衬衫。但我做这是为了变得富有所以我可以绘画,我提醒自己,现在我很富有,所以我应该去绘画。
当我说我要离开时,我在Yahoo的老板与我就我的计划进行了长时间谈话。我告诉他所有我想画的绘画类型。当时我被他对我如此感兴趣所感动。现在我意识到这是因为他认为我在撒谎。那时我的期权价值大约每月200万美元。如果我把那种钱留在桌子上,只能是为了去创办一些新的创业公司,如果我这样做,我可能会带人一起走。这是互联网泡沫的高峰,而Yahoo是它的震中。我的老板那时是亿万富翁。那时离开去创办一个新的创业公司在他看来一定是一个疯狂的,然而也是看似合理的雄心勃勃的计划。
但我真的是为了绘画而辞职,我立即开始了。没有时间可以浪费。我已经花了4年时间变得富有。现在当我和出售公司后离开的创始人交谈时,我的建议总是相同的:度假。这是我应该做的,只是去某个地方做一两个月什么也不做,但这个想法从未出现在我脑海中。
所以我尝试绘画,但我似乎没有任何精力或雄心。部分问题是我在加利福尼亚认识的人不多。我通过在圣克鲁斯山上买一栋房子而使这个问题复杂化,那里风景优美但离任何地方都有数英里。我坚持了几个月,然后在绝望中我回到了纽约,在那里,除非你了解租金管制,你会惊讶地听到我仍然有我的公寓,密封像我旧生活的坟墓。Idelle至少在纽约,还有其他人在那里尝试绘画,尽管我不认识他们中的任何一个。
回到纽约后,我恢复了旧生活,除了现在我很富有。这听起来很奇怪。我恢复了我所有的旧模式,除了现在有了门,以前没有门。现在当我走累了时,我所要做的就是举起手,而且(除非下雨)出租车会停下来接我。现在当我走过迷人的小餐馆时,我可以进去点午餐。这令人兴奋了一段时间。绘画开始变得更好。我尝试了一种新的静物画,我用旧方式画一幅画,然后给它拍照并在画布上打印出来,放大,然后将其作为第二幅静物画的底画,从相同的物体(希望还没有腐烂)绘制。
与此同时,我寻找要购买的公寓。现在我真的可以选择住哪个社区。在哪里,我问自己和各种房地产经纪人,是纽约的剑桥?借助偶尔访问真正的剑桥,我逐渐意识到没有一个。嗯。
大约在这个时候,2000年春天,我有了一个想法。从我们与Viaweb的经验来看,很明显web应用程序是未来。为什么不构建一个用于构建web应用程序的web应用程序?为什么不让人们通过浏览器在我们的服务器上编辑代码,然后为他们托管产生的应用程序?[9] 你可以在这些应用程序可以使用的服务器上运行各种服务,只需进行API调用:拨打和接听电话,操作图像,接受信用卡付款等。
我对这个想法如此兴奋以至于我无法思考其他事情。很明显这是未来。我并不特别想创办另一家公司,但很明显这个想法必须体现为一个公司,所以我决定搬到剑桥并创办它。我希望引诱Robert和我一起研究,但我遇到了一个障碍。Robert现在是MIT的博士后,虽然上次我引诱他研究我的一个计划时他赚了很多钱,但那也是一个巨大的时间 sink。所以虽然他同意这听起来像一个合理的想法,但他坚决拒绝研究它。
嗯。那么我自己做。我招募了Dan Giffin,他曾为Viaweb工作过,以及两个想要暑期工作的本科生,我们开始尝试构建现在很明显是价值大约二十家公司和几个开源项目的软件。定义应用程序的语言当然是Lisp的一种方言。但我不是那么天真地假设我可以在一般观众面前使用明显的Lisp;我们会隐藏括号,像Dylan那样。
到那时,对于像Viaweb这样的公司有一个名字,“应用服务提供商"或ASP。这个名字在被"软件即服务"取代之前没有持续很长时间,但它流行了足够长的时间以至于我用它命名了这家新公司:它将被称为Aspra。
我开始研究应用程序构建器,Dan研究网络基础设施,两个本科生研究前两个服务(图像和电话)。但在夏天中途我意识到我真的不想经营一家公司——特别不是一家大的,而这看起来必须是一家。我创办Viaweb只是因为我需要钱。既然我不再需要钱了,我为什么要这样做?如果这个愿景必须作为一家公司实现,那么见鬼的愿景。我会构建一个可以作为开源项目完成的子集。
令我惊讶的是,我花在这东西上的时间根本没有浪费。在我们创办Y Combinator后,我经常遇到致力于这个新架构部分的创业公司,而我花这么多时间思考它甚至尝试编写一些部分是非常有用的。
我将作为开源项目构建的子集是新的Lisp,我现在甚至不必隐藏其括号。许多Lisp黑客梦想构建一个新的Lisp,部分原因是该语言的独特特征是它有方言,部分,我认为,是因为我们头脑中有一个所有现有方言都达不到的Lisp的柏拉图形式。我当然这样认为。所以在夏天结束时Dan和我转向研究这种新的Lisp方言,我称之为Arc,在我购买的一栋剑桥的房子里。
第二年春天,闪电击中。我被邀请在一个Lisp会议上发表演讲,所以我做了一个关于我们如何在Viaweb中使用Lisp的演讲。之后我把这个演讲的postscript文件在线发布在paulgraham.com上,这是我多年前使用Viaweb创建但从未用于任何事情的网站。一天内它获得了30,000次页面浏览。到底发生了什么?引用url显示有人把它发布在Slashdot上。[10]
哇,我想,有观众。如果我写些东西并把它放在web上,任何人都可以阅读。现在看起来很明显,但那时令人惊讶。在印刷时代,通往读者的渠道很窄,由被称为编辑的凶猛怪物守卫。为你写的任何东西获得读者的唯一方式是将其作为书出版,或在报纸或杂志中出版。现在任何人都可以发布任何东西。
这从1993年开始原则上就是可能的,但没有多少人意识到这一点。在那段时间的大部分时间里,我一直参与构建web的基础设施,同时也是作家,我花了8年时间才意识到这一点。即使那时,我花了几年的时间才理解其含义。这意味着将有一整代新文章。[11]
在印刷时代,发布文章的渠道已经变得微不足道。除了少数在纽约参加正确聚会的官方任命的思想家外,唯一允许发表文章的人是写其专业的专家。有那么多从未写过的文章,因为没有办法发布它们。现在它们可以了,而我将要写它们。[12]
我从事过几个不同的东西,但如果说有一个转折点我弄清楚要从事什么,那就是我开始在线发表文章时。从那时起我知道无论我做什么,我总是会写文章。
我知道在线文章起初将是边缘媒体。在社会上,它们似乎更像疯子在他们的GeoCities网站上发布的咆哮,而不是《纽约客》中发表的优雅和精美排版的 compositions。但在这一点上我知道足够多,发现这令人鼓舞而不是令人沮丧。
我一生中注意到的最明显的模式之一是,对我至少来说,从事没有声望的事情是多么有效。静物画一直是绘画中最不有声望的形式。Viaweb和Y Combinator在我们开始它们时都显得lame。当陌生人问我我在写什么时,我仍然得到茫然的表情,而我解释说这是我要在我的网站上发表的文章。即使是Lisp,虽然在智力上像拉丁语那样有声望,也似乎同样不 hip。
不是说不有声望的工作类型本身就好。但当你发现自己被某种工作吸引,尽管它目前缺乏声望,这既表明那里有真实的东西可发现,也表明你有正确的动机。不纯的动机对有雄心的人是一个很大的危险。如果任何事情会使你误入歧途,那将是给人留下印象的欲望。所以虽然从事没有声望的事情不保证你在正确的轨道上,但它至少保证你不在最常见的错误类型上。
在接下来的几年里,我写了很多关于各种不同主题的文章。O’Reilly将其中一些的集合重印为一本书,以其中一篇文章命名为《黑客与画家》。我还研究垃圾邮件过滤器,并做了一些更多的绘画。我过去常常每周四晚上为一群朋友举办晚宴,这教会了我如何为群体烹饪。我在剑桥购买了另一栋建筑,一家前糖果厂(后来,据说,色情工作室),用作办公室。
2003年10月的一个晚上,我家里有一个大型派对。这是我的朋友Maria Daniels的一个聪明想法,她是周四晚餐者之一。三个独立的主人都会邀请他们的朋友参加一个派对。所以对于每个客人,三分之二的其他客人将是他们不认识但可能喜欢的人。其中一个客人是我不认识但会非常喜欢的人:一个叫做Jessica Livingston的女人。几天后我约她出去。
Jessica在波士顿一家投资银行负责营销。这家银行认为它了解创业公司,但在接下来的一年中,当她遇到我来自创业世界的朋友时,她对现实多么不同感到惊讶。他们的故事多么丰富多彩。所以她决定编纂一本采访创业公司创始人的书。
当银行遇到财务问题而她不得不解雇一半员工时,她开始寻找新工作。2005年初,她在波士顿一家风险投资公司面试营销工作。他们花了几周时间做决定,在这段时间我开始告诉她所有需要修复的关于风险投资的事情。他们应该做大量的小投资而不是少数几笔巨额投资,他们应该资助更年轻、更技术的创始人而不是MBA,他们应该让创始人保持CEO职位,等等。
我写文章的技巧之一一直是做演讲。必须站在一群人面前告诉他们一些不会浪费他们时间的事情的前景是对想象力的巨大刺激。当哈佛计算机协会,本科生计算机俱乐部,邀请我做演讲时,我决定告诉他们如何创办创业公司。也许他们能够避免我们所犯的最严重的错误。
所以我做了这个演讲,在演讲中我告诉他们种子资金的最佳来源是成功的创业公司创始人,因为他们也会是建议的来源。于是似乎他们都在期待地看着我。对收件箱被商业计划淹没的前景感到恐惧(如果我当时知道的话),我脱口而出"但不是我!“并继续演讲。但后来我突然意识到我真的应该停止拖延天使投资。自从Yahoo购买我们以来,我一直打算这样做,现在是7年后了,我还没有做过一个天使投资。
与此同时,我一直在与Robert和Trevor密谋我们可以一起合作的项目。我怀念与他们一起工作,似乎肯定有我们可以合作的事情。
当Jessica和我在3月11日吃完晚饭走回家时,在Garden和Walker街的拐角处,这三个线索汇聚了。见鬼那些花那么长时间做决定的VC。我们将创办我们自己的投资公司并实际实施我们一直在谈论的想法。我将资助它,Jessica可以辞职为它工作,我们也会让Robert和Trevor成为合伙人。[13]
再一次,无知对我们有利。我们不知道如何成为天使投资人,而在2005年的波士顿没有Ron Conways可以向他们学习。所以我们只是做了看起来显而易见的选择,而我们做的一些事情结果是新颖的。
Y Combinator有多个组成部分,我们没有一次把它们都弄清楚。我们首先得到的部分是成为一家天使公司。在那些日子里,这两个词不会放在一起。有风险投资公司,它们是有组织的公司,人们的工作是进行投资,但他们只做大的、百万美元的投资。还有天使,他们做较小的投资,但这些是通常专注于其他事情的个人,在业余时间进行投资。而且它们都没有在开始时足够帮助创始人。我们知道创始人在某些方面是多么无助,因为我们记得我们曾经多么无助。例如,Julian为我们做的一件看起来像魔法的事情是让我们成立为公司。我们编写相当困难的软件没问题,但实际上成立公司,有章程和股票等等,你到底怎么做?我们的计划不仅是做种子投资,而且为初创公司做Julian为我们做的一切。
YC不是作为一个基金组织的。运行它足够便宜以至于我们用自己的钱资助它。这在99%的读者看来没问题,但专业投资者在想"哇,这意味着他们得到了所有的回报。“但再一次,这不是由于我们任何特别的洞察。我们不知道风险投资公司是如何组织的。我们从未想过尝试筹集基金,如果想过,我们也不知道从哪里开始。[14]
YC最独特的地方是批量模式:一次资助一大批创业公司,一年两次,然后花三个月密集地尝试帮助他们。那部分我们是偶然发现的,不仅仅含蓄地而且明确地由于我们对投资的无知。我们需要获得作为投资者的经验。我们认为,有什么比一次资助一大批创业公司更好的方法呢?我们知道本科生在夏天在技术公司做临时工作。为什么不组织一个夏季项目,让他们在那里创办创业公司呢?我们不会为在某种意义上是假投资者感到内疚,因为他们将在类似意义上是假创始人。所以虽然我们可能不会从中赚很多钱,但我们至少可以在他们身上练习成为投资者,而他们那一部分可能比在微软工作有更有趣的夏天。
我们将使用我在剑桥拥有的建筑作为我们的总部。我们每周二在那里一起吃晚饭——因为我已经在周四为周四晚餐者做饭了——晚饭后我们会带来创业公司专家做演讲。
我们知道本科生那时正在决定暑期工作,所以在几天内我们炮制了一个我们称之为夏季创始人计划的东西,我在我的网站上发布了一个公告,邀请本科生申请。我从未想象过写文章会成为获得所谓"交易流"的方式,但结果证明它是完美的来源。[15] 我们收到了225份夏季创始人计划的申请,我们惊讶地发现其中很多来自已经毕业或即将在春天毕业的人。已经这个SFP事情开始感觉比我们预期的更严肃。
我们邀请225组中的大约20组亲自面试,从中我们选择了8组资助。他们是一个令人印象深刻的群体。第一批包括reddit,Justin Kan和Emmett Shear,他们后来创办了Twitch,Aaron Swartz,他已经帮助编写了RSS规范,几年后将成为开放访问的殉道者,以及Sam Altman,他后来成为YC的第二任总统。我不认为第一批这么好完全是运气。你必须相当大胆才能为像夏季创始人计划这样的奇怪事情报名,而不是在像微软或高盛这样合法的地方做暑期工作。
创业公司的交易是基于我们与Julian的交易(10,000美元占10%)和Robert所说的MIT研究生在夏天得到的(6,000美元)的组合。我们投资每个创始人6,000美元,在典型的两个创始人情况下是12,000美元,回报是6%。那必须是公平的,因为它比我们自己接受的交易好两倍。加上第一个夏天,真的很热,Jessica给创始人带来自由空调。[16]
相当快我意识到我们偶然发现了扩展创业公司资金的方式。批量资助创业公司对我们来说更方便,因为这意味着我们可以一次为很多创业公司做事情,但成为一批的一部分对创业公司也更好。它解决了创始人面临的最大问题之一:孤立。现在你不仅有同事,还有理解你面临的问题并可以告诉你他们如何解决它们的同事。
随着YC的增长,我们开始注意到规模的其他优势。校友成为一个紧密的社区,致力于帮助彼此,特别是当前批次,他们记得自己曾处于他们的处境。我们还注意到创业公司正在成为彼此的客户。我们过去开玩笑地提到"YC GDP”,但随着YC的增长,这变得越来越不像笑话。现在很多创业公司几乎完全从他们的批次伙伴那里获得初始客户群体。
我最初并不打算YC成为全职工作。我要做三件事:黑客技术,写文章,以及在YC工作。随着YC的增长,我对它变得更加兴奋,它开始占据我超过三分之一的注意力。但在头几年我仍然能够从事其他事情。
2006年夏天,Robert和我开始研究新版本的Arc。这个版本相当快,因为它被编译成Scheme。为了测试这个新的Arc,我用它编写了Hacker News。它本来是为创业公司创始人设计的新闻聚合器,被称为Startup News,但几个月后我厌倦了只读关于创业公司的东西。而且我们想接触的不是创业公司创始人。是未来的创业公司创始人。所以我把名字改为Hacker News,主题改为任何引起一个人智力好奇心的东西。
HN无疑对YC有好处,但它也是迄今为止我最大的压力来源。如果我必须做的就是选择和帮助创始人,生活将是如此容易。这意味着HN是一个错误。一个人工作中最大的压力来源至少应该是接近工作核心的事情。而我就像一个人在马拉松中感到疼痛不是由于跑步的劳累,而是因为鞋子不合适起了水泡。当我在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年夏天我母亲中风了,结果证明是由结肠癌引起的血块。中风破坏了她的平衡,她被安置在疗养院,但她真的很想离开那里回到她的房子,我和我姐姐决心帮助她做到。我曾经定期飞往俄勒冈州看望她,我在那些航班上有很多时间思考。在其中一次航班上我意识到我准备好把YC交给别人了。
我问Jessica是否想成为总裁,但她不想,所以我们决定尝试招募Sam Altman。我们与Robert和Trevor交谈,我们同意进行一次完整的换班。直到那时,YC一直由我们四个开始的原始LLC控制。但我们希望YC能持续很长时间,为此它不能由创始人控制。所以如果Sam说同意,我们会让他重组YC。Robert和我将退休,Jessica和Trevor将成为普通合伙人。
当我们问Sam是否想成为YC总裁时,最初他说不。他想创办一家制造核反应堆的创业公司。但我坚持不懈,在2013年10月他终于同意了。我们决定他将从2014年冬季批次开始接管。在2013年的其余时间里,我把YC的运行越来越多地留给Sam,部分是为了让他学习这份工作,部分因为我专注于我母亲,她的癌症复发了。
她在2014年1月15日去世。我们知道这是要来的,但当它发生时仍然很难。
我在YC工作直到3月,以帮助那批创业公司通过Demo Day,然后我相当完全地退出了。(我仍然与校友和对我感兴趣的新创业公司交谈,但这只需要每周几个小时。)
接下来我应该做什么?Rtm的建议没有包括任何关于这个的内容。我想做一些完全不同的事情,所以我决定我会绘画。我想看看如果我真正专注于它我能变得多好。所以我停止在YC工作的第二天,我开始绘画。我生疏了,花了一段时间恢复状态,但至少完全令人投入。[18]
我花了2014年剩余的大部分时间绘画。我从未能够如此不间断地工作,我变得比以前更好。不够好,但更好了。然后在11月,在一幅画的中途,我失去了动力。直到那时我总是好奇地看我正在工作的画会怎样,但突然完成这幅画似乎像一件苦差事。所以我停止了它,清理了我的画笔,从那以后就没有再画过。到目前为止。
我意识到这听起来相当软弱。但注意力是一个零和游戏。如果你可以选择从事什么,而你选择了一个不是最好(或至少是好)的项目,那么它正在妨碍另一个是的项目。而在50岁时,混日子有一些机会成本。
我又开始写文章了,在接下来的几个月里写了很多新的。我甚至写了几篇不是关于创业公司的文章。然后在2015年3月我开始再次研究Lisp。
Lisp的独特之处在于其核心是通过用自身编写解释器来定义的语言。它本来不是打算作为普通意义上的编程语言。它 meant to be一种形式化的计算模型,图灵机的替代方案。如果你想用自身编写语言的解释器,你需要的最少预定义操作符集合是什么?John McCarthy发明,或者更准确地发现,的Lisp是对这个问题的回答。[19]
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日。幸运的是我有一个精确定义的目标,否则很难坚持这么久。
我用Arc本身在Arc中写了这个新的Lisp,称为Bel。这听起来可能矛盾,但它表明我必须从事的那种trickery使这个工作。通过一个令人震惊的hack集合,我设法制造了足够接近用自身编写的解释器的东西,它实际上可以运行。不快,但足够快进行测试。
我不得不在大部分时间禁止自己写文章,否则我永远不会完成。2015年末我花了3个月写文章,当我回去研究Bel时我几乎无法理解代码。不是因为它写得不好,而是因为问题是如此 convoluted。当你在用自身编写的解释器上工作时,很难跟踪在什么层次上发生什么,而当你得到错误时,它们实际上可能被加密。
所以在Bel完成之前我不再写文章。但我在研究Bel时很少告诉别人关于它的事情。所以多年来一定看起来我什么也没做,而实际上我比任何时候在任何事情上都更努力工作。偶尔在与一些可怕的bug斗争几个小时后,我会检查Twitter或HN,看到有人在问"Paul Graham还在编程吗?”
研究Bel是困难但令人满意的。我如此密集地研究它,以至于在任何给定时间我大脑中有相当一部分代码,可以在那里写更多。我记得在2015年一个阳光明媚的日子带男孩们去海岸,当我看着他们在潮汐池中玩耍时,想出如何处理涉及continuations的一些问题。感觉我在正确地生活。我记得那是因为我对这种感觉的新奇感到轻微的沮丧。好消息是我在接下来的几年里有更多这样的时刻。
2016年夏天我们搬到了英格兰。我们希望我们的孩子看到在另一个国家生活是什么样的,既然我出生时是英国公民,这似乎是显而易见的选择。我们只打算住一年,但我们非常喜欢它,以至于我们仍然住在那里。所以Bel的大部分是在英格兰写的。
2019年秋天,Bel终于完成了。像McCarthy的原始Lisp一样,它是一个规范而不是实现,尽管像McCarthy的Lisp一样,它是用代码表达的规范。
现在我可以再次写文章了,我写了很多关于我积累的主题的文章。我在2020年继续写文章,但我也开始思考我可以从事的其他事情。我应该如何选择做什么?嗯,我过去是如何选择从事什么的?我为自己写了一篇文章来回答那个问题,我惊讶于答案多么长和混乱。如果这让我惊讶,亲身经历过的人,那么我想也许对其他人会很有趣,对那些生活同样混乱的人是鼓励。所以我为其他人写了一个更详细的版本,而这是它的最后一句话。
注释
[1] 我的经验跳过了计算机演变的一个步骤:带有交互式操作系统的分时机器。我直接从批处理到微型计算机,这使得微型计算机显得更加令人兴奋。
[2] 意大利语中抽象概念的词语几乎总是可以从英语同源词预测(除了偶尔的陷阱如polluzione)。不同的是日常词汇。所以如果你把许多抽象概念与几个简单动词串在一起,你可以用一点点意大利语走很远。
[3] 我住在San Felice广场4号,所以我去Accademia的路笔直沿着老佛罗伦萨的脊柱:经过Pitti,过桥,经过Orsanmichele,在Duomo和洗礼堂之间,然后上Ricasoli街到San Marco广场。我在各种可能的情况下在街道层面看到了佛罗伦萨,从空荡黑暗的冬夜到街道挤满游客的闷热夏日。
[4] 你当然可以像静物画一样画人,如果你愿意,而且他们愿意。那种肖像可以说是静物画的顶峰,尽管长时间坐着确实倾向于使坐者表情痛苦。
[5] Interleaf是许多拥有聪明人和建造了令人印象深刻技术,却被摩尔定律压垮的公司之一。在1990年代,商品(即英特尔)处理器能力的指数增长像推土机一样碾轧了高端、专用硬件和软件公司。
[6] RISD的签名风格寻求者不完全是 mercenary。在艺术世界,金钱和酷紧密耦合。任何昂贵的东西都被视为酷的,任何被视为酷的东西很快会变得同样昂贵。
[7] 技术上公寓不是租金管制而是租金稳定的,但这是只有纽约人才会知道或关心的细化。重点是它真的很便宜,不到市场价格的一半。
[8] 大多数软件一旦完成就可以推出。但当软件是在线商店构建器而你在托管商店时,如果你还没有任何用户,这个事实将痛苦地明显。所以在我们可以公开推出之前,我们必须私下推出,在意义上招募一组初始用户并确保他们有看起来不错的商店。
[9] 我们在Viaweb中有一个代码编辑器,供用户定义他们自己的页面样式。他们不知道,但他们在下面编辑Lisp表达式。但这不是一个应用程序编辑器,因为代码在商家的网站生成时运行,而不是在购物者访问它们时运行。
[10] 这是现在熟悉经验的第一个实例,接下来发生的事情也是如此,当我阅读评论发现它们充满了愤怒的人时。我怎么能声称Lisp比其他语言更好?它们不都是图灵完备的吗?看到我文章回应的人有时告诉我他们为我感到多么抱歉,但我不夸大地说,从一开始就总是这样。这是这个领域的一部分。文章必须告诉读者他们不知道的事情,而有些人不喜欢被告知这样的事情。
[11] 人们当然在90年代在互联网上放了很多东西,但在线放置东西不等于在线发布它。在线发布意味着你把在线版本视为(或至少一个)主要版本。
[12] 这里有一个一般的教训,我们与Y Combinator的经验也教导:习俗在引起它们的限制消失很久后继续约束你。习惯性的风险投资实践曾经像关于发布文章的习俗一样,基于真实的限制。创业公司曾经昂贵得多,因此相应地罕见。现在它们可以便宜和普遍,但风险投资人的习俗仍然反映旧世界,就像关于写文章的习俗仍然反映印刷时代的约束。
这反过来意味着思想独立(即较少受习俗影响)的人会在受快速变化影响的领域(习俗更可能过时)具有优势。
不过这里有一个有趣的点:你不能总是预测哪些领域会受到快速变化的影响。显然软件和风险投资会,但谁会预测到文章写作会呢?
[13] Y Combinator不是原始名称。起初我们被称为Cambridge Seed。但我们不想要一个地区名称,以防有人在硅谷复制我们,所以我们以lambda演算中最酷的技巧之一Y combinator命名自己。
我选择橙色作为我们的颜色部分因为它是最温暖的,部分因为没有VC使用它。2005年所有VC都使用像栗色、海军蓝和森林绿这样沉闷的颜色,因为他们试图吸引LPs而不是创始人。YC logo本身是一个内部笑话:Viaweb logo是红圆圈上的白色V,所以我使YC logo成为橙方块上的白色Y。
[14] YC确实从2009年开始成为一个基金几年,因为它变得太大我无法再个人资助。但在Heroku被收购后我们有足够的钱回到自筹资金。
[15] 我从来不喜欢"交易流"这个术语,因为它意味着在任何给定时间新创业公司的数量是固定的。这不仅是错误的,而且是YC的目的来反驳它,通过导致原本不会存在的创业公司成立。
[16] 她报告说它们都是不同的形状和大小,因为空调抢购而她不得不得到她能得到的任何东西,但它们都比她现在能携带的重。
[17] HN的另一个问题是当你既写文章又运行论坛时发生的一个奇怪边缘情况。当你运行论坛时,假设你看到如果不是每个对话,至少每个涉及你的对话。而当你写文章时,人们在论坛上发布对其高度 imaginative的误解。单独这两种现象是乏味但可忍受的,但组合是灾难性的。你实际上必须回应误解,因为你在对话中的假设意味着不回应任何足够 upvoted 的误解读作默认承认它是正确的。但这反过来鼓励更多;任何想与你打架的人感觉到现在是他们的机会。
[18] 离开YC最糟糕的事情是不再与Jessica一起工作。我们认识以来几乎一直在YC工作,我们既没有尝试也不想把它与我们的个人生活分开,所以离开就像拔起一棵根深蒂固的树。
[19] 关于发明与发现概念更精确的一种方法是谈论外星人。任何足够先进的外星文明肯定会知道毕达哥拉斯定理,例如。我相信,虽然不那么确定,他们也会知道McCarthy 1960年论文中的Lisp。
但如果是这样,没有理由假设这是他们可能知道的语言的极限。大概外星人也需要数字、错误和I/O。所以似乎至少存在一条走出McCarthy Lisp的路径,沿着它可以保持发现性。
感谢
感谢Trevor Blackwell、John Collison、Patrick Collison、Daniel Gackle、Ralph Hazell、Jessica Livingston、Robert Morris和Harj Taggar阅读草稿。