我在一个由拥有闭源软件的大公司主导的专有世界中作为一名软件开发人员孵化——这没有受到质疑。随着我事业的发展,互联网变得越来越重要,我接触到的开源软件也越来越多。
回顾大多数库,我不是在谈论我们为我的雇主编写的应用程序级代码和实用程序,其中很少有直接的竞争优势,更不用说本质上代表你认为的知识产权。越来越多的库、框架和实用程序具有开源等价物。现在,对于我自己和与我一起工作的开发人员来说,在着手实现此类代码之前首先查找现有库是很常见的。
那已经改变了很多。这些库中的许多可能由于缺乏维护而作为开源而枯萎,如果他们这样做了,我的雇主也不会受到影响。如果他们蓬勃发展或至少吸引了提交,那么这些雇主就会受益——这发生在我现在的雇主身上。
现在,看看我们面前的情况,我开始认为,对于我们将编写的大部分库和框架,我们应该在假设它们将成为开源的前提下创建它们。对于库、实用程序和框架来说,这应该是基本情况,而不是假设它们将被关闭,然后您必须努力使它们打开——事实证明,事后往往需要做更多的工作(获得批准,进行审查和清理)。
随着基本案例是开源的,我认为会有好处:
- 开发人员知道代码将被同行和潜在的未来雇主看到,他们可能会在文档、测试和设计方面更加自律,从而使代码本身更好。只要知道世界将能够看到您的代码就可能会改变您愿意削减的角落。这应该有利于赞助开发的组织。
- 个人开发人员将拥有更大的库和可重用代码来在他们的所有项目中使用,尽管这对个人开发人员来说比赞助组织更有利
- 组织将更有效地分散开发成本,这是开源的核心前提,但如果开放是基本案例,它将更加广泛
- 它目前吸引了某种类型的开发人员加入该组织
- 它不能保证,但它为潜在开发人员提供了进入面试过程的能力,他们已经熟悉公司实际使用的工具和源代码
感觉这是一种趋势,至少在库和框架级别 - 在我看来不是在应用程序级别。这是一个多元化的社区,你怎么看?