热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

面对真实的开源世界,丢掉幻想,但也不必恐慌

面对,真实,的,开源,世界,丢掉,幻


| 作者:庄表伟

| 编辑:金心悦

| 设计:苏子馨

| 责编:王玥敏




   缘起


最近因为俄乌战争,整个世界纷纷扰扰,发生了太多的事情。工信部电子知识产权中心有一篇不错的信息汇总,各位可以大致了解一下。《 俄乌冲突涉及开源领域事件
在这篇文章中,一共收录了13条信息,但是在我看来,有好几条都跟开源的关系不大。而第 12 条,全球第二大开源代码托管平台 GitLab,又不仅仅介绍了 GitLab 的事情,还介绍了关于 F5 的一条消息。
总结下来,可以说以下几点:
  • GitHub 发表博客,表面自己的态度,在《 开源世界里的法律与政治 》里,我已经有所评价
  • React 刷版事件,【同上】
  • PHP、Node.js、KDE、Rust 等社区,纷纷讨论是否应该,或者说如何支援乌克兰
  • GitLab 的创始人 Sid Sijbrandij 发文谴责俄罗斯
  • F5 声称退出俄罗斯,并停止了在俄罗斯对 NGINX 开源项目的贡献。
  • “node-ipc” 投毒事件,OSI 已经于 3 月 24 日 发文谴责


   为何要丢掉幻想?



最近发生的一系列事件,在国内的开源界,引发了众多的讨论。当然,有很多篇公众号文章的下面,都会有人留言:“说好的开源无国界呢?” 或者是“说好的技术无国界呢?” 或者是 “说好的科学无国界呢?”
还是丢掉幻想吧!从来没有谁承诺过“ XX 无国界”。事实上,在现在这个世界,几乎一切都是有国界的。这也是《 Code 2.0 》这本书希望传递的核心观点:随着互联网不断发展壮大,法律一定会介入。Code 的力量,也一定会被各个国家的法律所规制。所以,在 上一次的播客节目 里,我就说了:“开源不是伊甸园、不是乌托邦,这个幻想要早早的醒过来了。要尽早的从理想主义的状态中醒过来,然后去做一些事情。”


   需要丢掉哪些幻想?


  • 开源无国界的幻想。
  • 开源就是开源代码,仅仅与技术有关的幻想。
  • 开源与法律无关的幻想。
  • 开源与政治无关的幻想。
  • 开源的世界里,都是好人,都是来赠送礼物的幻想。
  • 开源世界里的那些公司,都是在为世界发展做出自己贡献的幻想。
总之,开源是生长在我们这个现实世界里的,因此现实世界里的一切,都可能会对开源产生影响。


   何事惊慌?


最近在中文社区里,看到了好多篇文章,不加链接了,列一下标题吧:
  • 《GitHub CEO 发文:严格限制俄罗斯获取侵略性军事能力所需要的技术》
  • 《“开源截流”!软件科技巨头围剿俄罗斯》
  • 《开源软件“围剿”俄罗斯》
  • 《F5 禁止俄罗斯为 NGINX 开源项目作贡献,并暂停了在俄业务》
  • 《以反战为名,百万周下载量 node-ipc 包作者进行供应链投毒》
  • 《开源无国界?你开源出去的代码, 可能有一天你自己都不能用了!》
  • 《俄罗斯开发人员或因制裁而无法使用开源软件》
  • 《欧美制裁俄罗斯,限制使用开源软件,以及尖端软件,细思极恐》
  • 《国际科技巨头极限制裁俄罗斯,开源与科技还无国界吗?》
  • 《俄罗斯担忧开发者无法访问开源代码,为什么开源如此重要?》
  • 《开源社区考虑放弃支持俄罗斯 CPU》
  • 《红帽、Docker、SUSE 在俄罗斯停服,开源软件还安全吗?》
如果你只看这些文章,真的会被“吓死”。


   为何又不必惊慌?


如果我们认真查看以上所有的消息,并且愿意追本溯源,找到新闻的源头。就会发现:真正值得关注的只有两个事情:1)有人在开源软件里“投毒”,虽然并没有造成真正的损害。2)F5 疑似禁止俄罗斯的开源贡献。其他的消息,都与开源没有直接的关系。
投毒的事情,现在的后续是:整个开源世界,几乎是同声谴责,node-ipc 的作者被人肉、网暴、彻底社死。(PS. 我并不认同这样的网络暴力)可以乐观的估计,在很长一段时间,开源社区里,应该不会有人,敢于冒身败名裂的风险,来做这种投毒的事情。虽然风险依然存在。
F5 的事情,卫Sir写了一篇文章《 Nginx不接受俄罗斯的贡献,违背开源协议和定义吗?我们冤枉F5了吗? 》,分析的结论是:“F5 在俄罗斯的员工不再能访问其内网也不再能贡献 Nginx”,而不是“F5 不再接受来自俄罗斯(整个国度的人民)的贡献。”
那么,到底他们在恐慌什么呢?恐慌之后,到底想做些什么呢?这背后是一个什么样的推理过程呢?
  1. 俄罗斯现在在打乌克兰
  2. 西方国家(以美国为首),都在制裁俄罗斯
  3. 无论是硬件还是软件、闭源还是开源,都已经(可能)禁止俄罗斯使用
  4. 中国是俄罗斯的盟友,西方(尤其是美国)也对我们虎视眈眈
  5. 我们将来肯定是要收复台湾的
  6. 欧美大国,将来也会像今天制裁俄罗斯一样,制裁我们
  7. 我们要提前作好准备
  8. 在开源领域,我们要有自己的GitHub、GitLab,还要有自己的各种“自主可控的”开源软件
