0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linus諷刺:C++真是一門很爛的語(yǔ)言

Linux愛好者 ? 來(lái)源:CSDN ? 作者:CSDN ? 2021-04-25 14:22 ? 次閱讀

他來(lái)了他來(lái)了!Linus 帶著他的“暴脾氣”又來(lái)了!

近日,Rust 進(jìn)入 Linux 內(nèi)核的決定已正式提上議程,上周其內(nèi)核開發(fā)者 Miguel Ojeda 提交了一份在 Linux 內(nèi)核中添加 Rust 支持的 RFC 引起熱議。

對(duì)于這件事,許多人自然想知道 Linux 之父——Linus Torvalds 的看法,畢竟這是 Linux 這么多年以來(lái),第一次要在其內(nèi)核中加入除了 C 以外的第二門編程語(yǔ)言。因而外媒 IT Wire 就此問(wèn)題采訪了 Linus。

起初他還比較“矜持”,只是比較官方地回應(yīng)說(shuō) Linux 內(nèi)核對(duì) Rust 的支持還在早期階段,等到 5.14 版本可能才會(huì)合并相關(guān)補(bǔ)丁。

但在知道有開發(fā)者認(rèn)為“應(yīng)該用 C++ 而不是 Rust”時(shí),Linus 的“暴脾氣”終于還是藏不住了。

他大笑并諷刺道:“C++ 真是一門很爛的語(yǔ)言!”

十多年來(lái),堅(jiān)持站在炮轟 C++ 第一線

如果說(shuō),Linus 對(duì) Linux 的“愛”這三十年來(lái)從未變過(guò),那他對(duì) C++ 的“恨”也可以說(shuō)是十幾年如一日。

他早在 2007 年就開始炮轟 C++ 了。

彼時(shí),有位名為 Dmitry Kakurin 的開發(fā)者查看了 Git 源代碼發(fā)現(xiàn)使用的是純 C 而非 C++ 后,他表示不可理解,于是發(fā)帖噴道:“別拿可移植性說(shuō)事兒,這是胡扯(原句這里是 BS,即 bullshit)?!?/p>

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

好家伙,結(jié)果這句“BS”直接引爆了 Linus 的炸彈脾氣。

向來(lái)以言辭犀利著稱、甚至曾對(duì) Nvidia 比中指的 Linus 自然不避諱什么臟話粗話,因此他回懟的第一句就“以其人之道還治其人之身”:“*YOU* are full of bullshit.”

報(bào)了“BS”的仇之后,Linus 接下來(lái)還把 C++ 批的一無(wú)是處:“C++ 是一門很糟糕的語(yǔ)言”、“很多不合格的程序員都在使用它”、“我要把喜歡用 C++ 而不是 C 來(lái)開發(fā)項(xiàng)目的程序員都踢出去,免得他們來(lái)搞亂我參與的項(xiàng)目”、“C++ 最后做出來(lái)的就是一堆可怕、難以維護(hù)的垃圾”。..。..

自此,Linus 與 C++ 算是徹底杠上。

這還不算完,2010 年,Linus 又在郵件列表中接連發(fā)帖吐槽 C++。依他來(lái)看,C++ 真是一門很爛的語(yǔ)言。他表示,無(wú)論什么時(shí)候 C++ 都不可能是最正確的選擇:系統(tǒng)編程里直接用 C 就可以,而非系統(tǒng)編程里,最好選擇一種有垃圾收集的語(yǔ)言,但 C++ 的特性除了搗亂,基本無(wú)用。

他還嘲笑 C++ 的 new 關(guān)鍵字很蠢,認(rèn)為“C++ 就是廢物,根本沒啥設(shè)計(jì),只是在 C 上面加了些渣滓而已?!?/p>

而這次采訪是 Linus 時(shí)隔多年以來(lái)再次于公共場(chǎng)合對(duì) C++ 進(jìn)行炮轟。

再一次被罵“很爛”的 C++

