作者|译者PeterWayner|由Ethan策划|严正开源理念在编写代码和生产软件方面的优点是毋庸置疑的。许多处于现代计算核心的软件包,从Linux操作系统到MySQL,都是使用开放共享和协作开发的模型创建的。四十年来,伟大的代码在开放哲学的滋养下,解决了关于开源思想是否有效的任何问题。尽管开源如此伟大,但它并非没有缺点。既然开源已经成为主流,让我们考虑一下它的一些缺点,与其说是一种哲学,不如说是一种日常现实。以下是开发人员在为开源项目做贡献时可能会三思而后行的七个原因。1.开源不适用于云今天的许多开源许可证出现在云之前,当时用户通过下载软件并在他们的桌面上运行来访问软件。从那时起,云公司找到了释放开源精神的方法,同时保持对代码更改的所有权。一家大型云公司的开源经理腼腆地告诉我,他们分发软件,所以没有必要共享源代码。正如Drupal(一种用PHP语言编写的开源内容管理框架)的首席执行官在接受采访时所说,“云技术的快速采用实际上可能会阻碍开源活动”,“它将开源开发人员的大量收入转移到云端。”供应商”。有许多云提供商创建特殊版本的开源项目以在云中转售的例子。AmazonWebServices和Elasticsearch的创建者之间的分歧非常明显。当双方无法达成协议时,他们最终分崩离析,单打独斗,现在有两个工作版本的Elasticsearch代码库。一些开源倡导者通过制定更严格的许可或修正案(如公共条款)来抵制云协作选项。我们可能会看到未来的改进,但这些改进对原始开源许可下的遗留系统没有帮助。通用条款许可条件v1.0如下:许可方根据以下定义的许可,根据以下条件向您提供软件。没有限制许可中的其他条件,根据许可授予的权利不包括,也不授予您销售软件的权利。出于上述目的,“出售”是指行使许可授予您的任何或所有权利,以收取费用或其他对价(包括但不限于托管或咨询费用)向第三方提供其价值/与软件相关的支持服务)完全或实质上源自软件功能的产品或服务。许可要求的任何许可通知或归属还必须包括本一般条款的许可条件通知。2.开源存在多样性问题。社区这个词在开源圈子里被广泛使用,但这并不意味着开源文化就是一种香格里拉。首先,开源开发人员可能是一群好斗的人:粗鲁、分散注意力、固执己见且刻薄。众所周知,开源存在多样性问题,一些知名人士,如自由软件运动的精神领袖斯托曼,曾被指责存在种族主义和性别歧视。其次,当个人以相对匿名的方式参与开源项目,仅通过电子邮件或公告板进行交流时,结构性不平等可能不太明显。但有时这种匿名会产生一种脱节感,这会使协作过程变得不那么愉快和包容。3.社区建设和维护需要时间许多企业公司将其产品的开源版本发布为“社区版”。这是一个很棒的营销工具,也是收集想法和有时编写代码以改进产品的好方法。然而,围绕该项目建立一个真正的社区需要时间和资源。当用户和潜在贡献者向在线社区公告板发布问题时,他们希望得到答案。是的,很多贡献都是本着开源精神自由做出的,但培育一个社区仍然需要时间。当它运作良好时,结果可能是一个正在构建出色代码的初出茅庐的团队,但在此过程中通常有很多工作要做。这种权衡的一个结果是大型企业项目往往会主导该领域。他们可以资助具有小公司无法管理的带薪角色的社区模型。4.开源导师少得惊人。同样,许多开发人员乐于与任何人分享他们的代码,但这并不意味着他们想帮助其他人真正学习。授予某人访问Git存储库的权限需要几分钟,但支持他们作为开发人员和共同贡献者的成长是一项重要的承诺。一些项目甚至在他们的资助者协议中包含一个条款,即资助者不应期待入职或支持,甚至答案。从本质上讲,为开源项目做贡献就像灌篮一样:有大量的代码行和需要解决的问题。你会发现很少有评论解释发生了什么。谢谢,祝你好运!5.理想主义者也需要薪水大多数开源开发者都是理想主义者,他们不为名利所驱使,但仍然需要在一个屋檐下吃饭睡觉。现实世界有许多与开源自由共享精神不相容的物理限制。“稀缺”对于数字世界来说可能是一个陌生的词,但对于现实生活形态来说,却是一个非常现实的物质问题。开源非常适合没有人期望获得报酬的小型堆栈和激情项目,但对于全职程序员支持的大型代码库来说,它可能不太适合。如果太多用户选择免费版本,整个项目可能会崩溃。6、Nothingisreallyfree在开源环境呆久了,你可能会遇到缩写词TANSTAAFL(ThereAin'tNoSuchThingAsaFreeLunch.),意思是“天下没有免费的午餐””。RichardStallman喜欢说他想创建一个“像言论一样自由,但不像啤酒那样自由”的软件。用户下载并使用开源软件后,就会开始发现它的局限性。有时代码只需要一些小的改进。有时,它根本无法提供正确的功能。没有人愿意抱怨杯子只装了一半,尤其是当价格为零时。但是在最后期限前填满剩余的半杯会给开发人员带来巨大的负担。即使在99%的时间里免费代码都能让你到达那里,最后1%的旅程也可能是一段非常艰难的旅程。7.有些项目不应该开源一位数据库开发人员告诉笔者,他从来没有真正考虑过开源项目。他的客户是一些拥有大量数据集的大公司。他们有预算,愿意付钱让他做这项工作。如果客户想阅读源代码,他非常愿意让他们这样做。但他不想经历分解项目的官方开放版本的麻烦。开源版本可供广泛的开发人员使用,他们可以帮助共同开发代码。但在某些情况下,货币交换是组织软件开发工作的一种更简单且最终更可持续的方式。原文链接:www.infoworld.com/article/3679870/7-downsides-of-open-source-culture.html
