基本案例应该是开源的吗?

时间:2020-03-06 14:45:41  来源:igfitidea点击:

我在一个私有世界中被孵化为软件开发人员,而这个私有世界却没有受到质疑,因为它们都是由大型公司主导的具有封闭源代码的软件。随着我职业的发展,Internet的存在越来越多,并且我接触到越来越多的开源软件。

回顾大多数图书馆,我不是在谈论应用程序级代码,也不是我们为雇主编写的实用程序,它几乎没有直接的竞争优势,甚至在本质上也不代表我们认为的知识产权。越来越多的库,框架和实用程序具有开源等效项。现在,对于我本人和与我一起工作的开发人员来说,在着手实施此类代码之前先寻找现有的库已经很普遍了。

事情已经改变了。这些图书馆中的许多图书馆可能由于缺乏维护而成为开放源代码,如果这样做的话,我的雇主也不会因此而受苦。如果他们蓬勃发展或者至少吸引了他们的投稿,那么那些雇主将受益匪浅,这在我目前的雇主身上正在发生。

现在,看着我们面前的东西,我开始认为对于我们将要编写的大部分库和框架,我们应该假设它们将成为开源来创建它们。对于库,实用程序和框架而言,这应该是基本情况,而不是假设它们将被关闭,然后必须进行工作以使其打开,事实证明,事实证明,这样做通常会花费更多的时间(获得批准,执行审核和清理)。

在基本情况是开源的情况下,我认为这样做会有好处:

  • 开发人员知道该代码将被同行看到,并且未来的未来雇主可能会在文档,测试和设计方面受到更多的纪律处分,从而使代码本身变得更好。只要知道世界将能够看到代码,就可能会改变我们愿意砍掉的角落。这应该使赞助开发的组织受益。
  • 单个开发人员将拥有更大的库和可重用代码的主体,以在其所有项目中利用,尽管这对单个开发人员的好处要大于对赞助组织的好处。
  • 组织将更有效地分散开发成本,这是开始时开源的核心前提,尽管如果以开放为基础,那么它将会更加广泛地传播。
  • 目前,它吸引了某种类型的开发人员加入该组织
  • 它并不能保证,但是它为潜在的开发人员提供了已经熟悉公司实际使用的工具和源代码的进入采访过程的能力。

感觉这是一种趋势,至少在我看来,至少在库和框架级别而不是在应用程序级别。这是一个多元化的社区,我们对此有何看法?

解决方案

我认为开放源代码始终是一件好事(只要它不会妨碍利润,如果可以/将要实现暴利的代码)。我所看到的开源最大的好处之一是,如果用户希望实现一项功能,他们可以自己实现。如果我们帮助制造某些东西,它也会给客户带来自豪感,为什么还要使用其他东西呢?

从业务的角度来看,这里有一些赚钱的方法,同时仍然可以从开源中受益:

  • 如果我们担心竞争对手使用代码,请编写一个自定义许可证,该许可证只允许我们在专有应用程序中重复使用该代码。例如,我们可以根据GPLv3许可,但要有额外的条款,使我们可以像在LGPL的条款下一样使用它,并允许将代码与其他GPL产品集成在一起(以便可以将它们混合使用,这很重要)。 OSS的一部分)。这可以让我们获利,但不能让竞争对手获利,而社区却可以受益。
  • 双重许可与第1点类似,但是双重许可使我们难以使用用户提交的代码(因为它将受到OSS许可的约束,并且仅受OSS许可的约束)。我们还可以混合使用这种方法,如果我们打算以商业方式出售该库,这将很有用。
  • 不仅出售代码,还出售其他财产。我知道有一种通过开源代码但出售图形和关卡集而成功的游戏(无论如何是小众独立游戏)。