這次引得 Linus 再次炮轟 C++ 的是 Linux Weekly News 網(wǎng)站上網(wǎng)友 @mss 的一條評(píng)論:

解決方案很簡(jiǎn)單:用 C++ 代替 Rust。

當(dāng)代碼調(diào)用不安全函數(shù)時(shí),Rust 的內(nèi)存安全就得不到保證了,而目前幾乎所有內(nèi)核 API 都在其中。不過(guò),你也可以輕松地使用 C++ 進(jìn)行此類手動(dòng)標(biāo)記。

本來(lái)呢,每個(gè)人都有發(fā)言權(quán)利,尤其在現(xiàn)在的互聯(lián)網(wǎng)時(shí)代,網(wǎng)友發(fā)言更加隨心隨性,哪種編程語(yǔ)言更好也自然是“仁者見仁,智者見智”。

可這對(duì) Linus 來(lái)說(shuō)可就不同了。他一直視 C++ 為“廢物”、認(rèn)為它“無(wú)用”,結(jié)果居然有人認(rèn)為他們精心挑選可以進(jìn)入 Linux 內(nèi)核的 Rust 還比不上 C++?

因此聽到這個(gè)評(píng)論的 Linus 沒控制住嗤笑出聲,他鄙夷說(shuō)道:“C++ 根本解決不了 C 語(yǔ)言的問(wèn)題,它只會(huì)讓事情變得更糟。這真是一門很爛的語(yǔ)言?!?/p>

他認(rèn)為,那些不喜歡 C 語(yǔ)言的人可以去尋找真正能給你帶來(lái)價(jià)值的語(yǔ)言。比如具有內(nèi)存安全性并可以避免 C 導(dǎo)致的隱患的語(yǔ)言,或者具有內(nèi)部 GC(垃圾回收)支持并簡(jiǎn)化內(nèi)存管理的語(yǔ)言。而這個(gè)語(yǔ)言明顯不是 C++,因?yàn)樵?Linus 看來(lái),C++ 解決的都是錯(cuò)誤的問(wèn)題,因而那些說(shuō)“用 C++ 重寫內(nèi)核”的人都太無(wú)知了。

與 C++ 相比,Linus 選擇無(wú)條件站在 C 這一邊。“當(dāng)人們談到由 C 導(dǎo)致的危險(xiǎn)時(shí),也談到了 C 如此強(qiáng)大的部分原因:‘它允許你高效地實(shí)現(xiàn)所有這些低級(jí)的東西’?!盠inus 提到。此外,盡管大多數(shù)情況下 GC 對(duì)于簡(jiǎn)化編程而言都是一件挺好的事,但是它通常不是你在低級(jí)系統(tǒng)編程中所能做的事情。

網(wǎng)友:C++ 不是垃圾

相信大家經(jīng)??梢栽诰W(wǎng)上看到許多人爭(zhēng)論有關(guān)“最佳編程語(yǔ)言”的話題,但隨著時(shí)間的推移,越來(lái)越多新興編程語(yǔ)言的崛起,大多數(shù)的人都意識(shí)到了一個(gè)事實(shí):每種編程語(yǔ)言都有自身局限性,也擁有其最擅長(zhǎng)的用武之地。

因此這次 Linus 把 C++ 罵得“一無(wú)是處”引來(lái)許多開發(fā)者的抗議。

網(wǎng)友@ Chuck Messenger :

C++ 的偉大之處在于它“就是 C”。你能用 C 語(yǔ)言做一些 C++ 做不到的事情嗎?據(jù)我所知沒有。在每次新的迭代中,C++ 都提供了對(duì)抽象的改進(jìn)支持,

我對(duì) Rust 很感興趣,也有可能向它遷移。但是,C++ 在任何意義上都不是“垃圾”。

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

網(wǎng)友@stikves:

