开源(open source)是什么?为什么要开源?

7ad96327f0e0739447d1fc997b9a5fd6.gif

636fd9b65c0e3e9e66253b97df0d1147.png

| 转载自:知乎用户Aceyclee的回答

| 编辑:周晶晶

| 设计:朱亿钦

| 责编:王玥敏

从「开源」的早期讲起,其实和大多数人想象的不同,软件一开始并不是闭源的。

在上世纪 60年代,IBM 等公司开发的软件都是自由分发的,同时也提供源代码。那个时候的商业模式更多是以硬件为主,软件作为硬件的附属品,属于支撑硬件工作的东西。这才是开源历史上的早期阶段。

后来随着硬件销售的利润下跌,制造商只能另辟营收,才开始单独销售软件,并且不再提供源代码。从这里也可以看到商业模式在某种程度上,其实也是一种轮回—— Apple 在硬件销售利润上达到了瓶颈,于是开拓了软件服务的收入。

直到 1983年,一位曾在 MIT Al 实验室工作的程序员 Richard Matthew Stallman 对企业在源代码上的垄断非常不满,发起了 GNU 项目,这个项目标志了自由软件运动的开始。

f4687a7cfc0867cacc6d55d9f840b0b8.png

当然,自由软件运动更像是社会运动,而开源则更偏向于软件开发方法。但这并不妨碍我们理解:开源历史的过程其实是——开源 → 闭源 → 再开源

51600a3e04e319d40cab0bb2cef82c8b.png

为什么要开源?

ef6ba36dd17c88b072780b1eb39fcf6d.png

其实在开源史上,我们也可以看到——开源一直和商业是「相爱相杀」的,崇尚自由精神的程序员看不惯大公司对源代码的垄断,发起了自由软件运动:而今天,大公司却纷纷开始拥抱开源。

一个很重要的问题来了 ——软件开源背后的商业模式是什么?

一言概之:开源就是用事实标准去建立生态。换言之,开源是培养用户、确定行业标准和赚钱的重要手段。

比如说云计算行业,像虚拟机、数据库都是商业化比较好的。因为这些技术相对成熟、也有标准的接口,实现也更可靠。很多开发者会将其作为自己的基础技能,因此云厂商可以用标准化来进行规模化,从而实现盛利。

但是另外一些组件,像消息中间件、离线计算等,并没有很统一的标准,开发者使用这些组件的学习的成本比较高,云厂商提供的服务自然也高。所以云厂商就希望通过开源来推广自己的产品,把这些工具发展成为开发者的基础工具

套件,才能提高enterprise 版本的销量。

举个例子,Google 就希望使用 K8S 来确定集群管理的标准。

所以不难看出,开源行为在当前阶段,已经变成了商业的一部分,或者是商业的一种手段。

当然开源本身还是能给开发者带来很多利处的——比如白嫖。但我们也并不需要排斥它有商业的诉求,如果能接受开源就是商业模式的一种,后边我们就可以讨论开源是如何赚到钱的。

18a3cf4bbf7465671e741f3a5aa84ae2.png

b4449f3e05d7b8e79182077523fd588b.png

开源对商业的帮助

还是从事实标准讲起,开源所建立的事实标准带来最明显的好处是——隐形绑定。这个很好理解,某项技术已经是业界标淮了,那你推基于这项技术的产品还很难吗?

与此同时,开源对商业的帮助还在于:开源所形成的社区生态,可以对商业市场产生支撑。

从产品角度而言,社区生态关乎开源产品的可持续迭代,良好的产品迭代是商业化的基础,在此不做冗述。

而从商业的角度来看,对公司来说开不开源其实是一种价格策略——开源与否解决的是价格的问题,开源相当于对该版本进行免费(在该产品采用的协议范围内)。

同样举个例子,软件研发管理平台 CODING 在全面免费之后,收入反而提高了。虽然开源面向的是开发者,但是技术产品的商业行为就是一种 ToB的生意,该付费的还是会付费。(本段内容感谢 @王子赢)

所以我们就不难理解,为什么现在大公司开始扎堆开源,当然有KPI 的因素,但我们今天只讲理论模型。

有些开源项目开着开着就死了,有些开源却能得到公司的长期支持,注意了长期支持一定是要对公司的商业有帮助才行。因此公司在讲开源的时候,背后必然设计了一种商业模型来承载这个项目。

