Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

3.13 怎样的贡献才够好?

黑客文化评判贡献、给予同行声望自有一套稳定标准,我们可以梳理出如下几条准则:

  1. 如果软件的运行效果不如用户被引导产生的预期,那它就不够好——无论设计多精巧、创意多独到。

请注意“用户被引导产生的预期”这个限定。这条规则并非要求完美;测试版和实验性软件可以有bug。它要求的是:用户能够根据项目所处的阶段和开发者的相关陈述,准确地评估风险。

这条规则也能解释一个现象:开源软件常会长期停留在测试阶段,只有开发者完全确定不会爆出大量棘手问题时,才会打上 1.0 版本号。在闭源世界里,版本号1.0意味着:“如果你够谨慎,那就别碰它。”而在开源世界中,它的含义更像是:“开发者愿意拿自身声誉为产品担保。”

  1. 扩展智域的工作,优于复制现有功能领域的工作。

很多人会简单认为原创优于单纯复刻现有软件功能,但事情并没有那么简单。如果在复刻闭源软件功能的过程中,能够破解封闭协议或私有格式、把这片领域开放出来,那么这份复刻工作的价值和原创不分高下。

因此,举例来说,当今开源世界中声望最高的项目之一是 Samba——它允许 Unix 机器作为微软专有的 SMB 文件共享协议的客户端或服务器运行。这其中需要做的创造性工作极少;主要问题在于确保逆向工程的细节正确无误。尽管如此,Samba 团队的成员仍被视为英雄,因为他们瓦解了微软锁定整个用户群体、圈占大块智域的垄断布局。

  1. 被纳入主要发行版的作品,优于未被纳入的。被所有主要发行版收录的作品声望最高。

主要的发行版不仅包括像 Red Hat、Debian、Caldera 和 SuSE 这样的大型 Linux 发行版,还包括其余同样需要维护口碑、自带质量背书的软件合集——比如 BSD 发行版或自由软件基金会的源码库。

  1. 使用是最真诚的赞美——成为品类杀手(category killers)优于做陪跑者。

信任同行的评判是同行评审机制的基础。没人有精力逐一比对所有同类替代方案,因此受众更广的项目会被视作更优质。

因此,完成一项好到没有人再愿意使用替代品的作品,就能赢得巨大的声望。最高程度的同行声望,来自完成了广受欢迎、成为品类杀手、并被所有主要发行版收录的原创作品。那些不止一次做到这一点的人,会被半开玩笑地称为“半神”。

  1. 对艰苦、枯燥工作的持续投入(例如调试、编写文档),要比专挑“有趣又简单的开发活”摘樱桃式(cherrypicking)取巧a更值得称赞。

这条规范,是社区用来奖励必要任务的——那些黑客们并非天生就愿意去做的事。在某种程度上,它与以下规则相矛盾:

  1. 具备实质价值的功能扩展,优于零散简易补丁与单纯的 bug 修复。

它的实际运作方式似乎是:就单次行为而言,添加一项功能获得的奖励可能比修复一个 bug 更多——除非这个 bug 异常严重或隐蔽,以至于解决它本身就是一种展示非凡技巧和聪明才智的行为。但如果拉长时间维度,一个长年坚持修复普通 bug 的开发者,地位很可能高于同等精力只做简单功能新增的人。

一位受访者指出,这些规则会以有趣的方式相互作用,也并不总是在所有时候都奖励最高的效用。问一个黑客,他更可能因为自己全新的工具出名,还是因为给他人工具做扩展插件而出名,答案毫无疑问是“新工具”。然而,如果问到:(a)一个全新的工具,它可能每天被操作系统在后台默默使用仅几次,但迅速成为品类杀手;与(b)对一个现有工具的几项扩展,它们既不是特别新颖,也不是品类杀手,但每天被大量用户使用且可见——在黑客最终选择(a)之前,你很可能会看到他有些犹豫。这两种选择的分量大致相当。

上述受访者通过补充以下内容,恰如其分地说明了我的问题:“案例(a)是 fetchmail;案例(b)是你众多的 Emacs 扩展,比如 vc.el 和 gud.el。”他说的确实没错;我更可能被标注为“fetchmail 的作者”,而不是“一大堆 Emacs 扩展的作者”,尽管后者在长期来看可能具有更高的总效用。

这里可能发生的情况仅仅是,拥有全新独立标识的项目,比依附已有成熟项目衍生的拓展功能更容易获得关注。对这些规则的阐释,以及它们对黑客文化声望记分系统的启示,将是一个值得进一步研究的好课题。

译者注

a. 摘樱桃(cherrypicking):此处为双关,字面指只拣轻松出彩的工作、回避枯燥基础任务;同时致敬 Git 核心命令 git cherry-pick,开发者常用该命令跨分支摘取指定提交。