Linus:“C++ 真是一門很爛的語言!”
他來了他來了!Linus 帶著他的“暴脾氣”又來了!
近日,Rust 進(jìn)入 Linux 內(nèi)核的決定已正式提上議程,上周其內(nèi)核開發(fā)者 Miguel Ojeda 提交了一份在 Linux 內(nèi)核中添加 Rust 支持的 RFC 引起熱議。
對于這件事,許多人自然想知道 Linux 之父——Linus Torvalds 的看法,畢竟這是 Linux 這么多年以來,第一次要在其內(nèi)核中加入除了 C 以外的第二門編程語言。因而外媒 IT Wire 就此問題采訪了 Linus。
起初他還比較“矜持”,只是比較官方地回應(yīng)說 Linux 內(nèi)核對 Rust 的支持還在早期階段,等到 5.14 版本可能才會合并相關(guān)補(bǔ)丁。
但在知道有開發(fā)者認(rèn)為“應(yīng)該用 C++ 而不是 Rust”時(shí),Linus 的“暴脾氣”終于還是藏不住了。
他大笑并諷刺道:“C++ 真是一門很爛的語言!”
01
十多年來,堅(jiān)持站在炮轟 C++ 第一線
如果說,Linus 對 Linux 的“愛”這三十年來從未變過,那他對 C++ 的“恨”也可以說是十幾年如一日。
他早在 2007 年就開始炮轟 C++ 了。
彼時(shí),有位名為 Dmitry Kakurin 的開發(fā)者查看了 Git 源代碼發(fā)現(xiàn)使用的是純 C 而非 C++ 后,他表示不可理解,于是發(fā)帖噴道:“別拿可移植性說事兒,這是胡扯(原句這里是 BS,即 bullshit)?!?br />
好家伙,結(jié)果這句“BS”直接引爆了 Linus 的炸彈脾氣。
向來以言辭犀利著稱、甚至曾對 Nvidia 比中指的 Linus 自然不避諱什么臟話粗話,因此他回懟的第一句就“以其人之道還治其人之身”:“*YOU* are full of bullshit.”
報(bào)了“BS”的仇之后,Linus 接下來還把 C++ 批的一無是處:“C++ 是一門很糟糕的語言”、“很多不合格的程序員都在使用它”、“我要把喜歡用 C++ 而不是 C 來開發(fā)項(xiàng)目的程序員都踢出去,免得他們來搞亂我參與的項(xiàng)目”、“C++ 最后做出來的就是一堆可怕、難以維護(hù)的垃圾”......
自此,Linus 與 C++ 算是徹底杠上。
這還不算完,2010 年,Linus 又在郵件列表中接連發(fā)帖吐槽 C++。依他來看,C++ 真是一門很爛的語言。他表示,無論什么時(shí)候 C++ 都不可能是最正確的選擇:系統(tǒng)編程里直接用 C 就可以,而非系統(tǒng)編程里,最好選擇一種有垃圾收集的語言,但 C++ 的特性除了搗亂,基本無用。
他還嘲笑 C++ 的 new 關(guān)鍵字很蠢,認(rèn)為“C++ 就是廢物,根本沒啥設(shè)計(jì),只是在 C 上面加了些渣滓而已。”
而這次采訪是 Linus 時(shí)隔多年以來再次于公共場合對 C++ 進(jìn)行炮轟。
02
再一次被罵“很爛”的 C++
這次引得 Linus 再次炮轟 C++ 的是 Linux Weekly News 網(wǎng)站上網(wǎng)友 @mss 的一條評論:
解決方案很簡單:用 C++ 代替 Rust。
當(dāng)代碼調(diào)用不安全函數(shù)時(shí),Rust 的內(nèi)存安全就得不到保證了,而目前幾乎所有內(nèi)核 API 都在其中。不過,你也可以輕松地使用 C++ 進(jìn)行此類手動標(biāo)記。
本來呢,每個(gè)人都有發(fā)言權(quán)利,尤其在現(xiàn)在的互聯(lián)網(wǎng)時(shí)代,網(wǎng)友發(fā)言更加隨心隨性,哪種編程語言更好也自然是“仁者見仁,智者見智”。
可這對 Linus 來說可就不同了。他一直視 C++ 為“廢物”、認(rèn)為它“無用”,結(jié)果居然有人認(rèn)為他們精心挑選可以進(jìn)入 Linux 內(nèi)核的 Rust 還比不上 C++?
因此聽到這個(gè)評論的 Linus 沒控制住嗤笑出聲,他鄙夷說道:“C++ 根本解決不了 C 語言的問題,它只會讓事情變得更糟。這真是一門很爛的語言?!?br />
他認(rèn)為,那些不喜歡 C 語言的人可以去尋找真正能給你帶來價(jià)值的語言。比如具有內(nèi)存安全性并可以避免 C 導(dǎo)致的隱患的語言,或者具有內(nèi)部 GC(垃圾回收)支持并簡化內(nèi)存管理的語言。而這個(gè)語言明顯不是 C++,因?yàn)樵?Linus 看來,C++ 解決的都是錯誤的問題,因而那些說“用 C++ 重寫內(nèi)核”的人都太無知了。
與 C++ 相比,Linus 選擇無條件站在 C 這一邊。“當(dāng)人們談到由 C 導(dǎo)致的危險(xiǎn)時(shí),也談到了 C 如此強(qiáng)大的部分原因:'它允許你高效地實(shí)現(xiàn)所有這些低級的東西'?!盠inus 提到。此外,盡管大多數(shù)情況下 GC 對于簡化編程而言都是一件挺好的事,但是它通常不是你在低級系統(tǒng)編程中所能做的事情。
03
網(wǎng)友:C++ 不是垃圾
相信大家經(jīng)常可以在網(wǎng)上看到許多人爭論有關(guān)“最佳編程語言”的話題,但隨著時(shí)間的推移,越來越多新興編程語言的崛起,大多數(shù)的人都意識到了一個(gè)事實(shí):每種編程語言都有自身局限性,也擁有其最擅長的用武之地。
因此這次 Linus 把 C++ 罵得“一無是處”引來許多開發(fā)者的抗議。
網(wǎng)友@ Chuck Messenger :
C++ 的偉大之處在于它“就是 C”。你能用 C 語言做一些 C++ 做不到的事情嗎?據(jù)我所知沒有。在每次新的迭代中,C++ 都提供了對抽象的改進(jìn)支持, 我對 Rust 很感興趣,也有可能向它遷移。但是,C++ 在任何意義上都不是“垃圾”。
網(wǎng)友@stikves:
他說 C++ 不適合 Linux 內(nèi)核可能是對的。不過對于 C++ 這個(gè)語言......大家都知道他的看法一直比較強(qiáng)烈吧。 當(dāng)然,C++ 也適用于其他操作系統(tǒng),比如 Windows、Mac OS,甚至Android。所以這都取決于不同的項(xiàng)目。
這次 Linus 又把 C++ 程序員得罪了一通,不過這么多年來他的“暴脾氣”也沒怎么改,或許就跟編程語言一樣,Linus 的“火爆”也是部分開發(fā)者的“心頭好”吧!
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!