《Microduino实战》——1.2 为什么要开源

简介:

本节书摘来自华章出版社《Microduino实战》一 书中的第1章,第1.2节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2 为什么要开源

开源意味着用户可以获得软件的源代码,用户可以自由地使用、学习、改进甚至重新发布自己的软件。
在《大教堂与集市》一书中一再提到了Linus定律,即只要有足够的测试员及共同开发者,所有问题都会在很短的时间内被发现,而且能够很容易地被解决。任何人都可能在使用的过程中发现bug,并向维护团队提交一个可能存在的bug;而更多的人参与到内核的开发中,可能使得bug的修复变得更加快速。这种“众眼众手”机制,让更多的bug暴露在人们面前,并及时地反馈并修复。如今,Linux内核在全球有成千上万的贡献者,但因为有一套严格的代码控制管理的流程,使得Linux内核的代码质量很高。在Steve McConnell的写的《代码大全》中提到,Linux内核每10 000行代码中只有1~5个bug,而在一般软件行业中,平均每1000行代码中就约有30个bug。显然,Linux内核的开发受益于这种开发模式。
开源有可能带来的好处[1]如下:
(1)获得更高质量、更安全的软件代码
在开源社区中,很多开源项目都是由一些技术高手维护的,同时一些用户也会承担一部分维护工作,更多人参与进来会使得存在的bug可以被及早地发现和修补。
(2)可定制化
因为源码是开放的,用户可以免费定制开源软件,使用其中一部分开源软件代码,并根据实际情况修改或添加自己需要的功能。这样,既能享受他人的劳动成果,又能为开源软件做出自己的贡献,同时也降低了开发的成本和风险。
(3)降低开发成本
在开源项目中,用户可以免费使用高质量的软件代码,在享受其他人劳动成果的同时,也可以做出自己的贡献。
(4)标准化
开源软件一旦用户增多,会顺其自然地遵循或形成一种开放的标准。
这些只是从实用的角度来看开源所带来的优势,但开源指的不仅仅是一种开源的方法,背后更是体现了一种自由的精神,是分享和协作人类文明的一种机制。
在互联网上,开源是这样一种精神:予人玫瑰,手有余香。而往往这些“余香”才能带来更多的玫瑰。所以说,深入开源的世界,更应该抱着开放的心态,将自己的贡献汇入这无尽的江河湖海中。

相关文章
|
1月前
|
前端开发 JavaScript 开发工具
独家揭秘:前端大牛们都在用的高效开发工具,你get了吗?
前端开发领域日新月异,Visual Studio Code、Webpack、React/Vue和Git等工具凭借高效、便捷的特点,深受前端大牛们青睐。本文将揭秘这些工具的使用技巧,帮助你提升开发效率,轻松应对各种前端挑战。
34 3
|
Cloud Native 开发者
KubeVela 获得 2022 “开源新锐”和“开发者最喜爱”双料年度项目
在 InfoQ 最新公布的 2022 中国技术力量年度榜单中,KubeVela 获得了 “十大开源新锐项目” 和 “开发者最喜爱的十大开源项目” 两个大奖。
KubeVela 获得 2022 “开源新锐”和“开发者最喜爱”双料年度项目
|
Web App开发 Java 数据库连接
开源技术推荐之个人使用心得
我推荐的这些项目,我自己都在实际开发环境中使用过,目前暂时没有遇到副作用,当然也不排除存在副作用,当然了,就目前web应用开发而言,还没有遇到严重影响项目对外提供正常服务。另外这些开源项目的源代码都是对外完全开放的,大家如果觉得它只能满足大部分需求,不满足特定需求,可根据个人能力或团队能力自行改造。
1750 0
|
Web App开发 JavaScript 前端开发
|
机器学习/深度学习 前端开发 安全