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

Open source 基本案例应该是开源的吗?,open-source,Open Source,我是在一个由拥有封闭源码软件的大公司主导的私有世界中孵化出来的软件开发人员——这是毫无疑问的。随着我事业的发展,互联网越来越普及,我接触到越来越多的开源软件 回顾大多数的图书馆,我不是在讨论应用程序代码,我们为我的雇主写的实用程序,很少有直接的竞争优势,甚至更少的本质上代表了你将要考虑的知识产权。越来越多的库、框架和实用程序具有开源等价物。对于我自己和与我一起工作的开发人员来说,在开始实现此类代码之前,首先查找现有库是很常见的 这已经发生了很大的变化。这些库中的许多可能因为缺乏维护而作为开放源代

我是在一个由拥有封闭源码软件的大公司主导的私有世界中孵化出来的软件开发人员——这是毫无疑问的。随着我事业的发展,互联网越来越普及,我接触到越来越多的开源软件

回顾大多数的图书馆,我不是在讨论应用程序代码,我们为我的雇主写的实用程序,很少有直接的竞争优势,甚至更少的本质上代表了你将要考虑的知识产权。越来越多的库、框架和实用程序具有开源等价物。对于我自己和与我一起工作的开发人员来说,在开始实现此类代码之前,首先查找现有库是很常见的

这已经发生了很大的变化。这些库中的许多可能因为缺乏维护而作为开放源代码而消亡,如果他们这样做的话,我的雇主也不会蒙受损失。如果它们繁荣起来,或者至少吸引了投稿,那么这些雇主就会从中受益——我现在的雇主就是这样

现在,看一看未来,我开始认为,对于我们将要编写的大部分库和框架,我们应该在假设它们将成为开源的基础上创建它们。对于库、实用程序和框架来说,这应该是基本情况,而不是假设它们将被关闭,然后您必须努力使它们打开——事实证明,这通常是事后的更多工作(获得批准、执行审查和清理)

由于基本案例是开源的,我认为会有好处:

  • 开发人员知道代码将被同行和未来的潜在雇主看到,他们可能会在文档、测试和设计方面更加严格,从而使代码本身变得更好。仅仅知道全世界都能看到你的代码就很可能改变你想抄的弯路。这将有利于赞助开发的组织
  • 单个开发人员将拥有更多的库和可重用代码,以在其所有项目中加以利用,尽管这对单个开发人员比赞助组织更有利
  • 组织将更有效地分摊开发成本,这是开源的一个核心前提,尽管如果开源是基本情况,它将更广泛
  • 它目前吸引了某类开发人员加入组织
  • 这并不保证,但它为潜在的开发人员提供了进入面试过程的能力,他们已经熟悉了公司实际使用的工具和源代码

我觉得这是一种趋势,至少在库和框架级别是这样,而不是在应用程序级别。这是一个多样化的社区,你的看法是什么?

我认为开源代码总是一件好事(只要它不妨碍利润,如果它是可以/将要盈利的代码)。我见过的开源最大的好处之一是,如果用户想要实现一个功能,他们可以自己实现。它也给了客户一种自豪感——如果你帮助制造了一些东西,为什么还要使用其他东西

从商业的角度来看,以下是一些既能赚钱又能从开源中获益的技术:

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