他說(shuō) C++ 不適合 Linux 內(nèi)核可能是對(duì)的。不過(guò)對(duì)于 C++ 這個(gè)語(yǔ)言。..。..大家都知道他的看法一直比較強(qiáng)烈吧。

當(dāng)然,C++ 也適用于其他操作系統(tǒng),比如 Windows、Mac OS,甚至Android。所以這都取決于不同的項(xiàng)目。

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

這次 Linus 又把 C++ 程序員得罪了一通,不過(guò)這么多年來(lái)他的“暴脾氣”也沒怎么改,或許就跟編程語(yǔ)言一樣,Linus 的“火爆”也是部分開發(fā)者的“心頭好”吧!

原文標(biāo)題:Linus 再次吐槽“C++ 真是一門很爛的語(yǔ)言”

文章出處:【微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3616

    瀏覽量

    93763
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2109

    瀏覽量

    73678

原文標(biāo)題:Linus 再次吐槽“C++ 真是一門很爛的語(yǔ)言”

文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深入理解C語(yǔ)言:循環(huán)語(yǔ)句的應(yīng)用與優(yōu)化技巧

    在程序設(shè)計(jì)中,我們常常需要重復(fù)執(zhí)行某段代碼。為了提高效率和簡(jiǎn)化代碼,循環(huán)語(yǔ)句應(yīng)運(yùn)而生。C語(yǔ)言作為一門經(jīng)典的編程語(yǔ)言,提供了多種循環(huán)控制結(jié)構(gòu)
    的頭像 發(fā)表于 12-07 01:11 ?168次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>:循環(huán)語(yǔ)句的應(yīng)用與優(yōu)化技巧

    同樣是函數(shù),在CC++中有什么區(qū)別

    同樣是函數(shù),在 CC++ 中有什么區(qū)別? 第個(gè)返回值。 C語(yǔ)言的函數(shù)可以不寫返回值類型,編譯器會(huì)默認(rèn)為返回 int。 但是
    的頭像 發(fā)表于 11-29 10:25 ?324次閱讀

    C語(yǔ)言C++中結(jié)構(gòu)體的區(qū)別

    同樣是結(jié)構(gòu)體,看看在C語(yǔ)言C++中有什么區(qū)別?
    的頭像 發(fā)表于 10-30 15:11 ?245次閱讀

    C++能不能讓編譯器自動(dòng)推導(dǎo)變量類型嗎

    隨著計(jì)算機(jī)性能的持續(xù)提升,編程語(yǔ)言似乎迎來(lái)了次大爆發(fā),各種編程語(yǔ)言不斷出現(xiàn),樂意折騰的人總能找到一門適合自己胃口的編程語(yǔ)言
    的頭像 發(fā)表于 10-24 17:22 ?2085次閱讀

    技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:掌握程序結(jié)構(gòu)知識(shí)

    在計(jì)算機(jī)編程的世界中,C語(yǔ)言被廣泛認(rèn)可為一門強(qiáng)大而高效的編程語(yǔ)言,其簡(jiǎn)潔的語(yǔ)法和直接的指令使得它成為了許多程序員的首選。了解C
    的頭像 發(fā)表于 07-27 08:45 ?1412次閱讀
    技術(shù)干貨驛站 ▏深入理解<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>:掌握程序結(jié)構(gòu)知識(shí)

    未來(lái)嵌入式系統(tǒng)的黃金搭檔 MCX N947遇上Rust

    ? Rust 介紹 Rust 是一門注重安全的語(yǔ)言,相比于 C/C++/ASM 有著更高級(jí)的抽象能力、編譯器帶來(lái)的安全特性與廣泛友好的社區(qū)支持。 Linux 與 Windows 內(nèi)核也
    的頭像 發(fā)表于 07-25 09:14 ?1358次閱讀
    未來(lái)嵌入式系統(tǒng)的黃金搭檔 MCX N947遇上Rust

    C++語(yǔ)言基礎(chǔ)知識(shí)

    電子發(fā)燒友網(wǎng)站提供《C++語(yǔ)言基礎(chǔ)知識(shí).pdf》資料免費(fèi)下載
    發(fā)表于 07-19 10:58 ?7次下載

    SEGGER編譯器優(yōu)化和安全技術(shù)介紹 支持最新CC++語(yǔ)言

    SEGGER編譯器是專門為ARM和RISC-V微控制器設(shè)計(jì)的優(yōu)化C/C++編譯器。它建立在強(qiáng)大的Clang前端上,支持最新的CC++語(yǔ)言
    的頭像 發(fā)表于 06-04 15:31 ?1476次閱讀
    SEGGER編譯器優(yōu)化和安全技術(shù)介紹 支持最新<b class='flag-5'>C</b>和<b class='flag-5'>C++</b><b class='flag-5'>語(yǔ)言</b>

    C/C++中兩種宏實(shí)現(xiàn)方式

    #ifndef的方式受C/C++語(yǔ)言標(biāo)準(zhǔn)支持。它不僅可以保證同個(gè)文件不會(huì)被包含多次,也能保證內(nèi)容完全相同的兩個(gè)文件(或者代碼片段)不會(huì)被不小心同時(shí)包含。
    的頭像 發(fā)表于 04-19 11:50 ?633次閱讀

    為什么很少用C++開發(fā)單片機(jī)

    C語(yǔ)言是面向過(guò)程的語(yǔ)言,C++是面向?qū)ο蟮木幊?b class='flag-5'>語(yǔ)言。結(jié)合本文來(lái)說(shuō),面向過(guò)程相比面向?qū)ο蟮木幊蹋纱a量(bin文件)更小,運(yùn)行效率更高。
    發(fā)表于 03-25 14:26 ?990次閱讀
    為什么很少用<b class='flag-5'>C++</b>開發(fā)單片機(jī)

    C語(yǔ)言#define的應(yīng)用

    C/C++ 編程語(yǔ)言中,當(dāng)程序被編譯時(shí),被發(fā)送到編譯器,編譯器將程序轉(zhuǎn)換為機(jī)器語(yǔ)言,然后完成編譯并執(zhí)行該程序。預(yù)處理器也稱為宏預(yù)處理器。
    發(fā)表于 03-06 11:29 ?385次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>#define的應(yīng)用

    介紹C語(yǔ)言中錯(cuò)誤處理和異常處理的些常用的方法和策略

    C語(yǔ)言種低級(jí)的、靜態(tài)的、結(jié)構(gòu)化的編程語(yǔ)言,它沒有提供像C++或Java等高級(jí)語(yǔ)言中的異常處理
    的頭像 發(fā)表于 02-28 14:25 ?631次閱讀

    c語(yǔ)言,c++,java,python區(qū)別

    C語(yǔ)言、C++、Java和Python是四種常見的編程語(yǔ)言,各有優(yōu)點(diǎn)和特點(diǎn)。 C語(yǔ)言
    的頭像 發(fā)表于 02-05 14:11 ?2420次閱讀

    vb語(yǔ)言c++語(yǔ)言的區(qū)別

    Microsoft開發(fā)的種面向?qū)ο蟮氖录?qū)動(dòng)編程語(yǔ)言。它的設(shè)計(jì)目標(biāo)是簡(jiǎn)化編程過(guò)程,讓初學(xué)者也能快速上手。與之相比,C++語(yǔ)言種通用的、
    的頭像 發(fā)表于 02-01 10:20 ?2355次閱讀

    C++簡(jiǎn)史:C++是如何開始的

    的 MISRA C++:2023 博客系列的第二部分。 在這篇博客中,我們將深入探討 C++ 的歷史、編程語(yǔ)言多年來(lái)的發(fā)展歷程以及它的下步發(fā)展方向。
    的頭像 發(fā)表于 01-11 09:00 ?608次閱讀
    <b class='flag-5'>C++</b>簡(jiǎn)史:<b class='flag-5'>C++</b>是如何開始的