问题在于,即使是俄罗斯现在的情况,开源也没有对俄罗斯关上大门。在这样的因果链条中,存在着诸多脆弱的推理过程,事实上是无法推论出最后这一步的。


   我们需要了解真实的开源世界


在今天我们几个朋友聊天,正好在讨论“ 后真相世界 ”的事情。我在其中谈到了一个观点:“如果是我感兴趣的事情,比如开源领域的热点事件,我会一层一层的往上追溯,一直找到新闻的源头。然后再努力解读内容,尝试了解真相。”
当然,在整个讨论过程中,我们还聊到了如何提升自身的事实查证能力。比如:英文阅读理解能力、搜索引擎的熟练掌握、搜集可信的信息源、牢靠的基础知识体系、还有学会存疑、具备批判性思维的能力。
面对真实的开源世界,我们既不需要报之以幻想,也不需要莫名恐慌。因为真实的世界总是复杂的,所以我们需要对之有更加深入的理解。只有建立在真实信息基础上的理解,才能够帮助我们,做出正确的抉择。


   如何面对真实的开源世界?


这其实是一个“姿态”问题。在之前分享关于“礼物”的理解时,我说过:“我们可以在国家层面,理解礼物的含义。美国向这个世界贡献了那么多好的技术、理念、文化,因此才能成为世界的领导者。”而中国如果想要崛起,想要成为多极世界中的一极,同样需要贡献足够多的“礼物”。
同样的,当我们在说:“要关起门来,开发自主可控的开源软件”时,这其实是一种荒谬的态度。除了引起更多的猜忌和提防,没有任何意义。我们在做的事情,无论是另一个代码托管平台,还是另一种操作系统,开源创新也好,重复造轮子也好,都是繁荣生态的努力,本质上都是在为这个世界,提供更多的选择
真实的世界,不是一个“人人良善的美好世界”,也不是一个“弱肉强食的黑暗森林”,我们需要慎重选择一条艰难的,同时也是一条开放式的道路。正如我以前说过的:“复杂的世界,没有简单的答案”


相关阅读 | Related Reading


开源促进会没有赢得 Neo4j 诉 PureThink 案的胜利


“源”来是你-Vol.32 | 知名图数据平台 Neo4j 招聘中国社区经理


诺奖模型下的开源代码溢出


开源社简介

开源社成立于 2014 年,是由志愿贡献于开源事业的个人成员,依 “贡献、共识、共治” 原则所组成,始终维持厂商中立、公益、非营利的特点,是最早以 “开源治理、国际接轨、社区发展、开源项目” 为使命的开源社区联合体。开源社积极与支持开源的社区、企业以及政府相关单位紧密合作,以 “立足中国、贡献全球” 为愿景,旨在共创健康可持续发展的开源生态,推动中国开源社区成为全球开源体系的积极参与及贡献者。


2017 年,开源社转型为完全由个人成员组成,参照 ASF 等国际顶级开源基金会的治理模式运作。近七年来,链接了数万名开源人,集聚了上千名社区成员及志愿者、海内外数百位讲师,合作了近百家赞助、媒体、社区伙伴。


本文分享自微信公众号 - 开源社KAIYUANSHE(kaiyuanshe)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。


推荐阅读
  • Bootstrap 插件使用指南
    本文详细介绍了如何在 Web 前端开发中使用 Bootstrap 插件,包括自动触发插件的方法、插件的引用方式以及具体的实例。 ... [详细]
  • PHP-Casbin v3.20.0 已经发布,这是一个使用 PHP 语言开发的轻量级开源访问控制框架,支持多种访问控制模型,包括 ACL、RBAC 和 ABAC。新版本在性能上有了显著的提升。 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 近期,微信公众平台上的HTML5游戏引起了广泛讨论,预示着HTML5游戏将迎来新的发展机遇。磊友科技的赵霏,作为一名HTML5技术的倡导者,分享了他在微信平台上开发HTML5游戏的经验和见解。 ... [详细]
  • javax.mail.search.BodyTerm.matchPart()方法的使用及代码示例 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • Node.js 配置文件管理方法详解与最佳实践
    本文详细介绍了 Node.js 中配置文件管理的方法与最佳实践,涵盖常见的配置文件格式及其优缺点,并提供了多种实用技巧和示例代码,帮助开发者高效地管理和维护项目配置,具有较高的参考价值。 ... [详细]
  • 阿里云服务器搭建详解——Ubuntu
    由于自己电脑配置跟不上,双系统一开,整个电脑就会变得非常卡顿,所以决定在阿里云买一个云服务器。听朋友说,学生买的话是非常便宜 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • Dell Latitude 5290 2-in-1 平板电脑黑苹果体验评测
    本文基于notebookcheck的详细数据和个人实际使用体验,对Dell Latitude 5290 2-in-1平板电脑进行评测。评测内容包括外观设计、散热性能、基准测试、游戏表现和续航能力等方面,旨在为读者提供全面的参考。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • 在处理木偶评估函数时,我发现可以顺利传递本机对象(如字符串、列表和数字),但每当尝试将JSHandle或ElementHandle作为参数传递时,函数会拒绝接受这些对象。这可能是由于这些句柄对象的特殊性质导致的,建议在使用时进行适当的转换或封装,以确保函数能够正确处理。 ... [详细]
author-avatar
我喜欢吕继宏
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有