【补档】开源软件与开源软件精神

发布时间 2023-05-07 20:02:42作者: 方而静

据央视《新闻联播》4 月 17 日报道,记者从工信部了解到,我国开源软件开发者数量突破 800 万,位居全球第二。

什么是开源软件?

开源软件是源代码可以任意获取的计算机软件,任何人都能查看、修改和分发他们认为合适的代码。这些代码一般被保存在互联网的公开位置,以开源许可证发行,因此任何人都可以查看或修改这些代码。

开源软件依托同行评审和社区生产,皆以分散、协作的方式开发。开源软件由社区开发,而非单个作者或公司,因此通常成本更低、更灵活,寿命比专有软件更长。

其实,开源并非一个新概念,毫不夸张地说,开源的历史就是互联网的历史。早在 20 世纪 50 年代和 60 年代,开发早期互联网技术和电信网络协议的研究人员就十分倚仗开放的协作式研究环境。用户组互相共享源代码,相互扶持,构建创新。到 20 世纪 90 年代早期互联网诞生之时,协作、同行评审、通信和开放性的价值就已写入了它的底蕴之中。

当前,开源已经成为IT产业生态的一个主流趋势,开源软件彻底改变了全球软件产业格局,开源社区和开源促进会蓬勃发展。

开源软件是如何开发的呢?人们在使用开源软件时,会提供反馈,提交错误报告,并在需求发生变化时,请求获得其他功能。人们的反馈指引着开源软件的发展方向。

关于这一点,有一个很好的比喻广为流传:在开源社区,没有建筑大教堂那样的安静和虔诚,倒更像是一个乱糟糟的大集市,充满了各种不同的计划和方法。

为什么要了解开源呢?

有许多家喻户晓的软件就是开源软件,例如浏览器——Chrome 和 Firefox,操作系统——安卓和Linux、以及压缩软件 7-Zip、媒体播放器 VLC、直播工具OB、邮件终端Thunder Bird等都是开源软件。

除了日常使用的应用程序之外,大量的开源软件还构成了现代互联网的基石,甚至是整个现代数字体系的基石。许多的软件都包含一些开源软件作为其子组件。

现在,互联网的上的一个页面都包含都在兆字节的数量级的代码,直观地说,这些代码如果以五号的小字密密麻麻地打印出来,也会有一本语文书那么厚,随便打开一个网站的页面都是如此,而互联网上有千千万万个页面,难道现在的互联网公司的都如此规模庞大,真的能写如此多的代码?

并非如此,事实上,根据对国内外最流行的150个网站的调查显示,这些页面包含的70% 以上的代码都是引用的开源软件的代码,而剩下的一小部分才是是自己编写的专有代码。

在整个软件开发行业,使用开源技术已成主流。2020年,我国已经使用开源技术的企业占比为88.2%,有计划使用开源技术的企业占比为9.5%,而暂未计划使用开源技术的企业占比仅为2.1%。

我国软件产业的发展受益于开源,同时也在面向国际,积极的进行开放协作。工业与信息化部在《“十四五”软件和信息技术服务业发展规划》中强调,要培育重点开源项目,建设优秀开源社区,提升开源治理能力。

从给当前中国的开源现状来看,我国开源繁荣发展、渐入佳境,各个领域的优秀开源项目不断涌现;开源基础设施持续完善,形成了多个代码托管平台;一批开源软件独角兽或准独角兽创业企业纷纷获得风险投资的认可。

那么,什么是开源精神呢?

简而言之,开源软件精神是一种扎根于互联网的共产主义。开源的本质是开放、共享、协同、合作。其基本模式是多方参与、多元融合。开源生态的内核就是开放共享的开源精神。

软件和代码属于知识和精神财富,其最大程度的传播,分享和融合才是符合人类最重要最根本的价值取向,所以传播和分享才是最重要的。

开源软件精神在于对于知识更高效率的重新利用。因为是开源软件,所以用户是自由的:他可以自由的使用、学习软件的内部架构,也可以修改、重新发布。

假如学校用的都是开源软件,那么当一个有潜力的学生好奇一个东西是怎么做出来的时候,他的老师可以告诉学生这个东西的源代码在哪里,而不是告诉学生“这是一个被版权保护的东西,我也不知道”。

在一个人需要实现一项功能之前,如果网上有现成的源代码可以参考,那么开发者就知道大致应该朝着哪个方向走,从而开发的更快。

另一方面,因为没有金钱利益的推动,程序员可以更多地依照自己的兴趣写出更好的、看起来好像没有市场的工具,随着时间的推移和网上不同人的协作,会变得越来越符合更多人的需要;而有和大众不太一样的需求的人可以在源代码的基础上自己开另外一个项目来做一个衍生版本,从而产生了一个(或者很多个)很好的符合市场的工具。

开放能够得到的进步要远远大于封闭,开放创新已经成为时代主流。开源是技术领域开放创新最早最成功的实践。这种开放的形式使得先进的技术能够得到广泛而迅速的传播,极大地促进了软件和技术的发展。

开源软件的商业模式从早期的理想主义发展到今天的多元化商业模式经历了漫长的过程。开源得以流行,甚至能得到商业公司支持的原因。因为商业公司自己也需要用这些开源的技术,那么和其他的公司就这一个项目上组成一个“开源互助小组”,是对彼此都有好处的。开源创新有助于构建自主的信息技术新体系,开源所具有的大众协同、开放共享、持续创新等特点,使参与者直接置身于最先进的技术行列。

开源运动旨在利用开源软件的价值和分散的生产模型,为其社区和行业的问题寻找新的解决方法。目前,也已经有部分其他领域开始使用开源的方式共享成果,例如图书的写作或翻译、音乐的谱曲、字体、科研的试验数据和论文、政治的法律维护。开源已成为一种超越软件生产界限的运动和工作方式。