前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >什么是开源开发模式? | 自由、闭源与开源的区别

什么是开源开发模式? | 自由、闭源与开源的区别

作者头像
TARS基金会
发布于 2022-08-31 01:54:19
发布于 2022-08-31 01:54:19
1.4K0
举报
文章被收录于专栏:TARS基金会TARS基金会

开源软件是指公开可用的计算机源代码,其特性允许任何人都可以查看、修改和分发开源代码。其中,开源社区使用分散和协作的方式进行开源软件的开发。因此,与单个公司或个人开发的软件相比,开源软件更便宜、更灵活。如今,开源软件已被公司和个人用户广泛使用,每年都会创建数千个新的开源项目。在本文中,我们将讨论开源开发模式、自由、闭源和开源软件之间的区别,以及为开源社区中的趋势。

*本文来源于TARS Ambassador Isabella Ferreira文章:《What is the open source development model and what are the characteristics of open source contributors?》

开源社区有着一套用于开发开源软件项目的过程,也被称为开源开发模型[6]。首先,该过程是由一个新想法开始的,可以是一个新项目、新特性或是对现有项目的提升。然后,基于这个被提议的功能,社区里志愿的开发人员完成相关开发并创建一个对现有项目的合并请求。接着,社区中更有经验的人(通常是维护者或审查者)将审查被提交的代码更改并决定是否应将其合并到代码的主要版本中。审阅者/维护者也可能要求作出一定的修改。由社区决定在软件发布中包含该提议功能后,当前版本将作为一个开发版本来发布,即使它可能包含已知和未知的bugs。然后,该软件将由社区进行测试,社区通过邮件列表或其他讨论渠道(例如Slack)讨论该软件,并提供反馈、创建错误报告或提交对遇到的错误的修复。项目成员和维护人员会记录并考虑社区反馈并改进实施,然后将提供新的开发版本。这个反馈循环一般需要发生多次,直到项目成员认为软件的执行足够稳定。当该执行能够作为稳定版本发布时,开发周期会随着开发版本(也称为开发树)继续进行,直到有更新的稳定版本可用。此外,开源软件是在开源许可下发布的,因此任何人都可以查看、修改和分发源代码。

目前大多数开源项目都托管在GitHub上,一个分布式版本控制和源代码管理平台。GitHub 还允许开源项目跟踪错误、功能请求、文档和任务。通过访问GitHub,用户可以访问源代码存储库,还可以通过开发新代码、修复错误或编写文档等方式为开源项目做出贡献。著名的开源项目有Linux、 Kubernetes和TARS。

如今,开源软件的使用比以往任何时候都多。开源项目可能会捐赠给开源基金会,这些非营利组织旨在支持新的开源项目,整合相关的开源项目,为项目提供业界的认可,通过治理促进开源项目的发展,并尽量减少潜在失败的风险。一个很好的例子是2018年捐赠给Linux基金会的TARS项目。在LF和广大开源社区的支持下,TARS项目在 2020 年发展成为TARS 基金会。

自由软件运动由Richard Stallman 于 1983 年通过GNU 项目发起。这个想法是用户应该可以自由地查看源代码、修改并重新分发它。相反,专有或闭源软件是只有所有者才有权访问源代码的软件。闭源的软件不能被外界合法更改或复制,通常付费用户才能使用该软件。

然而,自由软件长期以来被误解为人们认为自由软件意味着免费拥有它,也就是无需付费购买。事实并非如此!自由软件意味着开发者能够以自己想要的方式使用软件。为了解决这个误解,自由软件被开源取代,开源是一个专注于源代码的术语。开源一词是由 Christine Peterson 创造的,他在一个致力于使开发模型更广泛的工作组中提出了用开源软件替换自由软件的想法。该小组希望每个人都知道软件在共享、协作和开放时会更好发展,能够变得更灵活、更便宜,并且没有供应商锁定。

1997 年,作为该工作组成员之一的 Eric Raymond 发表了著名的论文《大教堂与集市》 ,介绍了如何创建优秀的开源软件。到 1998 年,开源计划(OSI) 被创建并正式定义了开源术语及其定义。

在选择开源或是闭源软件时考虑它们的特点是很有必要的,我们在下面列出了前 5 个差异 [3]:

  1. 价格:开源是没有许可或使用费,而闭源的使用成本会取决于软件的规模等。
  2. 自由定制:开源是完全可定制的,但具体取决于开源许可证。然而,在封闭源代码中,用户需要向销售软件的公司请求更改。
  3. 支持:流行的开源软件(如Red Hat)有很多支持。除此之外,用户可以在用户论坛和邮件列表上找到社区的帮助。在闭源代码中,通常有一个专门的支持团队,支持取决于服务水平协议 (Service-level agreement; SLA)。
  4. 安全性:开源软件有一个完整的社区来审查代码,这使得错误很快被发现并改正。在闭源代码中,软件分销商负责修复发现的错误。
  5. 供应商锁定:开源没有供应商锁定。然而,在闭源代码中,使用专有软件要求大量投资,因此更换到不同的供应商可能会花费很多钱。

