伟大的黑客
想创办一家初创公司吗? 获得Y Combinator的资助。
2004年7月
(本文源自2004年Oscon大会上的演讲。)
几个月前,我完成了一本新书,在书评中我不断看到“挑衅性”和“争议性”这样的词语……更不用说“白痴”了。
我本意不是让这本书充满争议。我只是想让它更有效率。我不想浪费人们的时间去告诉他们已经知道的事情。直接给他们差异(diffs)更有效率。但我猜这注定会产生一本令人震惊的书。
爱迪生们
关于哪个想法最具争议,这没有争议:即财富的差异可能不像我们想象的那么严重。
我并没有在书中说财富的差异本身就是一件好事。我说在某些情况下,它可能是一些好事的征兆。剧烈的头痛不是一件好事,但它可能是一件好事的征兆——例如,你被击中头部后正在恢复意识。
财富的差异可能是生产力差异的征兆。(在一个人的社会里,它们是相同的。)而_这_几乎肯定是一件好事:如果你的社会没有生产力差异,那可能不是因为每个人都是托马斯·爱迪生。很可能是因为你没有托马斯·爱迪生。
在低技术社会中,你不会看到太多的生产力差异。如果你有一个游牧部落在为篝火收集树枝,最好的拾柴者会比最差的拾柴者效率高多少?两倍?然而,当你给人们一个像电脑这样复杂的工具时,他们可以用它做的事情的差异是巨大的。
这不是一个新想法。Fred Brooks在1974年写过它,他引用的研究发表于1968年。但我认为他低估了程序员之间的差异。他写的是代码行的生产力:最好的程序员可以用十分之一的时间解决给定的问题。但是如果问题不是给定的呢?在编程中,和在许多领域一样,困难的部分不是解决问题,而是决定要解决什么问题。想象力很难衡量,但在实践中,它主导了以代码行衡量的生产力。
任何领域的生产力都存在差异,但很少有领域像编程这样差异如此之大。程序员之间的差异是如此之大,以至于变成了本质上的差异。我不认为这是编程固有的东西。在每个领域,技术都会放大生产力的差异。我认为在编程领域发生的事情只是我们拥有大量的技术杠杆。但在每个领域,杠杆都在变得更长,因此我们看到的差异是越来越多的领域将会看到的。而公司和国家的成功将越来越取决于他们如何处理它。
如果生产力的差异随着技术而增加,那么生产力最高的个人的贡献不仅将不成比例地大,而且实际上会随着时间的推移而增长。当你达到一个群体的90%的产出是由1%的成员创造的时候,如果有什么东西(无论是维京人的袭击,还是中央计划)将他们的生产力拖到平均水平以下,你就会损失惨重。
如果我们想最大限度地利用他们,我们需要了解这些特别有生产力的人。什么激励着他们?他们需要什么来完成他们的工作?你如何识别他们?你如何让他们来为你工作?当然,还有一个问题,你如何成为其中之一?
不仅仅是金钱
我认识一些超级黑客,所以我坐下来思考他们有什么共同点。他们最显著的品质可能是他们真的热爱编程。普通的程序员编写代码是为了支付账单。伟大的黑客认为这是一种他们为了乐趣而做的事情,并且他们很高兴发现有人会为此付钱给他们。
人们有时说伟大的程序员对金钱漠不关心。这不太正确。真正的事实是,他们真正关心的只是做有趣的工作。但是如果你赚了足够的钱,你就可以做任何你想做的事情,因此黑客_确实_被赚取大量金钱的想法所吸引。但是,只要他们仍然必须每天上班,他们更关心他们在那里做什么,而不是他们为此获得多少报酬。
从经济角度来看,这是一个非常重要的事实,因为它意味着你不必支付给伟大的黑客他们应得的报酬。一个伟大的程序员可能比一个普通的程序员效率高十倍或一百倍,但他会认为自己很幸运能获得三倍的报酬。正如我稍后将解释的那样,这部分是因为伟大的黑客不知道自己有多优秀。但这也是因为金钱不是他们主要想要的东西。
黑客想要什么?像所有工匠一样,黑客喜欢好的工具。事实上,这是一种保守的说法。优秀的黑客发现使用糟糕的工具是无法忍受的。他们会简单地拒绝在基础设施不正确的项目上工作。
在我曾经工作过的一家初创公司,我们公告栏上张贴的东西之一是IBM的一则广告。那是一张AS400的照片,标题是,我想,“黑客鄙视它。”[1]
当你决定为一个项目使用什么基础设施时,你不仅仅是在做一个技术决策。你也在做一个社会决策,而这可能是两者中更重要的一个。例如,如果你的公司想编写一些软件,用Java编写它似乎是一个谨慎的选择。但是当你选择一种语言时,你也在选择一个社区。你能够雇佣来从事Java项目的程序员不如你能够雇佣来从事Python项目的程序员那么聪明。而你的黑客的质量可能比你选择的语言更重要。虽然,坦率地说,优秀的黑客更喜欢Python而不是Java这一事实应该告诉你一些关于这些语言的相对优劣。
商业人士更喜欢最流行的语言,因为他们将语言视为标准。他们不想把公司押在Betamax上。但关于语言的事情是,它们不仅仅是标准。如果你必须通过网络移动比特,那么无论如何都要使用TCP/IP。但是编程语言不仅仅是一种格式。编程语言是一种表达媒介。
我读到Java已经超过Cobol成为最流行的语言。作为一个标准,你不能再希望更多了。但作为一种表达媒介,你可以做得更好。在我能想到的所有伟大的程序员中,我只知道一个会自愿使用Java编程。在我能想到的所有不在Sun公司工作,使用Java的伟大的程序员中,我知道的是零。
伟大的黑客通常也坚持使用开源软件。不仅仅是因为它更好,而是因为它给了他们更多的控制权。优秀的黑客坚持控制权。这是使他们成为优秀黑客的一部分:当某些东西坏了时,他们需要修复它。你希望他们对他们为你编写的软件有这种感觉。当他们对操作系统有同样的感觉时,你不应该感到惊讶。
几年前,一位风险投资家的朋友告诉我一家他参与的新创业公司。听起来很有希望。但是下次我和他谈话时,他说他们已经决定在Windows NT上构建他们的软件,并且刚刚聘请了一位非常有经验的NT开发人员担任他们的首席技术官。当我听到这个消息时,我想,这些人注定要失败。第一,首席技术官不可能是第一流的黑客,因为要成为一位杰出的NT开发人员,他必须多次自愿使用NT,而我无法想象一位伟大的黑客会这样做;第二,即使他很优秀,如果这个项目必须建立在NT上,他也很难雇佣到任何优秀的人为他工作。[2]
最后的领域
在软件之后,对黑客来说最重要的工具可能是他的办公室。大公司认为办公空间的功能是表达等级。但是黑客使用他们的办公室不仅仅是为了这个:他们使用他们的办公室作为一个思考的地方。如果你是一家科技公司,他们的想法就是你的产品。因此,让黑客在嘈杂、分散注意力的环境中工作,就像拥有一个空气中充满烟灰的油漆厂。
漫画《呆伯特》对隔间有很多话说,这是有充分理由的。我认识的所有黑客都鄙视它们。仅仅是被打断的可能性就足以阻止黑客处理难题。如果你想在有隔间的办公室里完成真正的工作,你有两个选择:在家工作,或者早到、晚到或在周末来,那时没有其他人在那里。难道公司没有意识到这是一个有问题存在的迹象吗?办公环境应该是_帮助_你工作的东西,而不是你克服的东西。
像思科这样的公司为那里的每个人都有一个隔间而感到自豪,甚至包括首席执行官。但他们并不像他们想象的那么先进;显然他们仍然将办公空间视为等级的象征。还要注意的是,思科以很少在内部进行产品开发而闻名。他们通过购买创建它的初创公司来获得新技术——在那里,黑客们大概确实有安静的地方可以工作。
一家了解黑客需要什么的大公司是微软。我曾经看到过微软的一则招聘广告,上面有一扇大门的图片。为我们工作,前提是,我们将给你一个可以真正完成工作的地方。而且你知道,微软在大公司中是引人注目的,因为他们能够在内部开发软件。也许不是很好,但足够好。
如果公司希望黑客提高效率,他们应该看看他们在家里做什么。在家里,黑客可以自己安排事情,以便他们能够完成最多的工作。当他们在家里工作时,黑客不会在嘈杂、开放的空间里工作;他们在有门的房间里工作。他们在舒适的、邻里般的地方工作,周围有人,并且在他们需要仔细考虑某些事情的时候可以散步,而不是在停车场里的玻璃盒子里工作。他们有一张沙发,当他们感到疲倦时可以小睡一会儿,而不是昏昏沉沉地坐在办公桌前,假装工作。没有一群人带着吸尘器在主要的黑客时间里每天晚上轰鸣而过。没有会议,或者,天哪,公司务虚会或团队建设活动。当你看看他们在电脑上做什么时,你会发现它加强了我之前所说的关于工具的观点。他们可能不得不在工作中使用Java和Windows,但在家里,当他们可以自己选择时,你更有可能发现他们使用Perl和Linux。
事实上,关于Cobol或Java是最流行的语言的这些统计数据可能会产生误导。如果我们想知道什么工具是最好的,我们应该看的是黑客在可以自由选择时选择什么——也就是说,在他们自己的项目中。当你提出这个问题时,你会发现开源操作系统已经占据了主导市场份额,而第一语言可能是Perl。
有趣
除了好的工具,黑客还想要有趣的项目。是什么让一个项目有趣?嗯,显然像隐形飞机或特效软件这样公开性感的应用程序会很有趣。但是如果任何应用程序提出了新颖的技术挑战,它也可能是有趣的。因此很难预测黑客会喜欢哪些问题,因为有些问题只有在从事这些问题的人发现了一种新的解决方案时才会变得有趣。在ITA(编写Orbitz内部软件的公司)之前,从事航空公司票价搜索的人可能认为这是最无聊的应用程序之一。但是ITA通过以更雄心勃勃的方式重新定义问题,使其变得有趣。
我认为同样的事情发生在Google。当Google成立时,所谓的门户网站的传统观点是搜索是无聊且不重要的。但是Google的人并不认为搜索是无聊的,这就是他们做得如此出色的原因。
这是管理者可以发挥作用的领域。就像父母对孩子说,我打赌你不能在十分钟内清理完你的整个房间一样,一个好的管理者有时可以将问题重新定义为一个更有趣的问题。史蒂夫·乔布斯似乎特别擅长这一点,部分原因仅仅是因为他有很高的标准。在Mac之前,有很多小型、廉价的电脑。他将问题重新定义为:制造一台漂亮的电脑。这可能比任何胡萝卜或大棒都能更好地推动开发人员。
他们当然交付了。当Mac第一次出现时,你甚至不必打开它就知道它会很好;你可以从外壳上看出来。几周前,我走在剑桥的街道上,在某人的垃圾中,我看到了一个似乎是Mac手提箱的东西。我看了看里面,里面有一台Mac SE。我把它带回家并插上电源,它启动了。快乐的Macintosh脸,然后是finder。我的天啊,它是如此简单。它就像……Google。
黑客喜欢为有高标准的人工作。但是仅仅要求严格是不够的。你必须坚持正确的事情。这通常意味着你必须自己成为一名黑客。我偶尔会看到一些关于如何管理程序员的文章。实际上应该有两篇文章:一篇是关于如果你自己是一名程序员该怎么做,另一篇是关于如果你不是该怎么做。而第二篇大概可以浓缩成两个字:放弃。
问题不在于日常管理。真正优秀的黑客几乎可以自我管理。问题是,如果你不是一名黑客,你就无法分辨谁是优秀的黑客。一个类似的问题解释了为什么美国汽车如此丑陋。我称之为_设计悖论_。你可能会认为你可以通过聘请一位伟大的设计师来设计你的产品,从而使你的产品变得美观。但是如果你自己没有好的品味,你将如何识别一位好的设计师?根据定义,你无法从他的作品集中判断出来。你也不能根据他获得的奖项或他所做的工作来判断,因为在设计领域,就像在大多数领域一样,这些往往是由时尚和社交驱动的,而实际能力则排在遥远的第三位。没有办法绕过它:如果你不知道什么是美,你就无法管理一个旨在生产美丽事物的过程。美国汽车之所以丑陋,是因为美国汽车公司是由品味不好的人经营的。
这个国家的许多人认为品味是难以捉摸的,甚至是轻浮的。两者都不是。为了推动设计,管理者必须是公司产品最苛刻的用户。如果你有真正好的品味,你可以像史蒂夫·乔布斯那样,让你满意成为优秀的人喜欢从事的那种问题。
讨厌的小问题
很容易说出哪些类型的问题是不有趣的:那些不是解决几个大的、清晰的问题,而是必须解决许多讨厌的小问题的问题。最糟糕的项目之一是编写一个充满错误的软件的接口。另一种是当你必须为单个客户复杂且定义不清的需求定制某些东西时。对黑客来说,这些类型的项目就像千刀万剐。
讨厌的小问题的突出特点是,你不会从中学到任何东西。编写编译器是有趣的,因为它教会你什么是编译器。但是编写一个有缺陷的软件的接口并不能教会你任何东西,因为这些错误是随机的。[3]因此,不仅仅是挑剔让优秀的黑客避免讨厌的小问题。这更多的是一个自我保护的问题。处理讨厌的小问题会让你变笨。优秀的黑客避免它,就像模特避免芝士汉堡一样。
当然,有些问题本质上具有这种特征。由于供求关系,它们的回报特别高。因此,如果一家公司找到一种方法让伟大的黑客从事乏味的问题,它将会非常成功。你将如何做到这一点?
这种情况发生的一个地方是在初创公司。在我们的初创公司,我们有Robert Morris担任系统管理员。这就像让滚石乐队在成人礼上演奏。你无法雇佣到那种人才。但是人们会为他们是创始人的公司做任何数量的苦差事。[4]
更大的公司通过划分公司来解决这个问题。他们通过建立一个单独的研发部门来让聪明的人为他们工作,员工不必直接处理客户的讨厌的小问题。[5]在这种模式下,研究部门就像一个矿井。他们产生新的想法;也许公司的其他部门可以使用它们。
你可能不必走到这个极端。自下而上的编程提出了另一种划分公司的方式:让聪明的人担任工具制造者。如果你的公司制造软件来做x,让一个小组构建用于编写该类型软件的工具,另一个小组使用这些工具来编写应用程序。通过这种方式,你也许能够让聪明的人编写99%的代码,但仍然让他们几乎像在传统研究部门一样与用户隔绝。工具制造者会有用户,但他们只会是公司自己的开发人员。[6]
如果微软使用这种方法,他们的软件就不会有那么多的安全漏洞,因为编写实际应用程序的不太聪明的人不会做像分配内存这样的底层工作。他们不会直接用C编写Word,而是将Word语言的大乐高积木拼凑在一起。(我相信,Duplo是技术术语。)
聚集
除了有趣的问题,优秀的黑客喜欢的是其他优秀的黑客。伟大的黑客倾向于聚集在一起——有时非常壮观,就像在Xerox Parc一样。因此,你吸引优秀黑客的程度不会与你为他们创造的环境成线性比例。聚集的趋势意味着它更像是环境的平方。因此,赢家通吃。在任何给定的时间,只有大约十到二十个黑客最想工作的地方,如果你不是其中之一,你不仅会拥有更少的伟大黑客,你还会拥有零。
拥有伟大的黑客本身并不足以使一家公司成功。它对Google和ITA来说效果很好,它们是目前的热点,但它并没有帮助Thinking Machines或Xerox。Sun曾经有一段时间表现不错,但他们的商业模式是一部向下的电梯。在这种情况下,即使是最好的黑客也无法拯救你。
我认为,在所有其他条件相同的情况下,一家能够吸引伟大黑客的公司将拥有巨大的优势。有些人不同意这一点。当我们在20世纪90年代与风险投资公司打交道时,一些人告诉我们,软件公司不是通过编写伟大的软件来获胜的,而是通过品牌、主导渠道和做正确的交易来获胜的。
他们似乎真的相信这一点,我想我知道为什么。我认为许多风险投资家正在寻找的,至少是无意识地,是下一个微软。当然,如果微软是你的榜样,你不应该寻找希望通过编写伟大的软件来获胜的公司。但是风险投资家们寻找下一个微软是错误的,因为没有一家初创公司可以成为下一个微软,除非另一家公司准备在恰当的时刻弯腰并成为下一个IBM。
使用微软作为榜样是一个错误,因为他们的整个文化都源于那一次幸运的突破。微软是一个糟糕的数据点。如果你把他们排除在外,你会发现好的产品确实倾向于在市场上获胜。风险投资家应该寻找的是下一个苹果,或下一个Google。
我认为比尔·盖茨知道这一点。他担心Google的不是他们品牌的力量,而是他们拥有更好的黑客。[7]
识别
那么,谁是伟大的黑客?你如何知道你何时遇到一个?事实证明这非常困难。即使是黑客也无法分辨。我现在很确定我的朋友Trevor Blackwell是一位伟大的黑客。你可能在Slashdot上读到过他是如何制造他自己的Segway的。这个项目最引人注目的是他在一天之内编写了所有的软件(顺便说一句,是用Python编写的)。
对Trevor来说,这是司空见惯的事情。但是当我第一次见到他时,我认为他是一个十足的白痴。他站在Robert Morris的办公室里,滔滔不绝地向他讲述着这样或那样的事情,我记得站在他身后,疯狂地向Robert示意,让他把这个疯子赶出他的办公室,这样我们就可以去吃午饭了。Robert说他起初也误判了Trevor。显然,当Robert第一次见到他时,Trevor刚刚开始一项新的计划,其中包括将他生活中每个方面的所有内容都写在一堆索引卡上,他随身携带这些索引卡。他还刚从加拿大来,带着浓重的加拿大口音和鲻鱼头。
这个问题因黑客的事实而变得更加复杂,尽管他们以不善社交而闻名,但他们有时会付出很大的努力来显得聪明。当我在研究生院时,我曾经偶尔在MIT人工智能实验室闲逛。起初有点吓人。那里每个人都说得那么快。但是过了一段时间,我学会了说快的技巧。你不必想得更快;只需用两倍的词语来说明一切。
在这种信号中存在如此多的噪音的情况下,很难在你遇到优秀的黑客时分辨出来。即使现在我也无法分辨。你也无法从他们的简历中判断出来。似乎判断一个黑客的唯一方法是和他一起做一些事情。
这就是为什么高科技区域只发生在大学周围的原因。这里的活性成分与其说是教授,不如说是学生。初创公司在大学周围成长,因为大学将有前途的年轻人聚集在一起,让他们从事相同的项目。聪明的人会了解其他聪明的人是谁,他们一起策划自己的新项目。
因为除非与一位伟大的黑客一起工作,否则你无法分辨他,所以黑客自己也无法知道自己有多优秀。这在大多数领域都是如此。我发现,在某方面很出色的人,与其说是确信自己的伟大,不如说是对为什么其他人都显得如此无能感到困惑。
但是黑客尤其难以知道自己有多优秀,因为很难比较他们的工作。这在大多数其他领域更容易。在百米赛跑中,你可以在10秒内知道谁是最快的。即使在数学中,似乎也对哪些问题难以解决,以及什么构成好的解决方案达成了普遍共识。但是黑客就像写作。谁能说两部小说中哪一部更好?当然不是作者。
至少对于黑客来说,其他黑客可以分辨出来。那是因为,与小说家不同,黑客在项目上进行协作。当你有机会在网上向某人提出一些难题时,你很快就会了解到他们如何努力地反击。 但是黑客无法观察自己工作。因此,如果你问一位伟大的黑客他有多优秀,他几乎肯定会回答,我不知道。他不仅仅是谦虚。他真的不知道。
我们谁也不知道,除非是我们实际合作过的人。这让我们陷入了一个奇怪的境地:我们不知道我们的英雄应该是谁。成名的黑客往往是通过随机的公关事故而成名的。偶尔我需要举例说明一位伟大的黑客,但我从来不知道该用谁。首先想到的名字总是倾向于我个人认识的人,但使用他们似乎很蹩脚。所以,我想,也许我应该说Richard Stallman,或Linus Torvalds,或Alan Kay,或像这样的名人。但我不知道这些人是否是伟大的黑客。我从来没有和他们一起做过任何事情。
如果有一个黑客界的迈克尔·乔丹,没有人知道,包括他自己。
培养
最后,黑客们一直在思考的问题:你如何成为一位伟大的黑客?我不知道是否有可能把自己变成一个。但是肯定有可能做一些让你变笨的事情,如果你能让自己变笨,你可能也能让自己变聪明。
成为一名优秀黑客的关键可能是从事你喜欢的事情。当我想到我认识的伟大的黑客时,他们有一个共同点是极难困难让他们从事他们不想做的任何事情。我不知道这是原因还是结果;它可能是两者兼而有之。
要做好某件事,你必须热爱它。因此,在某种程度上,你可以将黑客保留为你所热爱的东西,你很可能会做得很好。尽量保持你在14岁时对编程的奇妙感觉。如果你担心你目前的工作正在腐蚀你的大脑,它可能确实如此。
最好的黑客往往很聪明,当然,但这在很多领域都是如此。有没有一些黑客独有的品质?我问了一些朋友,他们提到的第一件事是好奇心。我一直认为所有聪明的人都很好奇——好奇心只是知识的一阶导数。但显然黑客特别好奇,尤其是关于事物如何运作的好奇。这是有道理的,因为程序实际上是对事物如何运作的巨大描述。
几位朋友提到了黑客的专注能力——正如一位朋友所说,他们“将外界的一切都排除在自己的头脑之外”的能力。我当然注意到了这一点。我听说过几位黑客说,即使喝了半杯啤酒,他们也根本无法编程。因此,也许黑客确实需要一些特殊的专注能力。也许伟大的黑客可以在他们的头脑中加载大量的上下文,以便当他们看一行代码时,他们不仅看到那一行,而且看到它周围的整个程序。John McPhee写道,比尔·布拉德利作为一名篮球运动员的成功部分归功于他非凡的周边视觉。“完美”的视力意味着大约47度的垂直周边视觉。比尔·布拉德利有70度;当他看着地板时,他可以看到篮筐。也许伟大的黑客也有一些类似的与生俱来的能力。(我通过使用一种非常密集的语言来作弊,这缩小了球场。)
这可以解释关于隔间的脱节。也许负责设施的人,没有任何可以打破的专注力,不知道在隔间里工作对黑客来说感觉就像把一个人的大脑放在搅拌机里。(而比尔,如果自闭症的传闻是真的,那就太清楚了。)
我注意到伟大的黑客和一般的聪明人之间的一个区别是,黑客更政治不正确。在优秀的黑客中,如果存在一种秘密握手,那就是当他们彼此足够了解,可以表达会被公众处以石刑的观点时。我可以看到为什么政治不正确会是编程中一种有用的品质。程序非常复杂,并且至少在优秀的程序员手中,非常流畅。在这种情况下,养成质疑假设的习惯是有帮助的。
你能培养这些品质吗?我不知道。但你至少可以不压制它们。所以这是我尽力而为的食谱。如果有可能把自己变成一位伟大的黑客,那么做到这一点的方法可能是与自己达成以下协议:你永远不必从事无聊的项目(除非你的家人会饿死),作为回报,你永远不允许自己做半吊子的工作。我认识的所有伟大的黑客似乎都达成了这项协议,尽管也许他们别无选择。
注释
[1] 公平地说,我必须说IBM制造了不错的硬件。我用一台IBM笔记本电脑写了这篇文章。
[2] 事实证明他们注定要失败。几个月后他们倒闭了。
[3] 我认为这就是人们谈论“生命的意义”时所指的意思。从表面上看,这似乎是一个奇怪的想法。生命不是一种表达;它怎么可能有意义?但它可以有一种感觉很像意义的品质。在一个像编译器这样的项目中,你必须解决很多问题,但这些问题都属于一种模式,就像在信号中一样。然而,当你必须解决的问题是随机的时,它们看起来就像噪音。
[4] 爱因斯坦一度从事设计冰箱的工作。(他拥有股权。)
[5] 很难确切地说在计算机世界中什么构成研究,但作为第一个近似值,它是没有用户的软件。
我不认为发表作品是让最好的黑客想要在研究部门工作的原因。我认为主要是不用与产品经理进行三个小时的会议,讨论将韩语版本的Word 13.27与会说话的回形针集成的问题。
[6] 类似的事情已经在建筑行业发生了很长时间。当你在几百年前建造一座房子时,当地的建筑商建造了其中的一切。但是建筑商越来越多地做的是组装由其他人设计和制造的组件。就像桌面出版的到来一样,这给了人们以灾难性的方式进行实验的自由,但它肯定更有效率。
[7] Google对微软的威胁比Netscape更大。可能比以往任何一家公司都更危险。尤其是因为他们决心战斗。在他们的招聘页面上,他们说他们的“核心价值观”之一是“不做恶”。对于一家销售大豆油或采矿设备的公司来说,这样的声明仅仅是古怪的。但我认为我们在计算机世界中的所有人都认识到这是对谁宣战。
感谢Jessica Livingston、Robert Morris和Sarah Harlin阅读了本文的早期版本。