《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)标准化
开源软件一旦用户增多,会顺其自然地遵循或形成一种开放的标准。
这些只是从实用的角度来看开源所带来的优势,但开源指的不仅仅是一种开源的方法,背后更是体现了一种自由的精神,是分享和协作人类文明的一种机制。
在互联网上,开源是这样一种精神:予人玫瑰,手有余香。而往往这些“余香”才能带来更多的玫瑰。所以说,深入开源的世界,更应该抱着开放的心态,将自己的贡献汇入这无尽的江河湖海中。
《Microduino实战》——1.2 为什么要开源相关推荐
- 《Microduino实战》——1.4 开源硬件
本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.4 开源 ...
- 《Microduino实战》——1.3 开源软件
本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.3节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.3 开源 ...
- 《Microduino实战》——1.5 如何选择开源硬件
本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.5节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.5 如何 ...
- 《Microduino实战》——1.1 什么是开源
本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第1章 开 ...
- 《Microduino实战》——第2章 Microduino
本节书摘来自华章出版社<Microduino实战>一 书中的第2章,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第2章 Microdui ...
- 《Microduino实战》——3.1 准备开发环境
本节书摘来自华章出版社<Microduino实战>一 书中的第3章,第3.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.1 准备 ...
- 《Microduino实战》——2.7 总结
本节书摘来自华章出版社<Microduino实战>一 书中的第2章,第2.7节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.7 总结 ...
- 《Microduino实战》——1.6 总结
本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.6节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.6 总结 ...
- 《Microduino实战》——2.1 Microduino系列产品
本节书摘来自华章出版社<Microduino实战>一 书中的第2章,第2.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.1 Mi ...
最新文章
- 计算机教案word格式模板,用自定义模板编辑教案
- 微信支付curl出错及错误码解决方案
- Nginx —— 检查配置文件nginx.conf的正确性命令(-t)
- 【网络协议】TCP分段与UDP/IP分片 (MTU最大传输单元,MSS最大分段大小)
- 【jvm】jvm 网络使用率 nicstat
- Java输出表格格式_在Java的System.out中以表格式输出
- 最新Tuxera NTFS for mac2020读写NTFS磁盘工具 更新详情介绍
- web developer tips (56):手动更新JScript的智能感知
- 五人表决器课程设计单片机c语言,基于单片机的五人表决器的设计.doc
- IDEA设置注释模板
- 360安全路由器外网连内网(端口映射)的设置方法
- MathJax 支持的 Latex 符号总结
- 创新产品访谈:Ntalker V2.5
- 可视化 | Python时间序列化NBA球星赛季数据
- java 项目中遇到的问题 和解决方案_java开发常见的问题及解决办法 - java开发中遇到的难点有哪些_java开发常见的问题及解决办法...
- 出差中,推荐几个百度,腾讯,抖音大佬的公众号
- 前端自动化 Jenkins/TravisCI/CiecleCi
- DCloud UniAPP Android 蓝牙连接ESCPOS打印机
- 显示器接口_显示器上的Type-C接口 可能绝大多数人都不知道这么大作用
- Java 使用dcm4che的工具类findscu查询pacs数据
热门文章
- PROGRESSIVE GROWING OF GANS FOR IMPROVED QUALITY, STABILITY, AND VARIATION
- 关于ADC输入前级的抗混叠滤波器问题以及驱动负载电容的电阻值选择建议
- 1. SCARA机器人建模
- 使用高德sdk时,提供SHA1
- 基于51单片机HX711的电子秤称重计价proteus仿真程序设计
- 大数据分析和人工智能科普
- html下拉复选框联动,HTML : CheckBox 复选框成组联动(JavaScript)
- 1 Go语言开发环境搭建详细教程+go常见bug合集【Go语言教程】
- 全球最牛B的下载神器IDM,让你体验飞一般的感觉
- Java2EE体系结构图