与闭源软件相比,开源具有许多优势也被更广泛地使用。根据2021年 Octoverse报告,2021 年有 7300 万以上的开发者使用了 GitHub 平台,其中 1600 万以上是新用户。

图 1 显示了每个国家的项目数量。在2017年11月,在Mombach 等作者进行的一项关于5,388 个项目地分析中呈现这些项目分布在超过 77 个国家。

这些年来,中国的项目一直在显着增长。从 2012 年到 2018 年,Linux 基金会的中国会员增加了 400% 以上 [4]。此外,中国公司现在在云原生计算基金会托管的项目的贡献排名第三,仅次于美国和德国。作为中国项目成长的一个例子, TARS 过去一年贡献者数量增加了 13%,提交数量增加了 34.23%。

图 1:每个国家/地区的 GitHub 项目数量 [1]

同样,2021 年 GitHub 上的大多数活跃用户来自北美和亚洲(见图 2)。虽然北美的活跃用户数量与 2020 年相比下降了 2.3%,但亚洲的活跃用户数量增加了 0.3%。

关于 GitHub 用户,94% 的开源用户是男性,只有 6% 的开源贡献者是女性。根据一项开源调查 [5],与男性相比,为开源做出贡献的女性人数非常少,因为女性更有可能遇到让她们感到不受欢迎的语言或内容以及刻板印象。此外,女性也比男性更有可能向她们认识的人寻求帮助,而不是在公共论坛或渠道(如在开源软件中)寻求帮助。

图 2:活跃用户的地理分布,来自2021 年 GitHub Octoverse报告

除了活跃用户数量众多,许多公司也为开源做出了贡献。根据开源指数(open source index),截至 2022 年 1 月,谷歌、微软和红帽是拥有员工为开源做出贡献的前 3 名组织(详见下图)。

图 3:组织按员工年初至今在 GitHub 上的开源贡献量排名,摘自Open Source Index。

开源软件比闭源软件有很多优势,其中包含的层面有价格、自由定制、技术支持、安全性以及供应商锁定。此外,美国和中国是 2021 年开源的主要贡献者,尤其中国项目一直在增长,而且中国开发者将成为国际开源软件组织的重要力量之一。

文献参考

[1] Mombach, Thais, et al. "Open source development around the world: A comparative study." arXiv preprint arXiv:1805.01342 (2018).

[2] https://medium.com/intuit-engineering/open-source-where-are-the-women-ae20623529ca#:~:text=Currently%2C%20open%20source%20is%20dominated,tech%20industry%20(25%25)%C2%B9.

[3] https://www.synopsys.com/glossary/what-is-open-source-software.html

[4]

https://merics.org/en/short-analysis/china-bets-open-source-technologies-boost-domestic-innovation

[5] https://www.toptal.com/open-source/is-open-source-open-to-women

[6] http://aaaea.org/Al-muhandes/2008/February/open_src_dev_model.htm


TARS基金会是Linux基金会下的非营利性、微服务基金会,致力于建设一个强大而灵活的微服务生态系统。无论你在哪个行业,无论你使用什么技术栈,这里能助你快速实现你的创意。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TARS星球 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
wordpress统计某段时间用户发帖量-文曦博客
  统计用户某段时间的发帖量,展示图片如图:         可以排除某些用户ID         可以调整选择页的选项个数,我的是12个月         当然,你也可以自己
雾海梦曦
2022/11/14
4380
wordpress统计某段时间用户发帖量-文曦博客
居然可以用 js 写 PPT?
用powerpoint或者keynote写演示文稿,对于代码、数学公式等的支持一直是个痛点。而且对于前端同学来说,一身的css功力用不上也是个痛点。对于使用markdown来写文档的同学来说,将文档转成ppt需要重新排版也是件重复性的工作量。
winty
2021/08/24
9.5K0
居然可以用 js 写 PPT?
使用MathJax在网页中显示MathML和LaTeX公式
MathJax是适用于所有现代浏览器的LaTeX,MathML和AsciiMath表示法的开源JavaScript显示引擎。
布禾
2020/10/29
2.5K0
使用MathJax在网页中显示MathML和LaTeX公式
按需调用KaTeX渲染数学公式
某些Typecho主题没有添加对于LaTeX数学公式的支持,在这里给出几种手动添加的方法。其他博客如WP,Hexo同理也可使用。
蒟蒻
2023/11/16
6290
MathJax:让前端支持数学公式
博主使用Vue开发的个人博客,博文使用markdown语法编写,然后交给前端渲染。为了更方便的进行说明和讲解,需要前端支持LaTex的数学公式,并且渲染好看的样式。
心谭博客
2020/04/20
2.3K0
渲染数学公式之--MathJax
KaTeX和MathJax都是用于在网页上渲染数学公式的JavaScript库,但它们在多个方面存在显著差异:
一起重学前端
2024/09/21
5590
Ghost 博客平台安装和配置
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Alan Lee
2019/09/19
1.6K0
Ghost 博客平台安装和配置
DiceCTF@Hope-Web部分题解
https://cloud.tencent.com/developer/article/1515861
pankas
2022/08/10
6150
DiceCTF@Hope-Web部分题解
Jekyll 优化合集
  Jekyll 是一款采用 Ruby 语言编写的、非常方便简单又功能强大的静态站点生成器,适合于搭建个人博客、静态网站等。我们知道,Github Page 默认支持的也是 Jekyll,而非 Hexo、Hugo等静态站点生成器。Hexo 是用 NodeJS 语言编写的,Hugo 是用 Go 语言编写的,它们三者背后其实都有非常丰富的插件来增强它们自身,从而为用户提供一个可插拔式的个人定制功能。由于本站目前是采用 Jekyll 来搭建的,所以为了提供给读者更加高效的阅读条件,笔者在廖柯杰大佬开发的 H2O 主题的基础上做了一些功能上的增加和优化,接下来就来详细介绍一下。
