本节书摘来自华章出版社《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 为什么要开源相关推荐

  1. 《Microduino实战》——1.4 开源硬件

    本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.4 开源 ...

  2. 《Microduino实战》——1.3 开源软件

    本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.3节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.3 开源 ...

  3. 《Microduino实战》——1.5 如何选择开源硬件

    本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.5节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.5 如何 ...

  4. 《Microduino实战》——1.1 什么是开源

    本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第1章 开 ...

  5. 《Microduino实战》——第2章 Microduino

    本节书摘来自华章出版社<Microduino实战>一 书中的第2章,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第2章 Microdui ...

  6. 《Microduino实战》——3.1 准备开发环境

    本节书摘来自华章出版社<Microduino实战>一 书中的第3章,第3.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.1 准备 ...

  7. 《Microduino实战》——2.7 总结

    本节书摘来自华章出版社<Microduino实战>一 书中的第2章,第2.7节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.7 总结 ...

  8. 《Microduino实战》——1.6 总结

    本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.6节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.6 总结 ...

  9. 《Microduino实战》——2.1 Microduino系列产品

    本节书摘来自华章出版社<Microduino实战>一 书中的第2章,第2.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2.1 Mi ...

最新文章

  1. 计算机教案word格式模板,用自定义模板编辑教案
  2. 微信支付curl出错及错误码解决方案
  3. Nginx —— 检查配置文件nginx.conf的正确性命令(-t)
  4. 【网络协议】TCP分段与UDP/IP分片 (MTU最大传输单元,MSS最大分段大小)
  5. 【jvm】jvm 网络使用率 nicstat
  6. Java输出表格格式_在Java的System.out中以表格式输出
  7. 最新Tuxera NTFS for mac2020读写NTFS磁盘工具 更新详情介绍
  8. web developer tips (56):手动更新JScript的智能感知
  9. 五人表决器课程设计单片机c语言,基于单片机的五人表决器的设计.doc
  10. IDEA设置注释模板
  11. 360安全路由器外网连内网(端口映射)的设置方法
  12. MathJax 支持的 Latex 符号总结
  13. 创新产品访谈:Ntalker V2.5
  14. 可视化 | Python时间序列化NBA球星赛季数据
  15. java 项目中遇到的问题 和解决方案_java开发常见的问题及解决办法 - java开发中遇到的难点有哪些_java开发常见的问题及解决办法...
  16. 出差中,推荐几个百度,腾讯,抖音大佬的公众号
  17. 前端自动化 Jenkins/TravisCI/CiecleCi
  18. DCloud UniAPP Android 蓝牙连接ESCPOS打印机
  19. 显示器接口_显示器上的Type-C接口 可能绝大多数人都不知道这么大作用
  20. Java 使用dcm4che的工具类findscu查询pacs数据

热门文章

  1. PROGRESSIVE GROWING OF GANS FOR IMPROVED QUALITY, STABILITY, AND VARIATION
  2. 关于ADC输入前级的抗混叠滤波器问题以及驱动负载电容的电阻值选择建议
  3. 1. SCARA机器人建模
  4. 使用高德sdk时,提供SHA1
  5. 基于51单片机HX711的电子秤称重计价proteus仿真程序设计
  6. 大数据分析和人工智能科普
  7. html下拉复选框联动,HTML : CheckBox 复选框成组联动(JavaScript)
  8. 1 Go语言开发环境搭建详细教程+go常见bug合集【Go语言教程】
  9. 全球最牛B的下载神器IDM,让你体验飞一般的感觉
  10. Java2EE体系结构图