开源,在重塑我们的思维和行为方式
9 September, 2020
*原文参考:https://opensource.com/resources/what-open-source,有删减。

开源不只是软件,还有开源硬件;
开源不只是技术,还有开源商业;
开源不只是针对程序员,还影响你我他;
开源不等同于免费,它可以为人们创造价值;


越来越多企业开始拥抱开源,因为开源可控、便于学习、安全、具有稳定性,并有社区的可支持。我们的世界充满了“源代码”(模型、方法、规则),开源的思想在重塑我们的思维和行为方式
开源一词是指设计上可公开访问,人们可以修改和共享的东西。

该术语起源于软件开发的方法,特指计算机程序的开发方法。如今,“开源”有了更广泛的含义,也就是大家所说的“开源方式”开源项目、开源产品或开源倡议均遵循开放交流、协作参与、快速原型实现、透明度、精英机制和面向社区发展的原则。

什么是开源软件?



开源软件是具有源代码的软件,任何人都可以检查、修改和优化。

相信大多数计算机用户从未见过“源代码”。“源代码”是的软件的一部分,指计算机程序员可以用来更改软件工作方式的代码。被授权的程序员可以通过添加或修改程序代码,改进完善相关功能。


开源软件和其他类型的软件有什么区别?



有些软件的源代码只允许创建该软件的人员、团队或组织(并保持对它的独占控制权)才能对其进行修改。人们将这类软件称为“专有”或“闭源”软件。

对于闭源软件来说,只有原始作者才能合法地复制、检查和更改该软件。计算机用户要使用该软件,必须做出(通常是在安装该软件时)不擅自更改软件的承诺。Microsoft Office和Adobe Photoshop就是闭源软件的代表。

开源软件则不同。其作者允许他人查看、复制、学习、更改,甚至共享给其他人。LibreOffice和GNU图像处理程序就是开源软件的代表。

就像使用专有软件一样,用户在使用开放源代码软件时必须接受许可条款,但是开放源代码许可的法律条款与专有许可的法律条款有很大不同。

开源许可证影响人们使用、学习、修改和分享软件的方式。通常,开放源代码许可以向计算机用户授予使用开放源软件的权限,允许其用于其它目的。一些开放源代码许可证(有些人称为“ copyleft”许可证)规定,基于开放源代码程序所创建的程序也应该开源。此外,一些开放源代码许可规定,任何与他人共享程序的人也必须共享该程序的源代码,而无需为此付费。

通过设计,开源软件许可证促进了协作和共享,因为它们允许其他人修改源代码并将这些更改合并到自己的项目中。他们鼓励计算机程序员随时随地访问、查看和修改开源软件,只要他们在共享工作时允许其他人也可以这样做。


开源软件仅对计算机程序员有价值吗?



显然不是。开源技术和开源思想对程序员和非程序员都有用。

因为早期的互联网大多建立在开放源代码技术(例如Linux操作系统和Apache Web服务器应用程序)基础上,现在使用互联网的所有人都在享受开放源代码软件的便利。

计算机用户在查看网页、接收电子邮件、与朋友聊天、在线播放音乐或玩多人视频游戏时,其计算机、移动终端或游戏机都是通过开源软件连接到全球计算机网络。

越来越多的人们通过网络实现远程办公,如在线文字处理、电子邮件管理和图像编辑等。他们通过Web浏览器或移动终端,远程访问这些应用程序。他们这样操作计算机,实际上是在从事“远程计算”,也有人将其称之为“云计算”。

云计算已经成为连接互联网设备主要技术,其在日常生活中的应用越来越多。一些云计算应用程序(例如Google Apps)是专有(闭源)的,其他的如ownCloud和Nextcloud是开源的。

云计算平台可以是开源的也可以是封闭的。OpenStack是开源云计算平台的示例。


人们为什么更喜欢使用开源软件?



人们更喜欢开源软件而不是专有软件的原因很多,其中包括:

可控。许多人喜欢开源软件,是因为他们对此类软件有更多的控制权。他们可以检查、更改代码,以确保代码处于自主可控之中。非程序员的用户也可以从开源软件中受益,他们可以按照自主的方式进行选择,而不再受制于人。

训练。还有人喜欢开源软件,是因为它可以帮助他们成为更好的程序员。由于开源源代码可以公开访问,学生就可以便利地学到编程的方法。学生还可以与他人分享他们的作品,邀请他们发表评论和评论。当人们在程序源代码中发现错误时,他们可以与他人共享这些错误,以避免自己犯同样的错误。

安全。有些人喜欢开源软件,是因为他们认为开源比专有软件更安全更稳定。由于任何人都可以查看和修改开源软件,因此有人可以发现并纠正原始作者可能的错误或遗漏。而且,由于有如此多的程序员可以在不要求原始作者许可的情况下使用一款开源软件,因此他们可以比专有软件更快地修复、更新和升级开源软件。

稳定性。对于重要的长期项目,许多用户更喜欢开源软件而不是专有软件。因为程序员已经将软件的源代码公开分享,即便是乙方不再提供相关服务,源代码或工具仍然存在,甲方项目的稳定性可以得到保证。另外,开源软件一般都遵循相关开发标准,便于项目拓展和延续。

社区。开源软件通常会形成由用户和开发人员共同参与的社区。这虽不是开源所独有的,但社区聚会和活动的主题是许多流行的应用程序。开源社区不只是(在情感上或经济上)精英及其粉丝群,而是生产、测试、使用、推广并最终应用开源软件的人构成。


“开源”=免费吗?



肯定不是。开源即免费是对“开源”含义的普遍误解,该概念的含义不仅是经济上的。

开源软件程序员可以向使用自己创建或贡献的开源软件用户收费。但受某些开源许可协议的制约(向他人出售软件时应提供源代码),一些程序员发现,向用户收取软件服务费和维护支持费的方式更有利可图。软件虽然是免费的,但可以通过帮助他人安装、使用和故障排除来赚钱。

尽管某些开源软件是免费的,但对开源软件进行编程和故障排除的技能可能会更有价值。许多雇主专门寻求雇用在开源软件方面有经验的程序员。


超越开源



相对于开源软件来说,开源价值观、开源规则等超越开源之外的世界运行方式更有价值。开源不仅仅是计算机软件开发和许可协议的一种方式,而且还是一种态度。

以“开源方式”工作、生活,表达了分享的意愿,以公开透明的方式与他人合作(以便他人观察和参与),将失败视为改善的手段,并期望甚至鼓励其他人也要这样做。

大家都致力于改造世界并在其中发挥积极作用,但只有当每个人都可以使用设计世界的方式时,这才有可能。

这个世界充满了“源代码”(模型、方法、规则),开源的思想在重塑我们的思维和行为方式。这些基础代码(无论其形式如何)都应该是开放、可访问和共享的,大家都可以参与并将其改进。

开源价值观对社会的各个领域(科学、教育、政府、制造业、卫生、法律和组织动态)都在产生深刻影响。开源社区,致力于弘扬开源思想、开源文化、开源价值观,他们坚信开源是世界治理的最好方法。他们对开源的热爱胜过任何事情,他们相信共享时更好。