zhonger
2022/10/28
2.1K0
Jekyll 渲染 LaTeX 数学公式
最近又在看深度学习相关的内容,并且讲学习笔记呈现在了博客上,课程中有很多的公式,之前都是靠着截图的,但是这样就太繁琐了,想着如果能够直接敲公式的话效率就会高点了,就去看了一下 LaTeX 的语法,好像挺简单的,就稍微学习了一下,想发布到博客上发现渲染不出来
棒棒鸡不棒
2022/09/01
1.3K0
Jekyll 渲染 LaTeX 数学公式
网页引入mathjax,latex
Mathjax:2.x 整理一 <script type="text/x-mathjax-config"> MathJax.Hub.Config({ showProcessingMessages: false, messageStyle: "none", extensions: ["tex2jax.js"], jax: ["input/TeX", "output/HTML-CSS"], tex2jax: { inlineMath: [ ["$", "
Dean0731
2020/05/18
8120
博客中添加数学公式
MathJax允许你在你的网页中包含公式,无论是使用LaTeX、MathML或者AsciiMath符号,这些公式都会被javascript处理为HTML、SVG或者MathML符号。
jiewuyou
2022/09/29
3320
博客中添加数学公式
使用LaTex添加公式到Hexo博客里
使用LaTex添加公式到Hexo博客里 <font color = blue>代码编辑器,强烈推荐使用微软的 VS code,相比Atom开启迅速,使用方便,扩展丰富</font>
AomanHao
2022/01/14
5400
使用LaTex添加公式到Hexo博客里
html2canvans实现浏览器快速截图(这里有demo哦)
更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/120055934
马克社区
2022/07/18
4340
修复Mathjax行内显示公式的问题
hugo-theme-next主题是支持Mathjax来显示数学公式,近期有用户反馈在使用Mathjax插件时,无法在行内显示出数学公式,通过分析排查后发现是配置参数初始化设置不正确所导致,然后进行相关的修复并更新为tex-mml-svg组件来做支持。
凡梦星尘
2025/02/28
1900
【Hexo】博客数学公式解决方案,亲测有效
我的博客一开始使用的是MathJax,一开始还行,后来为了搞音乐播放器,开启了Pjax,噩梦的开始……
pai233
2022/01/12
9600
【Hexo】博客数学公式解决方案,亲测有效
搭建个人博客
市面上的XX云其实都还可以,虽然有时候可能掉线 hh,我的就是动不动数据库就掉了,不过无妨,就是记录给自己看看,反正没啥人~
汐语
2023/02/23
2.1K0
搭建个人博客
后端人眼中的Vue(四)
​ Vue的生命周期指的是Vue实例在页面中创建到销毁整个过程。Vue提供了在各个生命周期的钩子,钩子也叫Vue生命周期函数。这些生命周期函数是伴随着Vue实例创建、销毁的过程中自动触发的(不需要人为手动触发)。Vue实例生命周期有三个阶段:
上分如喝水
2023/01/11
2720
后端人眼中的Vue(四)
【Hexo】博客数学公式解决方案,亲测有效
前往博主博客,获得更好的体验->https://blog.pai233.top/20210930/hexo-katex/#more
pai233
2022/01/12
8340
值得探索的 8 个机器学习 JavaScript 框架
JavaScript开发人员倾向于寻找可用于机器学习模型训练的JavaScript框架。下面是一些机器学习算法,基于这些算法可以使用本文中列出的不同JavaScript框架来模型训练:
IT派
2018/07/30
8540
值得探索的 8 个机器学习 JavaScript 框架
相关推荐
wordpress统计某段时间用户发帖量-文曦博客
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档