吐槽一下最新一期《科技爱好者周刊》(201 期)中引用的一句话

2022-04-01 10:28:59 +08:00
 vcfghtyjc

整个自由软件社区,弥漫着一种不信任的气氛:不信任大公司,不信任 ZF ,不信任专有软件。 这些不信任的根源在于,自由软件社区不信任集中化,更喜欢去中心的设计。-- 《去中心化的迷思》

http://www.ruanyifeng.com/blog/2022/04/weekly-issue-201.html

在 2022 年看这句话就觉得很讽刺。

事实上前段时间的两起 NPM 库的事件恰恰说明自由软件社区也不值得信任,甚至比大公司更不值得信任。

大公司有 PR 的负担,很多第三方库都是由个人维护,并不需要为自己的行为付多大责任。

这个时代又要回到 C++程序员的信条:只有自己写的代码最可靠(重复造轮子)。

Q05NIOeahCBTQiDml7bku6M=

3859 次点击
所在节点    程序员
26 条回复
jfdnet
2022-04-01 10:36:12 +08:00
把所有开源项目去掉 你看看还有哪个商业软件 /硬件能够运行起来的
zzk1989
2022-04-01 10:48:35 +08:00
node_modules 宇宙中最重的东西,nodejs 什么权限都有,也能运行二进制,里面的源码你 99%都不会看。但是能跑这么长不是一个奇迹吗?
swulling
2022-04-01 10:50:08 +08:00
这边倒是建议公司把所有开源软件都移除。

你看看哪个大公司能 run 起来,可能也就微软痛苦下估计可以吧
kop1989smurf
2022-04-01 10:56:26 +08:00
在我理解看来,开源社区的良性运转,依托的就是信任。
一旦有人打破了信任平衡,且没有受到任何的损失。整个整个社区就会进入信任滑坡,最终沦为粪坑。

所以 github 临时封禁了 Marak Squires 的登录权限。
开源社区则把其踢出局,成立了一个由 8 位参与者组成的团队来维护:faker-js/faker
kop1989smurf
2022-04-01 10:59:34 +08:00
所以楼主多虑了,开源社区的信任问题有很强的自我纠正性。

正向来讲,信任是开源社区存在意义的基石,所以大家都会努力维护。
反过来说,即便出现了恶意制造的危机,因为其便利的副本操作( Fork ),自愈性也很强。
janus77
2022-04-01 11:10:38 +08:00
这有啥问题吗,你不要把“不信任”看成贬义词
至于说谁比谁更不值得信任,这都是萝卜白菜各有所爱
另外你以为大公司用开源软件堆积成的基础是基于信任?错,是基于“他们也给这个开源项目贡献了代码,他们会从头到尾审查一遍这个项目的代码,才决定用它”。这确实是一种不信任,没有贬义。
TimePPT
2022-04-01 11:17:03 +08:00
不用因噎废食吧,部分学术造假也没有撼动科学共同体啊
xuboying
2022-04-01 11:23:46 +08:00
开源社区真正信任的是大家的能力,如果整个社区都不值得信任了,说明这个社区的成员已经没有能力价值了,作为行业相关人员的我们也就可以回家种田了。v 站也可以关门了。
vcfghtyjc
2022-04-01 11:23:50 +08:00
@swulling 讲道理,这么做大公司还真可以 run 起来,首先很多开源项目都是大公司做的,第二大公司有足够的人力来重新造轮子。最难受的其实是中小公司。之前 Log4j 的 0-day 出来后,Google 就没咋受影响,因为用的是自己内部的库。
vcfghtyjc
2022-04-01 11:26:52 +08:00
@kop1989smurf 问题是这纠错都是在事后发生,而且一颗老鼠屎坏了一锅汤。当年扶老人被讹也是个例,但结果就是大家都不愿意扶。信任的建立需要数年,而毁掉它只要一天。
vcfghtyjc
2022-04-01 11:29:14 +08:00
@TimePPT 影响范围不一样。哪怕生物科学那几个造假的大牛,最多就是骗了经费。一个受欢迎的开源库能影响几千万的用户和开发。
TimePPT
2022-04-01 11:38:24 +08:00
@vcfghtyjc 嗯,表现形式有差。科学的正负影响是缓慢而长远的。开源的问题会立马显现,但也很快被发现和修复。

比如,你看到了 Log4j 没对 Google 造成负面影响,但你也应该看到,如果没有 Google 公开发表的大数据三篇论文,整个行业的大数据进度可能会迟滞很多年。
TimePPT
2022-04-01 11:41:02 +08:00
@TimePPT 如果没有 Google 公开发表的大数据三篇论文,和后来的 Hadoop 的开源项目,整个行业的大数据进度可能会迟滞很多年。
kop1989smurf
2022-04-01 11:42:49 +08:00
@vcfghtyjc #10
这个问题我认为可以用更严苛的执行力来实现一定程度的规避。

1 、生产环境中,可以沿袭过去的传统,使用更成熟的旧版本。
2 、自己 Fork ,自己编译。

当你便利的在项目中引用一个远程的、第三方编译的、新版本的库时,其实你就已经失去了对你项目最基本的控制了。
vcfghtyjc
2022-04-01 11:47:44 +08:00
@TimePPT 我从来都很珍惜开源软件运动,所以才想吐槽现在的状况。之前的两起投毒让人恶心。
vcfghtyjc
2022-04-01 11:51:24 +08:00
@kop1989smurf 这两种方案消灭了问题,没有解决信任问题。而且长期使用旧版本和 fork 后不 merge 都只是另一种形式的重复造轮子。

我觉得一部分原因是这些开源软件的维护人没能得到应有的物质奖励,如果他们的工资来自维护代码库,那我觉得主动投毒可能性应该会更低。
cmdOptionKana
2022-04-01 11:58:33 +08:00
楼主忽略了一个重点,开源社区的 **自愈** 能力很强!

1. 没有完美的体系,如果整个世界不搞开源,都搞闭源,就不怕投毒了吗?显然不行啊。

由 1 推导出 2. 开源不是完美的,但没有更好的方案,转向闭源无法解决开源的问题。

3. 投毒就投毒吧,怕啥?世界照常运作,有问题就解决问题,并且下一个问题必然会出现,这就是现实世界。

4. 大公司自己写一切代码,能解决问题吗?也不能,因为代码是人写的,大公司里写代码的人可能有几千人,如果你认为开源世界有投毒风险,那么大公司里的人也有可能投毒,这怎么防?

开源,一个代码的使用者越多,发现问题就越容易,相当于有超级多的测试员。而闭源代码,测试员就少多了,更难发现问题。
hzcer
2022-04-01 14:40:48 +08:00
“自由软件社区不信任集中化,更喜欢去中心的设计。” 投毒的发生不就是因为代码发布权限的集中化、中心化吗?
dreasye
2022-04-01 15:06:04 +08:00
因为开源并不是用来解决信任问题的,需要的是代码审阅。
fpure
2022-04-01 15:15:49 +08:00
中心化:一个绝对的中心
去中心化:多个可选的中心
原子化:没有中心

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/844251

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX