Linus 怒批 GitHub:制造了毫无用处的垃圾合并信息!

互联网架构师

共 2931字,需浏览 6分钟

 ·

2021-09-17 09:01

上一篇:深夜看了张一鸣的微博,让我越想越后怕

来自新智元


【导读】Linux 之父 Linus 最近在邮件列表中又炮轰 GitHub,直指 GitHub 的合并机制,直言只能产生绝对无用的「垃圾」信息,并告诫后来人:永远不要使用 GitHub 界面来 merge 任何东西!


嘴炮大师,Linux 之父 Linus Torvalds 最近又喷人了!
 
「So, GitHub, fxxk you!」
 
 
GitHub 是基于 git 进行版本管理和代码开源的网站,并且 Linus 也是 git 之父,所以 Linus 可以说是 GitHub 之父之父(误)。
 
这次事件的起因是 Paragon 软件为 Linux 内核开发了一个 NTFS 文件系统的读 / 写驱动程序代码,在 commit 时写了一个错误的 message,导致 Linus 火气飙升。
 
八月初时,Torvalds 就向 Paragon 软件公司提出了一个建议,要求应该提交一个 pull request 把代码合并到内核源代码中,以便将其读 / 写 NTFS 驱动程序包含在即将发布的 5.15 版本内核中。
 
NTFS 是 Windows 原生的文件系统,Paragon 的文件系统实现能够提高 Linux 和 Windows 文件的互操作性,而现有驱动程序的写支持能力不足。
 
事发仓库来自 Paragon-Software-Group /linux-ntfs3。
 
 
 
可以看到在 Fork 后作者在 GitHub 初始化 pull 中写了一句 Merge branch 'torvalds:master' into master,Linus 在邮件中直接说这种 message 完全是不可接受的,commit message 应当是有信息量的,可以从 fork 前的消息看到 Linux 仓库中 Torvalds Linus 一直在遵守约定。
 
 
邮件中还对 GitHub 明褒暗贬,「GitHub 哪都好,就是 merge 不行」
 
 
并表示 GitHub 的 merge 只会「创造完全无用的垃圾合并」
 
 

Linus 强调说明,Linux 内核的合并需要在符合规则的情况下进行,这就意味着所提交的消息应包含:

1、正在合并的内容以及为什么合并这些内容

2、还需要确切的作者身份和提交者信息等

 
但 GitHub 把这些都给省略掉了,在 Linux 的 kernel.org 中,可以看到这些信息一目了然。
 
 
最后 Linus 表示,希望不要再犯这种低级错误了,在 ksmbd 的 pull request 中已经说过一遍了,并且我的回应还是和以前一样:GitHub 的 inital pull 通常有点大病,这次我会接受,但希望你以后开发代码时能够以「合适」的方式。
 
 
Linus 的这种「直」性格能够极大的提升工作效率,一封邮件就把以后 Linux 相关的 merge 问题解决了,而他的金句也有很多。
 
「Talk is cheap, show me the code.」
 
 
2000 年 8 月 25 日,在讨论关于内核线程优化的问题时,一个人提出了一个他认为非常高效的方案,但 Linus 并不认同,觉得这个人有点喜欢打嘴炮,也不想辩论了,直接看代码解决好了!这句话也深受广大程序员的认可,广为流传。
 
除了金句之外,Linus 还喜欢炮轰各种各样看着不爽的东西。
 
2007 年时,有位名为 Dmitry Kakurin 的开发者在查看了 Git 源代码并发现其使用的是纯 C 而非 C++ 后,他表示不可理喻,于是发帖喷道(太年轻了,敢和 Linus 喷):「完全没有什么可移植性,代码就是一坨屎。」BS 的意思就是 bullshit。
 
 
Linus 直接回复「YOU are full of bullshit.」
 
Linus 称,C++ 标准太复杂导致不合格使用者太多,容易误用和滥用语言特性。C++ 语言想解决的问题都不对路,都是一些皮毛问题,而没有涉及真正深层次的问题。C++ 的对象、模板和函数重载都基本上纯粹是 C 的语法扩展,是语法糖,总体上把 C 的语法和类型系统都弄得更糟。他建议,在系统编程里直接用 C 就可以,非系统编程里,应该选择一种有垃圾收集的语言,C++ 语言的特性基本无用,只会捣乱。
 
因此,什么时候 C++ 都不可能是正确的选择。C++ 是狗屎,根本没啥设计,只是在 C 上面加了些渣滓而已。面向对象解决的都是一些小问题。
 
除了 C++ 外,还有万恶之源英伟达,
 
2012 年开始很多笔记本配备了采用 optimus 技术的双显卡设计,即同时具有 Intel 核心显卡和 Nvidia 独立显卡。

这种设计没有考虑到 Linux 系统,导致用户安装 Linux 系统后遇到无法解决的显卡驱动问题,而且更麻烦的是 Nvidia 又卖大量芯片给 Android 用,就导致了那句经典名言。
 
 
Linus 上文说的是「NVIDIA 一直是我们与硬件制造商之间遇到的最严重的问题之一。」
 
Nvidia 的驱动、CUDA 核心运算、DLSS 等技术始终闭源,与拥抱开源的 Linus 注定不合拍,不过我还是想说,
 
老黄,卖点显卡给玩家吧!


参考资料:

https://lore.kernel.org/lkml/CAHk-=wjbtip559HcMG9VQLGPmkurh5Kc50y5BceL8Q8=aL0H3Q@mail.gmail.com/


感谢您的阅读,也欢迎您发表关于这篇文章的任何建议,关注我,技术不迷茫!小编到你上高速。

    · END ·
最后,关注公众号互联网架构师,在后台回复:2T,可以获取我整理的 Java 系列面试题和答案,非常齐全


正文结束


推荐阅读 ↓↓↓

1.不认命,从10年流水线工人,到谷歌上班的程序媛,一位湖南妹子的励志故事

2.如何才能成为优秀的架构师?

3.从零开始搭建创业公司后台技术栈

4.程序员一般可以从什么平台接私活?

5.37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...

6.IntelliJ IDEA 2019.3 首个最新访问版本发布,新特性抢先看

7.这封“领导痛批95后下属”的邮件,句句扎心!

8.15张图看懂瞎忙和高效的区别!

一个人学习、工作很迷茫?


点击「阅读原文」加入我们的小圈子!

浏览 11
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报