《硅谷》中的理查德·亨德里克斯一切以效率为重。我们看到他出售Pied Piper的办公用品和电脑,希望能雇佣更多程序员;我们看到他将公司搬回狭小的空间,专注于他的压缩平台;我们尤其能从他的代码中看到这一点。
本周的《硅谷》剧集围绕着一个程序员之间真实存在的争论展开:在代码对齐时使用空格还是制表符。我们使用的所有程序的代码都依赖于复杂的文本分组,这些分组嵌套在彼此内部。为了让人们更容易理解,编码员通过使用制表符或空格进行缩进来分隔这些分组。
一些程序员,比如理查德(托马斯·米德迪奇饰演),偏爱制表符,因为它们更有效率。一个制表符可以代表四个空格,理论上可以让代码更简洁,也更整洁。另一些人则偏爱空格提供的更精确的对齐。
谷歌开源总监、该剧的顾问克里斯·迪博纳说:“对大多数开发者来说,有一个正确的答案。理查德的一切都是为了节省空间和时间。(这)就是压缩的全部意义。”
《硅谷》的副制作人兼技术顾问埃默里图斯乔纳森·多坦说:“归根结底,空格能让你更好地控制缩进方式,并确保它在不同机器上保持一致。此外,理论上使用一个制表符的按键次数可以节省比特——这对理查德这样的工程师来说是一个非常重要的区别。”
在本周的剧集开头,Pied Piper雇佣了几个新员工来帮助构建他们的压缩平台,但当他们开始着手扩展平台时,吉尔弗伊尔(马丁·斯塔尔饰演)解释说,理查德坚决要求在代码中使用制表符而不是空格。
我们还见到了温妮,她在Facebook工作,并开始与理查德约会:但这是一段短暂的恋情,因为她坚持使用空格而不是制表符——这一差异最终导致他们分道扬镳。
这种争论在真实的硅谷是存在的。当该剧的编剧之一丹·莱昂斯在整理素材以贡献剧集时,他打电话给一些程序员朋友,就这个问题进行了民意调查。他的朋友们正在喝酒,并向莱昂斯反馈说:“这是50/50的比例,有人准备打碎瓶子捅死别人。”
本季的技术顾问埃德·麦克马纳斯和多坦甚至试图追溯马克·扎克伯格早期的一些代码,看看他偏爱哪种。据多坦说,他轶事性的支持证据表明,扎克伯格使用了制表符。
正是这种对软件工程师特殊癖好的关注,让《硅谷》看起来如此贴近现实。为该剧提供技术建议的真实硅谷人才库非常深厚,其中包括来自Facebook、Google、Amazon和Dropbox的软件工程师。
关于包含制表符和空格之争的想法,是在第二季编写期间,在位于山景城的Steins Beer Garden的一次晚餐时提出的。迪博纳邀请了10位来自不同类型初创公司和企业的程序员,聊聊构成程序员及其同类痴迷的各种怪癖。该剧创作者迈克·朱奇和执行制片人亚历克·伯格认为这次聚会将填充一个“杂物箱”的抱怨。
迪博纳说:“因为女孩选择了理查德认为非常错误的事情,这导致了分手,这是很荒谬的。”
制表符和空格之间的争论,更多地是代表了创作者和顾问们无法在不让观众流失的情况下提出的“圈内人”话题。每个用过电脑的人都知道空格和制表符的区别,但他们可能不知道什么时候应该使用Python,或者文本编辑器Vim和Emacs之间的战争的细节。(迪博纳偏爱Vim。)
迪博纳说:“当人们把补丁给我们[在谷歌]时,来为我们工作,我们会给他们一份风格指南,并说‘这是你必须使用的才能为我们工作。’制表符与空格的争论,就是所有这些问题的代表。”