文章图片
东欧世界的战火终究还是烧到了开源世界。2022 年 3 月 2 日,GitHub 官方发文称,会遵守美国政府的相关规定,限制俄罗斯通过 GitHub 获得军事技术能力。除了 GitHub,更多的开源社区也加入了这场运动:
Node.js 官网在其首页加入了声援乌克兰的标语;知名前端框架 React 也在官网中加入了声援乌克兰的横幅;俄罗斯「国民操作系统」Sailfish OS 的制造商 Jolla 公司正试图切断与俄罗斯的联系……
美国当地时间的昨天,React 在 GitHub 的代码仓库涌入了来自全世界的政见不合的开发者, 彼此通过提交 issue 的方式发表激烈意见,直到官方入场才得以平息。
在「科技无国界」、「艺术无国界」、「体育无国界」被大家认为不存在的今天,「开源无国界」也成为伪命题了吗?
文章图片
一、开源软件开发者有国界 公元 1 世纪,哲学家普鲁塔克提出一个问题:如果忒修斯船上的木头被逐渐替换,直到所有的木头都不是原来的木头,那这艘船还是原来的那艘船吗?
今天的开源圈,类似的忒修斯悖论依然存在。
开源软件的代码量和复杂度上已远超当年,一个开源项目可能会使用或集成多种开源组件,同一个开源项目可能也会有成千上万的开发者参与进来,贡献他们的智慧。
当一个开源项目中的代码被逐渐替换,甚至所有的代码都不是原来的代码,那这个项目的所有者还是最初的作者吗?
就目前的共识来看,这个问题是肯定的。代码原作者对代码拥有所有权,可以自由决定谁可以使用自己的代码。这些天,就有开发者发表声明,禁止俄罗斯境内的程序员使用其开源的代码。
也就是说,假设今天有一个俄罗斯程序员,参与到了某个开源项目的建设中,甚至成为了其中的主要贡献者。但如果项目的原作者,认为项目被俄罗斯政府运用在了军事领域,决定禁止俄罗斯境内的个人或组织使用这些开源代码,这位程序员就只能看着自己的努力付之东流了。
所以,开源开发者是有国界的。
二、开源平台和社区有国界 除了开源作者拥有限制他人使用开源代码的权利,在开源托管平台眼中,开发者同样会因为其所处的国家而享有不同的待遇。
2019 年,全球最大开源代码托管平台 GitHub 出于美国贸易管制法律要求,对伊朗、克里米亚的开发者用户进行了限制,甚至是封禁账号。
还是在这一年,全球第二大开源代码托管平台 GitLab 宣布了一个「封锁令」,禁止给中国和俄罗斯公民提供 offer,不久后,GitLab 风险与全球合规总监对这种歧视性和报复性的行为不满而辞职。
开源代码可以在许可证的范围内自由传播,但保管开源代码的公司,却不得不以实体的方式,遵守所在地的法律法规。即便国家政策不以黑纸白字的方式严格约束,在政治正确、舆论环境等多方因素影响下,代码托管平台同样难以保持中立。
【GitHub 限制俄罗斯使用代码,开源真的无国界吗()】这次 GitHub 发布公告后,一种声音再次被提起,我们要建设一个属于国内开发者自己的代码托管平台,要摆脱对对国外开源社区的依赖。
所以,开源社区也是有国界的的。
三、开源有国界,开源精神无国界 当大家反驳各种「科学/艺术/体育无国界」时,说的最多的就是「科学家/艺术家/运动员有国界」。不可否认,程序员之间也同样有国界,这也是为什么大家在 GitHub? 的 React 代码仓库争论的原因。
当人们带着对同一件事情的不同看法,抱着想要说服对方的目的,怀着累积已久的情绪,来到同一个空间,结局必然是惨烈的。这些年国内外各大社交平台的分化,已经无数次证明了这一点。
但之所以开源社区能保持一份相对的平和与冷静,和大家来到这里的目的,以及交流的方式是有密不可分的关系的。
开源最初很简单,一个人创造了一个东西,拿出来分享给大家,大家通过自由使用这个东西,为世界创造价值的同时,收获快乐和回报。带着这个美好的初衷,开源走过了几十年岁月,发展成为数字世界的基石,并还在不断壮大中。
人性总有善的一面,也有恶的一面。但在开源大家庭里,大家收获善意并用善意回报,在这个过程中慢慢学会同理、尊重、分享等美好品质。哪怕彼此因为出身和经历不同,会有各种各样的摩擦,但最终能带着共同的愿景,放下偏见,互相成长。
也许你会因为同情支持某一方,也许他会出于同理而支持另一方,但究其本质,都是出于善。
科技有国界,开源也许也有国界。如果真有什么东西是无国界的,那就是人与人之间的善意。■
文章图片
腾源会(WeOpen)官方公众号,分享云、开源、社区相关的精彩资讯,技术及活动内容。
推荐阅读
- 不眠者科技团队|(不眠者①队)国电-F题(智能送药小车,广东赛区一等奖,推国赛,开源(代码+设计方案))
- 开源访谈录|“关起门来搞开源,做不了开源世界的Leader”
- 李凌(6 年,我如何从开源小白成为 Apache 顶级项目 PMC)
- 来自开源世界的超级码丽,中国开源码力榜权威发布!
- 腾讯|坚持贡献10年,他在开源领域做到了国际顶尖
- 什么是开源的「第一性原理」()
- 助力中国开源码力榜,社区邀请正式开启!
- Android开发——SQLite数据库框架Sugar的使用
- 简谈开源OS发行版