Linus又炮轰GitHub!看看你们的merge机制,只会产生垃圾

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

 [[422910]]

嘴炮大师, 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。

Linus又炮轰GitHub!看看你们的merge机制,只会产生垃圾

可以看到在Fork后作者在GitHub初始化pull中写了一句Merge branch 'torvalds:master' into master,Linus在邮件中直接说这种message完全是不可接受的,commit message应当是有信息量的,可以从fork前的消息看到Linux仓库中Torvalds Linus一直在遵守约定。

Linus又炮轰GitHub!看看你们的merge机制,只会产生垃圾

邮件中还对GitHub 明褒暗贬,「GitHub 哪都好,就是merge不行」。

Linus又炮轰GitHub!看看你们的merge机制,只会产生垃圾

并表示GitHub的merge只会「创造完全无用的垃圾合并」。

Linus又炮轰GitHub!看看你们的merge机制,只会产生垃圾

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

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

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

但GitHub把这些都给省略掉了,在Linux的kernel.org中,可以看到这些信息一目了然。

Linus又炮轰GitHub!看看你们的merge机制,只会产生垃圾

最后Linus表示,希望不要再犯这种低级错误了,在ksmbd的pull request中已经说过一遍了,并且我的回应还是和以前一样:GitHub的inital pull通常有点大病,这次我会接受,但希望你以后开发代码时能够以「合适」的方式。

Linus又炮轰GitHub!看看你们的merge机制,只会产生垃圾

Linus 的这种「直」性格能够极大的提升工作效率,一封邮件就把以后Linux相关的merge问题解决了,而他的金句也有很多。

「Talk is cheap, show me the code.」

Linus又炮轰GitHub!看看你们的merge机制,只会产生垃圾

2000年8月25日,在讨论关于内核线程优化的问题时,一个人提出了一个他认为非常高效的方案,但 Linus 并不认同,觉得这个人有点喜欢打嘴炮,也不想辩论了,直接看代码解决好了!这句话也深受广大程序员的认可,广为流传。

除了金句之外,Linus还喜欢炮轰各种各样看着不爽的东西。

2007年时,有位名为 Dmitry Kakurin 的开发者在查看了 Git 源代码并发现其使用的是纯 C 而非 C++ 后,他表示不可理喻,于是发帖喷道(太年轻了,敢和Linus喷):「完全没有什么可移植性,代码就是一坨屎。」BS的意思就是bullshit。

Linus又炮轰GitHub!看看你们的merge机制,只会产生垃圾

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注定不合拍,不过我还是想说,

老黄,卖点显卡给玩家吧!

 

责任编辑:张燕妮 来源: 新智元
相关推荐

2021-09-08 09:59:32

LinusGitHubLinux

2021-06-10 14:11:56

微信新功能移动应用

2019-01-18 16:39:08

系统层中间件层应用层

2015-12-10 15:07:15

2019-11-07 13:22:15

戴尔

2009-10-14 08:41:41

Windows 7XP模式支持CPU

2021-09-10 10:33:32

LinuxGithub合并

2022-09-11 15:02:21

JavaScriptTypeScript数据

2018-10-23 17:08:11

CIOIT人才

2021-09-08 08:40:59

蓝牙芯片漏洞

2021-07-12 12:40:39

工具代码开发

2020-01-02 13:54:55

苹果5GiPhone

2018-09-27 21:53:51

综合布线网络

2017-06-12 17:38:32

Python垃圾回收引用

2011-07-04 16:48:56

JAVA垃圾回收机制GC

2016-01-28 18:58:02

2019-08-28 17:05:18

大数据技术人工智能

2022-09-06 11:01:11

交换变量前端

2020-04-16 09:35:53

数据科学机器学习数据分析

2023-12-29 08:17:20

接口类SpringAOP
点赞
收藏

51CTO技术栈公众号