导读 当下的软件行业,除了商业类闭源软件随处可见之外,还有一类是代码开放的开源软件。通常开源软件都是由相应的软件社区对进行更新维护。遵循着不同开源协议版本的社区,其看待软件的宗旨是有些区别的。比如有的严格一些的开源社区要求必须开放源代码,并且社区内的任何软件是不能被用在商业闭源软件中。有些社区要求的要宽松些,允许软件代码被商业软件引用,当时必须在许可协议中声明开源内容。

秉持的利他主义思想,开源社区通过公开软件源代码,实现思维的共享交流,实行共同提高。对于软件行业来说如同良心般的存在,它的存在不但对于软件开发人员大有裨益,对于软件行业的发展也是有利无害的。

那么对于一个软件开发人员(非商业闭源保密软件开发人员)来说,为什么提倡将代码提交到开源社区呢?归纳起来有五点:

开源社区会帮助软件提升安全性。

由于源代码是公开的,意味整个社区中的成员都是有机会看到代码的。要知道每个社区中都是藏龙卧虎,不乏高手大佬存在。IT专家们会审查软件的代码,发现其中存在的BUG,漏洞之类的危险因素。当作者收到回馈后就可以修正软件,提升软件的安全性与可靠性。

开源社区会帮助软件提升运行效率。

软件运行的好与坏,主要是核心算法是否高效。软件的作者在编制程序的时候,使用的算法已经是在其理解范围内最优化的方案。不过很有可能还存在着效率更高的算法,通过更换程序能够帮助软件将运行效率提升几十倍甚至上百倍。要知道,从来没有人嫌弃软件运行的太快,通常总是抱怨跑起来效率不足。

源社区会帮助软件功能更加丰富与周全。

开源软件社区的高手们从来不会吝啬发表自己的意见的。对于软件的建议,也从来不会缺少的。在众多意见或建议中,不乏有借鉴意义的内容。软件开发者可以借助高手们的提议更加丰富自己的程序,让软件变得更加完美。毕竟站在巨人的肩膀上能够看得更远,而开源软件社区愿意把你举得更高。

开源软件推动了商业软件的发展。

作为全世界鼎鼎有名的软件厂家,微软竟然也是开源社区的一员,并且每年向社区贡献超过百万行代码。意外吗?如果在举一个例子更能说明这个问题。甲骨文公司拥有当今世界上顶尖的数据库——ORALCE,同时公司在维护着开源免费的MYSQL数据库以及JAVA语言。以前认为开源闭源如同水火不能相容,但是现在大型闭源商业公司竟然也会参与到开源软件社区的建设,实在让人大跌眼镜。其实原因并不奇怪。开源社区如同一个种子工厂,每天有无数的崭新的想法出现,每天有海量的代码被上传,其中优秀高效的代码不在少数。商业软件公司培育一个蓬勃发展的开源社区,能够为商业软件提供思路与想法,闭源软件能够借鉴开源代码实现方式,从而优化产品提升软件的稳定性与安全性。这是一个合作共赢的案例。

开源社区能够帮助软件开发者降低软件实施周期。

现在的软件大多会基于模块化开发方式。如同搭积木一样,引入多个模块就能够在很短的时间里完成软件的研发工作。研发的效率大大提升了,而推出产品的周期也明显被缩短。对于完成秒必争的开发人员来说,开源社区将会极大的帮助到产品研发的进度。通过开源社区,能够借鉴到来自全世界的智慧与思想。比如借助开源的人工智能算法,中国的商业AI软件实现了从无到有的过程。虽然程序运行的效率还有待商榷,但是至少填补了空白,算是卖出了艰难的第一步。

由于版权意识的缺失,开源社区在中国发展的并不顺利。但是随着版权观念的普及,人们越来越意识到软件是一种脑力劳动的结晶,无论其效率高低,无论外观漂亮还是丑陋,都是应当被尊重的。相信开源社区在中国将会迎来发展的黄金时期,而这个时候正是有志软件开发人员施展自己的才华的时间。

原文来自:https://baijiahao.baidu.com/s?id=1632682925331603556&wfr=spider&for=pc

本文地址:https://www.linuxprobe.com/five-open-soure.html编辑:黑曜羽,审核员:逄增宝

Linux命令大全:https://www.linuxcool.com/

Linux系统大全:https://www.linuxdown.com/

红帽认证RHCE考试心得:https://www.rhce.net/