CSDN资讯

这里,有作为技术人必须知道的业界大事。

免费拿走我的代码可以,但请对使用我的时间付费

编者按:秉持“开放、共享、解惑”的开源项目意味着任何人都能随便使用项目或产品中的代码,但开源并不意味着“拿来主义”,更不应发生“ 00 后 CEO 抄袭了程序员的开源项目”这类的事件。开源项目承载诸多开发者的心血与精力,他们不仅花费了大量的时间进行项目维护,还需要回答问题、读代码、merge PR。由此,本文提议,免费的代码大家可以共用,但应付费订阅,尊重开源项目维护者的劳动成果。以下是译文。

作为软件开发人员,我不得不承认开源代码改变了世界。这些开源软件原本可以变得更好,遗憾的是一些因素阻止了它。精疲力尽且充满失望情绪的项目发起者是造成众多有价值的项目停滞不前的重要原因:

“我不会再投入时间和精力到开源项目中。我为开源工作付出了很多自己的业余时间,这些时间原本可以用来陪伴家人、享受生活或者写作,然而这样的付出并没有收到任何物质方面的回报。我今天在此声明,决定终止目前自己所从事的所有开源工作。”

——Ryan Bigg,多个 Ruby 和 Elixir 项目的早期维护者

“ FubuMVC 占据了我太多时间,这是我现在决定停止它的重要原因。并且在专注 FubuMVC 的过程中,我不得不放弃其他的事情以及自我学习,开源工作的机会成本很高。”

——Jeremy Miller,FubuMVC 的前项目负责人

“当我决定开始要小孩的时候,我可能会放弃开源,一旦有了小孩我的时间将远远不够用,我估计只有放弃开源工作才能真正解决我的问题。

——Nolan Lawson,PouchDB 的维护者之一

我们需要一个新的行业规范:项目开发者付出的时间应该得到经济补偿。此外,我们还需要规避这样的想法,即任何提交问题或请求的开发者都应该获得项目维护者的关注。

有关开源代码库在市场上的使用方式,接下来我们将进行具体解析。开源代码作为实用的软件,企业必须承担开源软件的 License 费用才能将其商业化从而实现盈利。如果用户能够了解代码的原理,并且知道它比替代方案(现成的闭源软件,自定义的内部解决方案,等等)更有价值,围绕软件开发的相关社区就会迅速发展。那么开源其实可以做的更好、耗费更低的成本,或两者兼而有之。

如果一个企业或者组织想要改进代码,他们可以免费聘请任何其想要的开发者。因为诸多开发者参与改进完全出自于自身的兴趣,而将社区的改善归功于社区内部,这样也是有利的。此外由于社区合并的复杂性,基于这种方法,企业或组织可以轻松获得更多用户的支持。这种“重力”倾向于将社区聚集在一起。

但是这也会给项目维护者带来负担,因为他们必须回应这些改进。可同时他们自己得到什么呢?往好处想,他们对于社区贡献值可能将来会体现出来而不是现在。往坏了说,这只是一个戴着利他主义面具的自私请求。

有一类开源项目已经避免了这个陷阱。诸如 Linux、MySQL、Android、Chromium 和 .NET Core 除了有名之外,其他还有什么共同点呢?

它们对于一个或多个大型商业项目具有重要的战略意义,因为它们是这些项目的重要组成部分。聪明的公司将这些开源软件商品化,并且开源软件非常便宜。例如,红帽公司需要更多企业使用 Linux 方便其销售 Linux 企业版,Oracle 使用 MySQL的目的也是为了推广企业版,Google 希望世界上所有人都使用它的手机和浏览器,而微软正试图将开发人员吸引到一个平台上然后推送其 Azure 云服务。这些项目都由各自的公司直接资助。

但是除了拥有强大战略的大项目之外,其他项目如何呢?

如果你是其中一个项目的领导者,则需要征收社区会员年费。代码开源,社区封闭。给用户的信息应该是“用代码做你任何想做的事,但是如果你想影响项目的未来,需要为我们的付出付费 。” 将未付费用户锁定在论坛之外,并忽略他们的电子邮件。应该让不支付的人感觉到他们被社区孤立。

开发者需记住 YAGNI (You Aren’t Gonna Need It,适可而止)这样软件开发原则,即只需要将应用程序必需的功能包含进来,而不要试图添加任何其他你认为可能需要的功能。

这样做会导致社区减小,还是参与者增加呢?如果你坚持构建自己的愿景,并为他人提供有价值的代码,当他们想要参与项目时自然心甘情愿付费。事实上,你贡献应当是稀缺代码,这样,用户必须根据你发布的每个新版本调整他们想要的更改。

如果你希望在代码库中保持高水平的概念完整性,那么限制社区尤为重要。具有自由贡献政策的无头项目很少需要收费。

如果你的项目对其他人有利,为了完成自己的愿景,众筹是获得项目资金的重要方式。下面三个项目就是众筹的成功案例:

众筹的作用有限。它不适用大项目。但需要再次强调的是,开源代码是实用软件,它不需要太大的野心以及冒险的游戏规则。它凭借不断的更新并逐渐渗透到所有行业

这些想法代表着可持续发展的道路,也可以解决开源的多样化问题,这些问题可能源自于之前的无偿性质。但最重要的是让我们明白生命所剩的时光,而且我们有一天会为我们浪费的时间感到遗憾。

当我谈到 “开源 ”时,我的意思是只要代码被许可,就可以用来构建专有的东西。这通常意味着许可证( MIT 、Apache 或者 BSD),但并不总是。比如 Linux 作为当今技术行业的核心,但它却是通过 GPL 授权的。


原文:GIVE AWAY YOUR CODE, BUT NEVER YOUR TIME
作者:William Gross
翻译:安翔

展开阅读全文

没有更多推荐了,返回首页