0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linus讽刺:C++真是一门很烂的语言

Linux爱好者 来源:CSDN 作者:CSDN 2021-04-25 14:22 次阅读

他来了他来了!Linus 带着他的“暴脾气”又来了!

近日,Rust 进入 Linux 内核的决定已正式提上议程,上周其内核开发者 Miguel Ojeda 提交了一份在 Linux 内核中添加 Rust 支持的 RFC 引起热议。

对于这件事,许多人自然想知道 Linux 之父——Linus Torvalds 的看法,毕竟这是 Linux 这么多年以来,第一次要在其内核中加入除了 C 以外的第二门编程语言。因而外媒 IT Wire 就此问题采访了 Linus。

起初他还比较“矜持”,只是比较官方地回应说 Linux 内核对 Rust 的支持还在早期阶段,等到 5.14 版本可能才会合并相关补丁。

但在知道有开发者认为“应该用 C++ 而不是 Rust”时,Linus 的“暴脾气”终于还是藏不住了。

他大笑并讽刺道:“C++ 真是一门很烂的语言!”

十多年来,坚持站在炮轰 C++ 第一线

如果说,Linus 对 Linux 的“爱”这三十年来从未变过,那他对 C++ 的“恨”也可以说是十几年如一日。

他早在 2007 年就开始炮轰 C++ 了。

彼时,有位名为 Dmitry Kakurin 的开发者查看了 Git 源代码发现使用的是纯 C 而非 C++ 后,他表示不可理解,于是发帖喷道:“别拿可移植性说事儿,这是胡扯(原句这里是 BS,即 bullshit)。”

0ee36ce4-a534-11eb-aece-12bb97331649.png

好家伙,结果这句“BS”直接引爆了 Linus 的炸弹脾气。

向来以言辞犀利著称、甚至曾对 Nvidia 比中指的 Linus 自然不避讳什么脏话粗话,因此他回怼的第一句就“以其人之道还治其人之身”:“*YOU* are full of bullshit.”

报了“BS”的仇之后,Linus 接下来还把 C++ 批的一无是处:“C++ 是一门很糟糕的语言”、“很多不合格的程序员都在使用它”、“我要把喜欢用 C++ 而不是 C 来开发项目的程序员都踢出去,免得他们来搞乱我参与的项目”、“C++ 最后做出来的就是一堆可怕、难以维护的垃圾”。..。..

自此,Linus 与 C++ 算是彻底杠上。

这还不算完,2010 年,Linus 又在邮件列表中接连发帖吐槽 C++。依他来看,C++ 真是一门很烂的语言。他表示,无论什么时候 C++ 都不可能是最正确的选择:系统编程里直接用 C 就可以,而非系统编程里,最好选择一种有垃圾收集的语言,但 C++ 的特性除了捣乱,基本无用。

他还嘲笑 C++ 的 new 关键字很蠢,认为“C++ 就是废物,根本没啥设计,只是在 C 上面加了些渣滓而已。”

而这次采访是 Linus 时隔多年以来再次于公共场合对 C++ 进行炮轰。

再一次被骂“很烂”的 C++

这次引得 Linus 再次炮轰 C++ 的是 Linux Weekly News 网站上网友 @mss 的一条评论:

解决方案很简单:用 C++ 代替 Rust。

当代码调用不安全函数时,Rust 的内存安全就得不到保证了,而目前几乎所有内核 API 都在其中。不过,你也可以轻松地使用 C++ 进行此类手动标记。

本来呢,每个人都有发言权利,尤其在现在的互联网时代,网友发言更加随心随性,哪种编程语言更好也自然是“仁者见仁,智者见智”。

可这对 Linus 来说可就不同了。他一直视 C++ 为“废物”、认为它“无用”,结果居然有人认为他们精心挑选可以进入 Linux 内核的 Rust 还比不上 C++?

因此听到这个评论的 Linus 没控制住嗤笑出声,他鄙夷说道:“C++ 根本解决不了 C 语言的问题,它只会让事情变得更糟。这真是一门很烂的语言。”

他认为,那些不喜欢 C 语言的人可以去寻找真正能给你带来价值的语言。比如具有内存安全性并可以避免 C 导致的隐患的语言,或者具有内部 GC(垃圾回收)支持并简化内存管理的语言。而这个语言明显不是 C++,因为在 Linus 看来,C++ 解决的都是错误的问题,因而那些说“用 C++ 重写内核”的人都太无知了。

与 C++ 相比,Linus 选择无条件站在 C 这一边。“当人们谈到由 C 导致的危险时,也谈到了 C 如此强大的部分原因:‘它允许你高效地实现所有这些低级的东西’。”Linus 提到。此外,尽管大多数情况下 GC 对于简化编程而言都是一件挺好的事,但是它通常不是你在低级系统编程中所能做的事情。

网友:C++ 不是垃圾

相信大家经常可以在网上看到许多人争论有关“最佳编程语言”的话题,但随着时间的推移,越来越多新兴编程语言的崛起,大多数的人都意识到了一个事实:每种编程语言都有自身局限性,也拥有其最擅长的用武之地。

