开源软件为何会成为“兵家必争之地”?

来源:07素材网 01月03日 20:49
如今,开源软件已经成为软件开发的事实标准,并已被各种案例证明,是一种具有可行性的业务模型。虽然,免费提供源代码违背了商业规律,但是并不代表开源模式就不盈利。Red Hat、Canonical等公司的成功说明,开源软件已获得市场认可。以谷歌、Facebook和Adobe等为代表的跨国公司,正在加大开源软件的投资力度,开源软件的价值正在疯长。

其实,开源软件能有今天的成长规模,并不奇怪。开源软件的核心理念是协作和知识共享,这符合正在快速变化着的商业创新。当每个人的潜力都被激发出来,会加速推动商业世界的运转。所以,已经有越来越多的人在思考,如何把开源软件更好地应用于商业场景。

然而,要想实现开源软件的商业化,了解开源软件的起源,非常有必要。

开源的最初理念是自由

自由软件运动,由美国麻省理工学院(MIT)人工智能实验室研究员理查德•斯托曼(Richard Stallman),于1983年发起。最初,是为了对抗商业软件的限制。他认为软件如果失去了自由,就会出现垄断。为此,他建立了自由软件基金会,启动了GNU工程,并提出了Copyleft思想。

Copyleft思想的精髓是,借助GNU通用公共许可证GPL协议,人们可以自由复制、使用、分发和修改软件,并提供程序源代码。唯一要求是衍生软件必须遵循GPL协议,以保证自由软件运动的持续性。

然而,当时像理查德•斯托曼这种支持自由软件的人,毕竟只是少数人群。虽然,强调软件的自由性,对IT业界产生了重大影响,但也存在争议。很多人认为,对于企业来说,过于自由的软件,没有任何意义。但是,几十年后,当自由软件被以“开放源码”的形式再次出现时,企业才领悟到开放源代码带来的好处。

开放软件和软件的商业化并不矛盾

其实,开源和软件的商业化利益,从一开始就紧密联系在一起。当自由软件被重新冠名为“开源”时,目的是让企业在使用软件过程中变得更“自由”。

Apache软件基金会(全称是Apache Software Foundation,简称为ASF),是专门为支持开源软件项目而办的一个非盈利性组织。在它所支持的Apache项目与子项目中,所发行的软件产品都遵循Apache许可证(Apache License)。Apache许可证和GPL一样,都是为了强调自由。这种更具创新性和灵活性的许可证模式,为开源软件的商业化征程铺平了道路。

ASF还为开源和企业之间的交互引入了一种新的方式:企业可以由个人担任在基金会中的代表。维护开源项目的自主性和社区性非常重要,这种模式大大限制了企业项目的垄断。而开发源码的方式,也为开源软件项目创新带来了不竭动力。

GitHub成为开源软件商业化模式的加速器

随着软件自由运动的推进,开源社区GitHub以pull request的形式,助力开源软件腾飞,这种形式让补丁递交比任何时候都更加容易。于是,开源社区模式开始发酵,这种创新的软件开发模式让软件高管们产生极大的关注度。

当越来越多的公司考虑将开源作为其商业战略中的一部分时,开源社区脱颖而出。他们的关注重点,不是要不要参与开源;而是如何参与,并且参与了以后,如何实现商业化。

双重许可是开源软件业务模式的早期方法。在这种模式下,公司以两种不同的许可证提供相同的软件;一种是开源的,另一种是私有的。他们可以控制软件,贡献者可以签署他们的版权。但是,这种模式剥夺了贡献者的权力,并在开源社区中产生新的恐惧。尤其在甲骨文收购Sun以后,对于MySQL来说,前途堪忧。事实说明,大家的这种担忧,并非毫无根据。为了保持开源状态,MySQL建立了一个分支,叫做MariaDB。

所以,整体来看,开源能被商业化模式认可,社区是成功的关键。

开源软件已成为新兴业务的主战场

开放和协作是开源软件的核心,随着开源软件带来的好处不断增加,开源软件已成为大家认可的商业模式,但是也充满着鱼龙混杂,滥用开源的公司。

所以,要想让开源理念继续发扬光大,必须构建良性的开源生态。在这种生态之下,允许开源和专有软件公平竞争,并确保贡献者的利益。Elastic、Docker、Mesosphere、Magento等开源软件核心公司已经申明,在不损害开源社区利益的前提下,建立自己的商业模式,引领整个行业的发展。

总之,开源是一种风气,而不仅仅是一种许可。我们需要正本清源,按照当初既定的理念和道路发展。反过来,成熟的开源模式,也必将成为驱动创新和协作模式的温床。
原文出处:https://www.toutiao.com/a6641729750991634957/
版权声明:本文来源地址若非本站均为转载,若侵害到您的权利,请及时联系我们,我们会在第一时间进行处理。

头条

在使用SQLite3时遇到的几个坑

在使用SQLite3时遇到的几个坑

《本打算在SQLite3数据库里执行一个查询语句,使用的是php语言,起初遇到的是权限问题: permission denied,因为SQLite3数据库文件和PHP执行者属于两个不同的用户,首先需要对这个文件执行mode 777的权限开放,然后,又遇到了下面这样的PHP错误