再举个例子吧——阿里的云原生战略(请打钱 @阿里云)

c5dd867ebe3ae245c9eece4fcbd49790.png

基本上大厂的开源方法论,都可以从标准、产品和生态三部曲,来推出厂商的真正商业目的(or野心)。


聊了那么多商业的事儿,铜臭味太大,谈谈开发者理想。

开源绝不代表把代码往 GitHub一扔,公关稿一发,大喇叭一喊——我开源啦!

开源最重要的是社区环境,是一个为 PR (Pull Request) 战斗的游戏,这样的开源项目才能有勃勃生机。

223b53f4cec6fd3e3e7d8be5636c2ebf.png

开源社区如何运作?

一个成功的开源项目,必然有大量的开发者参与。对比于一般的项目管理,它的协作复杂度会空前的高,这个时候如果靠人治、靠热情,显然是不可持续的。

这里推荐一本书 《大教堂与集市》,这本书讲了传统软件开发和开源软件开发在项目管理上的不同之处。

05a6896eb9d553859dd040208f71d7be.png

从书名上我们也可以一窥全豹——传统软件开发的项目管理,更强调明确的目标、工期资源以及质量的之问平衡;而开源项目一般都会依托于开源社区的管理和运营,包括开源基金会的运作,也是遵循开源社区的治理模式。

d17cf151e3d5418e11809b3fac03b243.png

从开源社区治理原则的维度来看,有三点我觉得很重要:

1、公开与透明

如果你提交过代码,你就知道,每次提交都会有 commit 记录。

同理,对于开源项目的任何讨论与决策,也都应该有记录,并且任何人在任何时间都可查询可追潮。

这样才能让第三方开发者(或者其他利益群体)能够聚集到这个开源项目中来。通过公开、透明的讨论、决策来推进项目管理。

2、共识原则

共识意味着彼此尊重,当然某些时候可能会有效率的损失,但这是值得的。因为开源项目的发展一定会涉及不同的开发者、不同的利益群体,达成共识才能推进下一步的前进。

3、精英治理

如果不是开发者,第三个原则可能和大多数人的常识相悖。

是这样的,开源社区的话语权,是由你对项目/社区的贡献大小决定的。你做了贡献,才能得到他人的respect, 才能获得社区给予的职责。

精英可以理解为「有威望」,这样才能够吸引更多的人积极参与到开源项目和社区活动,使之保持活力。

659428be3ac0564edf5f6ee72a5bf437.png

总的来说,在现实意义上,对公司而言,开源是商业手段的一种。但这并不影响开发者在开源过程中受益,它也是开发者技术交流和技术理想的实现过程之一,不必因为「开源行为」刚好也能挣到钱而说它忘了初心。

君不见尤大尤雨溪做开源都财富自由了 (bushi

最后还想说的是——开源项目不只需要程序员,还需要其他各个领域的人才,艺术家、音乐家、设计师和文档撰写者也都可以一起做出完整的作品。

877c03964fdeb70e96ca766f999a4c02.png

相关阅读 | Related Reading

155a854a24d0ffea73bb4802d06b0ce6.png

我的开源故事

62722205dc5ac3c06df5e7b11b7f15d6.png  TiDB in 深圳!开源 + 云原生在金融行业的实践:去 O 之战、海量数据下的高并发、基于 K8s 构筑容器数据库平台...

48e41e206556a1fd64ca37c350dfeba6.png

最后5天,赢取开源社精美纪念品

开源社简介

开源社成立于 2014 年,是由志愿贡献于开源事业的个人成员,依 “贡献、共识、共治” 原则所组成,始终维持厂商中立、公益、非营利的特点,是最早以 “开源治理、国际接轨、社区发展、开源项目” 为使命的开源社区联合体。开源社积极与支持开源的社区、企业以及政府相关单位紧密合作,以 “立足中国、贡献全球” 为愿景,旨在共创健康可持续发展的开源生态,推动中国开源社区成为全球开源体系的积极参与及贡献者。

2017 年,开源社转型为完全由个人成员组成,参照 ASF 等国际顶级开源基金会的治理模式运作。近七年来,链接了数万名开源人,集聚了上千名社区成员及志愿者、海内外数百位讲师,合作了近百家赞助、媒体、社区伙伴。

e05a959708be19be8c95f45dc02a9016.gif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值