
【开源生态60问】——为什么开源软件比专有软件更有吸引力?
在开源软件的早期发展阶段,以微软为代表的“反开源”势力,曾经散布了很多攻击性的言论,试图通过传播 FUD(Fear, Uncertainty, Doubt,即恐惧、不确定性和怀疑) 来影响公众对开源软件的看法,2001 年,微软 CEO 史蒂夫·鲍尔默 (Steve Ballmer) 甚至直接称 Linux 是“癌症”。这些言论主要集中在以下几个方面:
-
安全性质疑:开源软件因为源代码是公开的,所以更容易被黑客攻击,存在严重的安全漏洞。
- 法律与知识产权风险:GPL 等许可证可能会‘传染’企业的代码,迫使企业公开所有源代码,破坏商业机密。
-
质疑社区的技术能力与管理能力:他们都是草根、业余爱好者,缺乏管理,一团混乱,迟早要完。
-
开源经济模型不可持续:开源软件是免费的,不可能支持开发者长期开发。那些爱好者没有稳定收入来源,开源软件项目无法持续。
-
总拥有成本上升:虽然开源软件看起来不要钱,但是你得专门雇人维护他,结果会花更多的钱。
虽然这些攻击性的言论曾经对开源软件的发展造成了一定阻力,但事实证明,开源软件不仅在安全性、技术能力、经济模型上表现出色,还成为推动全球技术创新的重要力量。即便是微软,也在近些年转变了立场,成为开源的积极支持者,甚至到了2014年,微软新任CEO Satya Nadella 公然宣称微软爱Linux!所以,我们确实有必要回答这个问题:为什么开源软件比专有软件更有吸引力?
1. 成本优势
开源软件通常是免费的,这为企业和个人节省了巨大的许可费用。同时,用户无需为更新、扩展或长期使用支付额外费用。因此,越是选择被广泛采纳的开源软件,越是能够在市场上找到足够丰富的公开文档、使用指南,也能够以更低廉的价格招募开发人员与维护人员,这种成本优势对于初创企业、小型团队和预算有限的个人尤其具有吸引力。此外,即使在涉及需要专人维护的情况下,事实证明,长期使用开源软件的总拥有成本(TCO)通常仍低于专有软件,因为用户可以避免高昂的专有系统维护和升级费用。
相反,如果依赖于特定厂商的专有软件,在软件供应商涨价时,企业根本无力反抗,这种“单一厂商锁定”的风险,才是更大的成本风险。
2. 灵活定制
没有任何软件能够完全(正好)满足用户的需要,要么太多,要么不够,要么简陋,要么别扭。甚至于很多软件都会存在的缺陷(bug),也常常给用户带来烦恼。对于使用专有软件的用户来说,遇到这样的问题,他们只能求助于软件厂商,要么升级,要么打个补丁。如果用户的功能需求距离软件厂商的产品规划太远,软件厂商完全有理由拒绝开发。
但如果是使用开源软件,虽然也会有这样那样的不足,但是用户总可以自己动手修改这个软件。自己修改了软件,关起门来自己用,当然没问题。如果是较为宽松的授权协议,下游厂商甚至可以直接销售自己修改后的软件,还能再赚一笔。(参见1.6、1.7节)
3. 安全可靠
到底开源软件是更加不可靠,更容易被人钻空子,还是更加安全可靠?这是一个争论已久的问题。Raymond在《大教堂与集市》中提出的Linus法则:“当有足够多的眼睛审视代码时,所有的 bug 都会变得显而易见。”,自然是完全站在开源更加安全的一边。
站在中间立场,我们会发现:争论的核心在于“透明性”与“攻击面”之间的权衡。有多少眼睛在审视代码?以及有多少眼睛在尝试寻找漏洞?还有一个问题也需要分辨:在尝试寻找漏洞的人中,多少人是善意的安全人员?多少人是恶意的骇客?
所以,更加持平的意见是:不应该泛泛的讨论所有的开源软件是否更加安全。有些开源软件,因为用户众多,眼睛够多,的确比相对应的专有软件更加安全。
另外需要指出的,开源软件生态中,存在着一套较为成熟的安全漏洞通知与修复机制,作为开源软件的用户,应该非常关注自己使用了哪些开源软件,并及时获取相关的安全咨询,这才是更加对自己负责的做法。(详见2.9节)
4. 社区创新
在《大教堂与集市》的前言中,Raymond说道:“自由不是一个抽象的商业概念。任何行业的成功几乎都直接和这个行业供应商及客户所享有的自由度相关......所以该[开源软件]行业在产品和客户价值方面的创新速度,是人类前所未见的。”
因为代码开源,因为社区开放,因为人们在社区里围绕代码进行开放式协作,所以软件这个行业才会在最近几十年里,不断的诞生令人难以置信的创新。选用开源软件,就是选择一个发展更快的生态,就是选择跟随更有活力的技术趋势。像 Kubernetes 和 TensorFlow 这样的项目就是社区创新的典范,它们不仅引领技术发展,还成为行业标准。
更进一步,用户不仅仅可以坐等社区创新,还可以加入其中,成为社区创新的源动力,通过贡献上游,推动技术发展更加符合自己的需要。这就是更加吸引人的部分了。
5. 有利于人员招聘
开源软件为企业吸引并留住顶尖技术人才提供了重要渠道,只采用专有软件 < 部分采用开源软件 < 在企业内部对于开源软件进行改进 < 鼓励员工将开源软件的内部改进反馈到上游 < 鼓励员工积极参与开源社区的各项工作 < 以企业的名义对外开源并因此成为技术领导者。以上的小于号(<)代表着企业对于高手(顶尖人才)吸引力不断提升的阶段。
越是开放的,在开源社区有影响力的企业,越是能够吸引顶尖人才的加盟,这已经是被反复验证的现实了。企业参与开源项目,不仅可以提升雇主品牌,还能通过与社区互动发现并培养潜在人才。这就是DevRel(开发者关系)这一专门领域的话题了。(推荐阅读《开发者关系:方法与实践》,作者: [加] 卡罗琳·莱科 / [英] 詹姆斯·帕顿,译者:陈俊杰 / 林旅强)
总之,开源软件之所以比专有软件更有吸引力,归根结底在于其开放性所带来的生态优势。这种优势不仅体现在技术和成本上,还反映了社会合作和创新的力量。随着时代的进步,开源已经成为推动技术变革的重要引擎,也让企业和开发者在数字化浪潮中占据主动地位。
转载自 庄表伟 阅读思考与生活 【开源生态60问】——为什么开源软件比专有软件更有吸引力?


