先不说这些观点本身,但是Linus对待Rust和C++简直是双标。在年初的Rust风波里,linus对那些拒绝Rust代码的一些模块负责人这样说:"你可以不喜欢Rust,也可以不用Rust,但是你不能阻止别人用Rust",他的这些话导致了一些linux内核代码审核人辞职。
(1)C++ 中的异常处理
“整个 C++ 的异常处理机制从根本上就是错误的。对于内核来说,它更是错得离谱。”
(2)C++ 编译器中的内存管理
“任何喜欢在背后隐藏内存分配等操作的编译器或语言,都不是内核开发的好选择。”
(3)C++ 与 C 中的面向对象编程
“你可以在 C 语言中编写面向对象的代码(对系统文件等场景很有用),而无需使用 C++中的那些垃圾。”
(4)C++ 库和依赖项的稳定性
“当这些库无法工作时,会带来无尽的痛苦(任何告诉我 STL 和 Boost 是稳定和可移植的人,简直是满嘴跑火车,而且一点都不好笑)。”
(5)你最终还是会用回纯 C
“换句话说,唯一能写出高效、系统级且可移植的 C++ 代码的方法,就是限制自己只使用那些基本上在 C 中可用的东西。”
“将项目限制在 C 语言中,意味着人们不会搞砸,也意味着你会吸引到许多真正理解底层问题的程序员,他们不会因为愚蠢的‘对象模型’而搞砸事情。”
(6)下一步是什么,Rust、Go 还是甚至原生 Java?
“C 语言最终是一种非常简单的语言,这也是我喜欢 C 语言、以及许多 C 程序员喜欢 C 语言的原因之一。然而,也正是因为其简单性,它也容易出错,而 Rust 就不会。” ——源自 Linus Torvalds 与 Dirk Hohndel 的一次对话
--
FROM 58.246.152.*