整理 | 鄭麗媛
出品 | CSDN(ID:CSDNnews)
他來了他來了!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),”

好家伙,結果這句“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++ 在任何意義上都不是“垃圾”,

網友@stikves:
他說 C++ 不適合 Linux 內核可能是對的,不過對于 C++ 這個語言…大家都知道他的看法一直比較強烈吧,
當然,C++ 也適用于其他作業系統,比如 Windows、Mac OS,甚至Android,所以這都取決于不同的專案,

這次 Linus 又把 C++ 程式員得罪了一通,不過這么多年來他的“暴脾氣”也沒怎么改,或許就跟編程語言一樣,Linus 的“火爆”也是部分開發者的“心頭好”吧!
參考鏈接:
-
https://developers.slashdot.org/story/21/04/17/009241/linus-torvalds-says-rust-closer-for-linux-kernel-development-calls-c-a-crap-language#comments
-
https://lwn.net/Articles/852758/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/278428.html
標籤:其他
