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

| 编辑:周晶晶

| 设计:朱亿钦

| 责编:王玥敏

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

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

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

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

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

为什么要开源?

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

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

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

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

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

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

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

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

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

开源对商业的帮助

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

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

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

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

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

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

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

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

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


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

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

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

开源社区如何运作?

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

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

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

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

1、公开与透明

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

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

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

2、共识原则

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

3、精英治理

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

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

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

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

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

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

相关阅读 | Related Reading

我的开源故事

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

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

开源社简介

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

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

开源(open source)是什么?为什么要开源?相关推荐

  1. 开源(Open Source)那些事儿 (一)

    景 最近有幸参与了王克伟的开源项目iToday,详情可以参考 我在Windows嵌入式系统上的一个绚丽用户界面开源项目(iToday).克伟的号召力超人,Q群一下子就爆满200人.如果扩容了,大家有兴 ...

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

    从「开源」的早期讲起,其实和大多数人想象的不同,软件一开始并不是闭源的. 在上世纪 60 年代,IBM 等公司开发的软件都是自由分发的,同时也提供源代码.那个时候的商业模式更多是以硬件为主,软件作为硬 ...

  3. 开源要“开”得安全高效:开源云计算的五大发展趋势

    过去几年,开发者几乎都会用到开源.开源现象日益普遍,有赖于业内人士的智慧和努力.不过,更重要的还是开源本身的优势:能够轻易整合多种多样的开源解决方案.在业内,有了API(Application Pro ...

  4. 开源是项“全民工程”,揭秘开源团队的管理运作

    2018年末,GitHub发布了年终总结报告,报告中指出:2018年,Github 注册的新用户数量是前六年的总和,且目前Github上的代码仓库已有1亿个.这样的结果,相信Linus Torvald ...

  5. 开源软件新时代 55个经典开源Windows工具

    开放源代码软件已经成为一个时髦的名词,这里有两个有力的证据:Firefox浏览器的下载人次超过了2500万:同时,基于Linux的Web服务器也占据了最大的市场份额.人们普遍相信,开放源代码软件(op ...

  6. 开源协议有哪些?如何选择开源协议?

    开源软件在追求"自由"的同时,不能牺牲程序员的利益,否则将会影响程序员的创造激情,因此世界上现在有 60 多种被开源促进组织(Open Source Initiative)认可的开 ...

  7. 开源的未来 10 年:中国开源社区建立是关键

    [CSDN 编者按]从 Eric Raymond 在自由软件的范畴下进一步提出 Open Source 开源软件至今,已经过去 30 余年,今天,开源不仅完全渗透互联网,更成为众多 IT 公司的基石. ...

  8. 开源无疆|京东云参加2019开源年会,助力开源

    开源已经成为信息技术发展的重要力量.无论是云计算.大数据,还是人工智能.区块链等领域,都大量采用了开源技术.据 GitHub数据披露,GitHub 注册用户超 4000 万,美国程序员占比20%,中国 ...

  9. 恭喜龙蜥获得中国开源云联盟2022年度中国“最佳开源实践案例”和“杰出开源贡献者”奖项

    近日,由工信部中国电子技术标准化研究院主办的 2022 木兰峰会在北京圆满举办,峰会上正式公布了中国开源云联盟(China Open Source Cloud League,简称"COSCL ...

  10. 谈谈开源的利弊和国内的开源 ——《新程序员005:开源深度指南 新金融背后的科技力量》书评

    感谢CSDN的送测 <新程序员005:开源深度指南 & 新金融背后的科技力量> 是一本以计算机编程和金融科技为主题的杂志书,由中国最大的开源社区之一的开源社主办,内容丰富多样,包括 ...

最新文章

  1. 李飞飞高徒:斯坦福如何打造基于视觉的智能医院?
  2. jQuery 插件开发实例(二)
  3. 分享预告:「数据安全问题」+「 股权与期权」
  4. C#操作XML总结1
  5. 机器学习常用算法(LDA,CNN,LR)原理简述
  6. USB驱动程序之概念介绍学习笔记
  7. 7.2 DOM方法(以动态方式实时创建标记,实质在改变DOM节点树)
  8. 《庆余年》超前点播引发争议,腾讯视频、爱奇艺终于回应了...
  9. 服务器--apache启用多个端口的方法
  10. win10系统自带防病毒配置
  11. Python基础总结
  12. 用java写图形验证码,超级简单
  13. FireFox、chrome通过插件使用IE内核,IE Tab v2
  14. android下载工具 磁力,【安卓+iOS】磁力搜索+下载工具
  15. 北邮计算机学院复试分数线,2018年北京邮电大学复试分数线
  16. jquery事件绑定的问题Uncaught TypeError: $(...).live is not a function at HTMLDocument.<anonymous> (ex5_
  17. 压力测试软件怎么用,鲁大师温度压力测试如何使用
  18. 原生js或者jquery获取父级元素/同级元素/下级元素
  19. SQL Server 2012卸载步骤
  20. wifidog原理分析

热门文章

  1. 玩机搞机------安卓手机分区操作中的的各种工具 提取分区 备份分区 檫除分区 推荐一
  2. 用 Python 画一张北京实时疫情地图:从爬虫到绘图到自动上传服务器
  3. idea安装python
  4. SSL(Secure Sockets Layer)安全套接层协议详解
  5. wordpress使用query_posts()函数获取指定文章
  6. 三年级计算机考试题目及答案,三年级信息技术试题及答案.doc
  7. 最火Python3 玩转实用小工具
  8. 一个随机数引发的血案
  9. mount 硬盘挂载
  10. redhat linux 硬盘挂载方法!!!,Redhat Linux 硬盘挂载方法!!!