过去几周,我们看到一些组织宣布将开源自己的技术 - 从大型公司,如微软的.Net平台,到刚创立的公司如Midokura的MidoNet技术和最近On.Lab的O.N.O.S.技术。这是除了Beacon, Floodlight, Ryu,OpenContrail和其他一些在网络产业之外的技术。
因此,分析师和记者们不断地问我认为他们成功的机会是什么。有公司还经常向我咨询一些关于他们是否应该将一项技术开源以及是将其作为一个单独的项目还是添加到现存的开源项目中的想法 。总体而言,开源的趋势还是非常令人鼓舞的。与闭源/专有代码不同,开源许可证允许一个人查看代码 - 理解内部运行原理并发现问题,更需要的是受到
启发。开源的真正动力是人们在已有源代码基础上建立的能力。更重要的是要建立一个成功的开源项目而不仅仅是给它粘上一张开源许可证。成功的开源项目,聚集了强大的社区。当我们在要成为一个平台的时候,这一点是非常重要的。如果树倒在树林里,没有人听到它,它会发出声音吗?如果一家公司发布了其技术与开源许可,但是没有人看到它,或者没有使用其技术建立项目,这个开源还重要吗?
社区是一个开源项目的关键。
第一个原因是社区能带来大量的资源。想想选择开源平台有500万美元的启动资金,假设公司都用来搞开发,其项目最多需要雇佣10名开发人员,不管是对大学实验室还是其他小型组织,这种假设都没有区别。请注意,这只是一年。达到一个成熟的平台你可能需要至少三年的努力, 与类似OpenDaylight的社区项目对比一下。项目合同向每一个白金卡会员承诺每年10FTEs。而这些仅仅是正式承诺;为这个平台的发展做出贡献的还有数百人。再举一个例子,想象一下,如果你正打算与OpenStack的竞争。你的挑战并不仅仅是实现OpenStack当前的功能,而且在未来的几年OpenStack的开发者们将能够添加/改善/增强什么功能。这是一个艰巨的任务,没有一个人应掉以轻心。
第二个关键原因,一个开放社区如何带来理念,技术和观点的多样性。将Linux转化成一个如此成功的项目部分原因就是已解决了矛盾的用例广泛的多样性。尽管Linux可能无法驱动大多数桌面,启动Qumranet用它来驱动服务器虚拟化(KVM),谷歌用它来给安卓手机供电,Docker用它来存储电源,Tesla用它来驱动他们的汽车,等等,等等,等等。
第三,一个社区有助于确认市场的走向。每个软件项目都有其早期挑战.将开源嵌入到他们的解决方案或发布版本中的供应商起着至关重要的作用.供应商识别用例和解决方案,聚集组件和在识别和修复bug上的大量投资。他们的销售人员忙于与客户打交道,将目标和约束条件统一起来,并用于项目的建设。Vendors树立意识,支持评估,执行装置和集成,并提供持续的支持。事实上,这产生了一个积极的反馈循环,供应商和客户在商业上依赖于共同开放的源代码。他们必须改进代码以加强和创新自己的产品。这些改进然后回馈到项目中,每个人都会受益。该项目的下一个版本以这种循环再次开始不断扩大的创新周期。
如果你要寻找最成功的开源项目,比如Linux,Hadoop,OpenStack还有OpenDaylight,一个共同点就是他们都从供应商那里得到大量的支持。那他们是供应商驱动的吗?从某种意义上说,是的,但是如果他们没有解决真正的终端用户问题的话他们是不会成功的。供应商的参与是一个重要的特点,而不是错误。事实上,在开源“的供应商”和“用户”之间作出区分是一个常见的错误。在开源中,每个人都是用户,IT供应商使用开源代码建立项目,云服务提供商使用代码创建服务,社交网络使用代码使人们联系起来。供应商、服务提供商、web领域——他们都是开源的用户。这再一次说明为什么社区是很重要的——不是关于供应商vs.用户的陈旧的观点。
那么你如何建立一个社区呢?这并不简单。它开始就需要解决一个主要的问题,谁来提供资金和哪些有智商和激情的人来解决这些问题。它需要巨大的投资——在组织结构、基础设施、雇员的增加和宣传方面。仔细看看一些主要的开源项目,你会发现这些社区一起带来一系列的关键活动。峰会,设计论坛,地区性的小型首脑会议,hackfests,社区晚宴, meet-ups,邮件列表,以及项目要求。招聘人员,发布管理者,社区管理员,市场营销员等成员- 每个人都起到了不同的作用,但是对项目的成功至关重要。建立一个成功的开源社区与建立一个成功的公司不同。社区有许多要素要综合起来考虑。
这些开源的尝试有多少会成长为成功的开源社区呢?有多少创业公司成长为成功的企业呢?风险投资经常会发现他们的投资有十分之一的机会命中大的,三分之二的机会稍微命中,其余都会失败,根据我的经验来说,对于开源项目也是一样的。
原文:
http://blog.csdn.net/u014697424/article/details/41844873
分享到:
相关推荐
总的来说,选择开源许可证应根据项目的目标、社区期望以及开发者对代码使用的控制程度来决定。每个许可证都有其独特的哲学和目的,理解这些差异是参与开源项目的关键步骤。开源许可证的学习和理解不仅对程序员有益,...
2. 开源许可证可以吸引社区贡献:开放源代码可以激发社区成员的参与,共同推动项目发展。 3. 专利保护:选择合适的许可证可以帮助企业平衡开源和专利保护的需求。 五、总结 2018年的开源许可证使用指南详细介绍了...
- **定义**:GPL是一种强“传染性”的开源许可证,任何使用或修改了GPL许可下软件的衍生作品都必须以相同的许可证发布。 - **特点**: - **强制开源**:一旦使用了GPL许可证下的代码,就必须公开所有基于此代码的...
- **社区参与程度**:鼓励社区贡献的项目可能更适合宽松的开源许可证。 5. **许可证的法律约束** 不遵守软件许可证可能会导致法律纠纷,包括但不限于侵权诉讼、赔偿损失等。因此,无论是开发者还是用户,都需要...
MIT 许可证是一种非常宽松的开源许可证,允许用户自由地使用、复制、修改、合并、发布、分发、子许可和/或销售软件副本,同时要求保留原始作者的版权和许可通知。这种许可证鼓励软件的广泛使用和共享,通常适用于...
这些社区遵循特定的开源软件许可证,公开软件源代码,为成员提供了自由学习和交流的环境。开源社区在推动软件发展方面扮演着至关重要的角色,特别是在当前的软件设计、架构和开发中,开源技术已经成为主流。 在开源...
开源技术发展介绍 开源技术发展介绍是指开源技术的定义、分类、...开源技术发展介绍是一个非常广泛的领域,涉及到开源定义、开源许可证、开源软件的发展趋势、应用原因、发展历程、社区现状、盈利方式等方面的内容。
在开源社区中,存在着多种不同的开源许可证,每种许可证都有其独特的特性和适用范围。 #### 二、常见开源协议介绍 1. **LGPL (GNU Lesser General Public License)**: - **特点**: LGPL 是 GPL 的一个变体,适用...
10. 开源许可:理解不同的开源许可证(如MIT, GPL, LGPL等),知道它们对使用、修改和分发开源软件的限制。 通过深入研究这些知识点,我们可以不仅成为PHP开发的专家,还能在本地化和国际化方面有所建树,为全球的...
5. 法律合规:关注软件许可证合规性,确保社区活动符合法律要求。 6. 商业模式:研究社区如何与商业利益相结合,实现可持续发展。 三、开源社区发展趋势 1. 多元化参与者:企业、政府、非营利组织和个人开发者...
6. **开源许可证**:开源软件会附带特定的许可证,如MIT、Apache 2.0等,这些许可证规定了其他人使用、修改和分发代码的规则,保护了开发者和使用者的权益。 7. **协作与贡献**:开源社区鼓励用户参与贡献,无论是...
这可能是开源、商业或其他类型的许可证,规定了如何合法地使用、修改和分发该控件的代码或二进制文件。 描述中的“请大家帮忙,谢谢”可能暗示了发布者遇到了与许可证相关的疑问或者问题,可能是在尝试集成、修改或...
许可证是开源软件的核心组成部分,它规定了代码的使用规则,确保了开源社区的公平与和谐。例如,GPL(GNU General Public License)许可证要求任何基于此开源代码的产品也必须开放源代码,而Apache License 2.0则...
- **许可证兼容性**:不同的开源许可证之间可能存在兼容性问题,但大多数许可证都致力于保持一定程度的兼容性,以便于软件组件之间的组合使用。 #### 开源许可对软件行业的影响 **1. 商业模式的变化** 开源许可...
开源许可证如GPL、Apache License、MIT License等具有各自的规定,如不正确遵循,可能引发版权纠纷或法律诉讼。 (4)缺乏专门的开源治理团队和流程。大部分金融机构尚未建立专门的开源治理团队,缺乏系统的开源...
在所有许可证种类中,GPL 许可证最为严格,具有高传染性,对于在逻辑上与开源软件的源代码有关联且整体发布的衍生作品,只要有一部分受 GPL 开源许可证约束,则整个衍生作品都受 GPL 开源许可证约束而必须开源。...
使用该许可证的开源项目必须在其产品或衍生品 (比如打印的PCB) 上面的明显位置清晰的注明项目源作者版权信息和"KCORES"字样.使用该许可证的开源项目必须在其编译后的软件界面上注明项目源作者版权信息和"KCORES"字样...
Webpack是JavaScript开发中的一款强大的模块打包工具,它能够将各种资源如JavaScript、CSS、图片等组合成一个或多个...开发者应该充分利用这类工具,确保项目在遵循开源社区规则的同时,也满足自身对许可证管理的需求。
常见的开源许可证有MIT、Apache 2.0、GPL等,每种许可证都有其特定的使用规则,开发者在使用这些代码时,应当了解并遵守相应的许可证条款。 开源代码的使用通常涉及到以下几个方面: 1. **学习与研究**:通过阅读源...
Apache 2.0许可证通常用于鼓励开源协作,同时允许商业使用,这使得Sourcetree成为开发者社区中广泛采用的工具。 在压缩包中,"sourcetree.license" 文件很可能是包含了Sourcetree软件的具体许可协议文本,详细规定...