因此这次 Linus 把 C++ 骂得“一无是处”引来许多开发者的抗议。

网友@ Chuck Messenger :

C++ 的伟大之处在于它“就是 C”。你能用 C 语言做一些 C++ 做不到的事情吗?据我所知没有。在每次新的迭代中,C++ 都提供了对抽象的改进支持,

我对 Rust 很感兴趣,也有可能向它迁移。但是,C++ 在任何意义上都不是“垃圾”。

0f1e0b6a-a534-11eb-aece-12bb97331649.png

网友@stikves:

他说 C++ 不适合 Linux 内核可能是对的。不过对于 C++ 这个语言。..。..大家都知道他的看法一直比较强烈吧。

当然,C++ 也适用于其他操作系统,比如 Windows、Mac OS,甚至Android。所以这都取决于不同的项目。

0f684bda-a534-11eb-aece-12bb97331649.png

这次 Linus 又把 C++ 程序员得罪了一通,不过这么多年来他的“暴脾气”也没怎么改,或许就跟编程语言一样,Linus 的“火爆”也是部分开发者的“心头好”吧!

原文标题:Linus 再次吐槽“C++ 真是一门很烂的语言”

文章出处:【微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程
    +关注

    关注

    88

    文章

    3441

    浏览量

    92410
  • C++
    C++
    +关注

    关注

    21

    文章

    2066

    浏览量

    72900

原文标题:Linus 再次吐槽“C++ 真是一门很烂的语言”

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    c语言,c++,java,python区别

    C语言C++、Java和Python是四种常见的编程语言,各有优点和特点。 C语言: C语言是一种面向过程的编程
    的头像 发表于 02-05 14:11 447次阅读

    vb语言c++语言的区别

    VB语言C++语言是两种不同的编程语言,虽然它们都属于高级编程语言,但在设计和用途上有很多区别。下面将详细比较VB
    的头像 发表于 02-01 10:20 605次阅读

    C语言C++中那些不同的地方

    C语言虽说经常和C++在一起被大家提起,但可千万不要以为它们是一个东西。现在我们常用的C语言是C89标准,C++是C++99标准的。C89就是在1989年制定的标准,如今最新的是C11
    的头像 发表于 12-07 14:29 543次阅读
    C<b class='flag-5'>语言</b>和<b class='flag-5'>C++</b>中那些不同的地方

    如何选择创建c语言c++

    选择创建 C 语言C++ 都需要综合考虑多个因素。在决定使用哪种语言之前,我们需要对这两种语言的特点、优缺点、适用场景、学习成本等进行全面的了解和对比。下面是关于选择创建 C
    的头像 发表于 11-27 15:58 243次阅读

    C/C++语言学习大全套

    电子发烧友网站提供《C/C++语言学习大全套.rar》资料免费下载
    发表于 11-18 14:33 0次下载
    C/<b class='flag-5'>C++</b><b class='flag-5'>语言</b>学习大全套

    单片机编程语言可以用c++吗?

    单片机编程语言可以用c++吗?
    发表于 11-09 06:40

    嵌入式C/C++语言精华文章集锦

    面对个人的大型 C/C++程序时,只看其对 struct 的使用情况我们就可以对其编写者的编程经验进行评估。因为个大型的 C/
    发表于 09-25 08:00

    如何为原生C++开发设置Android Studio

    在本指南中,我们将介绍如何为原生C++开发设置Android Studio,并了解如何将Neon内部功能用于ARM支持的移动设备。 不要重复自己(Dry)是软件开发的主要原则之。 遵循这原则通常
    发表于 08-17 08:28

    如何为Arm编译Cc++代码

    C++源代码翻译成机器代码的编译器。 •将汇编语言源代码翻译成机器代码的汇编程序。 •个链接器,用于将多个机器代码模块组合成个可执行文件。 可用的工具链包括: •Arm编译器6。
    发表于 08-02 17:28

    ARM C语言扩展规范

    ARM C语言扩展(ACLE)规范指定源语言扩展和实现C/C++编译器可以实现的选项,以便让程序员更好地利用ARM体系结构。 扩展包括: 
    发表于 08-02 06:27

    C++程式語言 第章 1-7C++運算式 - 第1节C++程式語言 第章 1-7C++運算式 -

    编程语言C++
    充八万
    发布于 :2023年07月30日 03:10:00

    C++程式語言 第章 1-3C++字串和Vector向量 - 第1节C++程式語言 第章 1-3C

    编程语言C++
    充八万
    发布于 :2023年07月30日 03:08:19

    起探索C++的世界!

    C++
    YS YYDS
    发布于 :2023年07月07日 19:10:25

    C语言C++的区别看法

        虽然 C 语言并不是我所学的第一门语言,也不是我的最后一门语言,但是我仍然非常喜欢 C,当需要写程序时,我的第一选择还是 C。同时,
    的头像 发表于 07-06 14:29 710次阅读