文档章节

发生了什么?Linus 又发怒了?

问题终结者
 问题终结者
发布于 06/18 15:15
字数 913
阅读 32
收藏 0

在一个 Linux 内核 4.18-rc1 的 Pull Request 中,开发者 Andy Shevchenko 表示其在对设备属性框架进行更新时,移除了 union 别名,这引发了 Linus 的暴怒。

这一次 Linus Torvalds 发怒的原因在于 Andy 给出的移除 union 别名的原因是“根据标准行事”。Linus 回复邮件认为 Andy 这样的解释简直就是垃圾,并且还很危险,他解释使用 union 别名本身其实就是一种在 gcc 中的传统和标准,甚至它实际上已经是一种成文规定,并大骂对方白痴,同时大骂 C 标准是垃圾,言辞激烈。

发生了什么?Linus 又发怒了?发生了什么?Linus 又发怒了?

“你为什么做出这样的解释呢,不要跟我说什么 C 标准描述得不清楚,C 标准有时就是一坨屎”,Linus 接着解释:“你所谓的这个标准,它对于别名规则的指导完全就是错误的!它需要被完全地无视,并且每个编译器都要为这样脑残的标准给出相应的解决方案,这就是我们使用 -fwrapv 和 -fno-strict-aliasing 的原因。而你现在竟然说根据这样一个标准来行事,你这样的理由真的没有任何意义。”

Linus 全程围绕 Andy 给出的理由“根据标准行事”进行抨击,他的意思是当标准与现实和代码的可靠性相冲突时,那么标准就是不重要的,“我一再强调:当标准与现实相冲突时,那标准文档就是卫生纸,它就完全没意义。事实上,在我面前卫生纸比标准文档还有用,至少它可以让我的屎不蘸到屁股上”,邮件最后他又平静地指出:“标准也需要质疑。”

发生了什么?Linus 又发怒了?发生了什么?Linus 又发怒了?

随后在追加的第二封邮件中,Linus 表示他已经将 Andy 的 PR 合并,并且特别说明自己不是不喜欢他的代码,但是他还是“语重心长”(语气已经缓和了很多)地解释到:“我只是真的完全无法接受那种不顾现实的单方面的解释。”

同时他也解释了为什么说 Andy 给出这样的理由是很危险的,他认为这理由听起来就像是正确的,对于很多人来说,白纸黑字上的所谓标准是需要敬畏的,但是如果一些人不了解更多细节,比如在这件事情中,他不知道其实 union 别名就是 gcc 的标准做法,那他就被误导了!”标准有它发挥作用的地方,但是它也有局限“,Linus 最后写道。

Andy 回复邮件表示赞同 Linus 的说法,同时他也解释其实在设备属性框架中 union 别名确实是不合适的,所以才将它移除,而原因也不只是他之前说的“根据标准行事”,他在多个原因中可能选择了不太说得过去的一个。

最后 Andy 还补充了 Linus 关于“呼唤标准“(Appeal to Standards)在编程上应该被认为是一种逻辑谬误的看法,他认为这不仅仅只局限于编程领域。

发生了什么?Linus 又发怒了?发生了什么?Linus 又发怒了?

此次 Linus 的发飙,怼出了一番大道理,标准有它的约束作用,但也是有作用条件的,道理其实很简单,不用过多分析。不去像 Andy 那样谈论到宽泛的领域,作为日常依据各种标准编程文档行事的程序员,欢迎你留言吐槽/赞美/...标准的那些事。

原文来自:https://www.linuxprobe.com/wtf-linus-angry.html

本文转载自:

共有 人打赏支持
问题终结者
粉丝 12
博文 766
码字总数 106657
作品 0
运维
Linus 又开怼:有时候标准就是一坨屎!

在一个 Linux 内核 4.18-rc1 的 Pull Request 中,开发者 Andy Shevchenko 表示其在对设备属性框架进行更新时,移除了 union 别名,这引发了 Linus 的暴怒。 这一次 Linus Torvalds 发怒的原...

h4cd
06/09
0
0
Linus 又发怒了,这次是针对丑陋的代码

一位内核开发者在开发者邮件列表上递交了Git Pull请求,但Linux作者Linus Torvalds看了他的代码后非常生气,认为代码丑陋难读,相比开发者想要替代的简洁代码完全是一种倒退。Linus再次在邮件...

oschina
2015/11/04
16.1K
95
用谷歌新发布的 Dataset Search 搜 Linus,结果……

昨天,谷歌发布了一款重磅产品 Google Dataset Search,谷歌表示其宗旨是“Making it easier to discover datasets”,让用户更容易找到想要的数据集。 当下,许多学科的科学家和越来越多的写...

h4cd
09/07
0
0
Linus大神又怒了 呃...我为什么要说“又”?

Linus大神实乃性情中人,口无遮拦。继称OpenBSD开发者是一帮自慰的猴子、 调侃digg用户是“手淫的海象”、以及 对 Nvidia 比中指爆粗 后,又有不懂事的人惹大神发怒了。 这回事由在于Linus认...

Soga
2012/12/26
13.9K
75
Linux2.6内核和Linux2.4内核有什么不同?

 1.模块子系统(Module Subsystem)、统一设备模型(Unified Device Model)和 PnP 支持模块子系统发生了重大变化。  2.稳定性有所提高   为了彻底避免内核加载或者导出正在被使用的内核...

jtihj
2009/12/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
49分钟前
4
1
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
59分钟前
1
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
1
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
1
0
麒麟AI首席科学家现世

8月31日,华为发布了新一代顶级人工智能手机芯片麒麟980,成为全球首款7nm工艺手机芯片,AI方面也实现飞跃,支持人脸识别、物体识别、物体检测、图像分割、智能翻译等。 虽然如今人人都在热议...

问题终结者
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部