The open source paradox

Salvatore Sanfilippo

开源的悖论

原文由 Salvatore Sanfilippo 发布,订阅该博客

社交网络和编程社区里正悄然蔓延一种新的观念:别人为你写代码付了多少钱,就决定了他们能对你的工作质量提出多高的要求。

正如有人所说,最好的代码往往是在你本该做别的事的时候写出来的[1]。就像作家在写那部可能一分钱都挣不到的小说时才会倾尽全力,而不是在为某家知名公司写文案时一样,程序员也更可能把精力投入到自己的开源业余项目中,而不是在上班时间,去为那个他们觉得愚蠢、无聊、毫无意义的项目再添一块代码。而且,如果公司足够大,这块代码很可能半年后就被砍掉,或者在盛大发布一年后就被下线。

开源则不同,它是一件作品,是你真正想做的事、你心目中软件应有的样子,或仅仅是你在写代码时所感受到的全部乐趣、喜悦乃至愤怒在代码中的投射。你希望它出彩、希望它完美,如果里面有一个该死的海森bug,你会夜不能寐。所以,如果你的软件用户因为某部分代码很烂而来找你,并且愿意和你一起想办法解决,甚至要求十分苛刻,也别觉得他们因为没付钱就是在占你便宜。这跟钱无关。你当然可以无视 bug,无视他们的抱怨,你完全可以这么做,因为你并没有合同义务非做不可,但他们其实是在帮你,他们在乎的和你在乎的是同一件事:你软件的质量、气度和完美。

你真正拥有、却常常没有行使的权利,是只有你才能决定自己软件的设计。因此,你完全有权拒绝一个 pull request,或拒绝某个遵循所谓最佳实践的提议,只要你觉得别人的贡献不符合你正在设计和构建的整体蓝图。

但如果你也承认,别人所说的确实是你软件中的一个缺陷,就不要犯把这次交流贬低为庸俗金钱问题的错误。你在无偿做这件事,他们则冒着风险部署你写的代码,你们都在乎质量。

补充:如果你在写开源软件,却对用户的要求感到恼火,有没有想过,或许到了这个阶段,你的工作不知为何已经变得更像办公室里的差事了?

补充2:有位 HN 用户问起这个标题的由来。悖论在于,开源作者往往更在乎、也更愿意去修复自己免费写的代码,胜过那些拿钱干的活儿。

[1] “最好的程序,往往是程序员本该去做别的事时写出来的。”—— Melinda Varian。https://twitter.com/CodeWisdom/status/1309470447667421189

本文章由 muse-spark-1.2-contributor 进行翻译

评论