他来了他来了!Linus带着他的C++半永久有色眼镜回来了!近日,Rust进入Linux内核的决定正式提上日程。上周,其内核开发者MiguelOjeda提交了一份RFC,为Linux内核添加Rust支持,引发热议。对于这件事,很多吃瓜群众都想知道Linux之父LinusTorvalds的看法。毕竟这还是Linux这么多年第一次在内核中加入C语言以外的第二门编程语言。于是外媒ITWire就此问题采访了Linux。一开始,Linux的回答比较含蓄。他的官方回答是:“Linux内核对Rust的支持还处于早期阶段,相关补丁可能要到5.14版本才会合并。”但是当他知道有开发者认为“应该用C++代替Rust”的时候,Linux不能再含蓄了,他急了!他笑着讽刺地说:C++是一门糟糕的语言!十多年来,他一直坚持批判C++,也有人说,Linus对Linux的“爱”在过去的30年里从未改变。同理,他对C++的“恨”也可以说是长达十几年之久。Linus最早对C++的批判可以追溯到2007年,当时一位名叫DmitryKakurin的开发人员查看了Git源代码,发现它使用的是纯C而不是C++。纯属胡说八道”(注意原句说的是BS,即bullshit)。为什么把这部分挑出来呢,因为这个“BS”完全击中了Linus的痛点。大家应该都知道Linus一直以言辞犀利,还当众对英伟达竖中指,这样的林纳斯,生气的时候绝对不会在意自己说话是否文明,于是喷道:“YOUarefullhitshit.”虽然已经用“BS”回应了,但Linus还是不解,他开始把怒火转移到C++身上,炮轰C++是一种非常糟糕的语言,炮轰使用C++的程序员。他说,大多数使用C++的程序员都是不合格的,而且他们还威胁要把喜欢用C++而不是C来开发项目的程序员踢出去,以免把他们的项目搞砸。最后,他还带来了一款使用C++打造的产品。他直言,C++最终产生的是一堆可怕的、难以维护的垃圾。从此以后,Linus发誓要与C++格格不入。故事并没有在这里结束。2010年,Linus在邮件列表上纷纷吐槽C++。在他看来,C++很烂。他说C++在任何时候都不可能是最正确的选择。在系统编程中,可以直接使用C。在非系统编程中,有很多垃圾收集语言可供选择,而C++只能用来捣乱。.他还嘲笑C++中new关键字的愚蠢,认为“C++是垃圾,根本没有设计,只是给C添加了一些渣滓”。炮击。C++第n次被骂“烂”了。这一次,让Linus炮轰C++的导火索是注释。这位id为mss的网友在LinuxWeeklyNews网站上评论道:“解决办法很简单:用C++代替Rust。”当代码调用不安全的函数时,Rust的内存安全被破坏,这几乎存在于所有内核API中。但是,您也可以轻松地使用C++进行此类手动标记。说白了,每个人都有自己的声音和权利选择的权利。毕竟一千个人眼里有一千个哈姆雷特。但是在Linus眼里,这不仅仅是一句简单的评论。在他眼里,C++是最糟糕的存在,Rust是他们的精挑细选的能进入Linux内核的语言,它的本质根本无法一概而论,所以听到这个评论的林纳斯忍不住笑了起来,轻蔑地说:“C++根本解决不了C语言的问题,只会让事情变得越来越糟。这真是一种糟糕的语言。”他相信那些不喜欢C的人可以去找一门真正能给你带来价值的语言。比如内存安全的语言,避免了C带来的陷阱,或者内部有GC(垃圾收集)支持,简化内存管理的语言。简单来说,他允许别人不喜欢C语言,但前提是不能用C++代替。在Linus眼里,C++解决不了问题,所以喜欢用C++的人是无知的。Linus还给出了他无条件站在C一边的理由:“当人们谈论C带来的危险时,他们也在谈论C如此强大的部分原因:‘它允许你高效地实现所有这些低级的东西’。”》还有,虽然GC在大多数情况下是简化编程的高效工具,但在低级系统编程中通常不是你能做到的。网友:C++不是垃圾。关于“编程语言”的话题,有很多人们在评论区发表不同的看法,而这些评论区往往并不平静,随着越来越多的新兴编程语言的兴起,大多数人已经接受了一个事实,即每一种编程语言都有自己好的情况,但也有它的所以这次Linus炮轰C++,引来了很多开发者的抗议。网友@ChuckMessenger:C++的伟大之处在于它“是C”,C++做不到的事用C能做到吗?不像据我所知,随着每一次新的迭代,C++都提供了对抽象的改进支持,我对Rust很感兴趣,并可能向它迁移。但是,C++在任何意义上都不是“垃圾”。网友@stikves:他可能是说C++不适合Linux内核是对的。但是对于C++这门语言……大家都知道,他的观点一直比较强。当然,C++也可以在其他操作系统上使用,例如Windows、MacOS,甚至是Android。所以这取决于不同的项目。这一次Linus又一次得罪了C++程序员,但这么多年来他的“脾气”并没有太大的改变,也许就像编程语言一样,Linus的“火爆”也是部分开发者的“好心肠”!参考链接:https://developers.slashdot.o...https://lwn.net/Articles/852758/
