9 月 20 日,微軟 Azure 現任 CTO、Sysinternals 主要開發者 Mark Russinovich 在其個人推特賬號發表動態稱是時候停止使用 C/C++啟動任何新項目,并建議在需要使用 noc-GC 語言的場景下使用 Rust 編程語言。
Rust 由 Graydon Hoare 設計,而后在 Mozilla 成型,Rust 設計時借鑒了許多 C++ 的設計思想如并發特性等,也以高性能著稱,還實現了內存安全。2015 年 Rust 作為 C/C++ 的替代品開始引起人們的關注,正因如此,Rust 也經常被拿來與 C++ 進行比較,開發者也經常因為 Rust 還是 C++ 更好而爭論。
Mark Russinovich 此番言論一出,也是在技術圈引起大量討論。
Mark Russinovich圈內地位
不同于從小就熱衷于計算機的其他技術大牛,Mark Russinovich 15 歲才開始對編程很感興趣,隨后在卡內基·梅隆大學獲得計算機工程博士學位。加入微軟之前,Mark Russinovich 先是做著 Windows NT 性能監控軟件的開發工作,隨后與 Bryce Cogswell 共同創辦了 Winternals Software 公司并一起開發了數十款流行的 Windows 管理和診斷實用程序,這其中就包括著名的系統工具 Sysinternals。
2006 年微軟收購了 Winternals Software 公司,Mark Russinovich 也隨即加入微軟,幫助提升 Windows 的技術水平。在微軟,Mark Russinovich 開發了非常多的系統工具,比如 winobj、sysmon、diskmon 和進程監視器,同時他還著有被稱為 BSD 紅皮書的《Windows Internals》,此外,Mark Russinovich 還精通逆向工程,震驚世界的索尼BMG光盤復制保護丑聞就是他發現的。
也因如此,不少開發者認為像他這樣的大佬不應該參與到這種哪個編程語言更好的爭論之中。
大廠對 Rust 的態度
盡管作為微軟 Azure 的 Mark Russinovich 表示自己發表的只是個人意見,但其實微軟對 Rust 的態度已經很明朗。不僅僅是作為 Rust 基金會的創始人,早在 2019 年,微軟就開始使用 Rust 重寫 Windows 組件。當時微軟表示,其產品 70% 的安全漏洞都是內存安全問題,他們需要更安全的系統編程語言,毫無疑問,Rust 是最好的選擇,Rust 編譯器提供的內存和數據安全給微軟的開發者提供了很大的幫助。
微軟在官方文檔中提到,他們選擇 Rust 作為 Windows 最新的程序設計語言,另一個因素就是 Rust 在 Stack Overflow 開發者報告中已經連續 7 年成為最受開發者歡迎的編程語言。
得益于內存安全,Rust 備受青睞,不止微軟,Rust 已經在其他科技大廠如蘋果、亞馬遜、谷歌、Linux 開發中廣泛應用。Meta 還將 Rust 列為開發人員首選語言名單。
眾所周知,Linux 之父 Linus Torvalds 對 Rust 也有獨特的 Rust 的偏愛,Rust 目前已經成為 Linux 的第二編程語言,目前 Linux 的內核正在使用的 C 語言相比,Rust 最大的優點在于內存安全。
在 9 月 19 日結束的內核維護者峰會上,Linus Torvalds 接受媒體采訪時說道,“如果不出意外,Rust 將出現在 Linux 6.1 內核之中”。Torvalds 還表示,除了內存安全的因素,他希望在內核中看到 Rust 的另一個原因是鼓勵新的開發人員開始研究內核。
Linux 已迭代至 6.0,目前 Rust 進入內核的主要問題是編譯器,現在的內核通常使用 GCC 編譯,但 Rust 通常使用 LLVM 編譯器進行編譯。
C++ 之父回應
對于 Mark Russinovich 的言論,外媒 The Register 邀請 C++ 之父 Bjarne Stroustrup 進行了回應。
“人們總是迷戀那些看似能讓他們生活更輕松的新事物,這點在企業高管上尤其明顯。此外,支持新事物遠比解決舊工具的已知問題更令人興奮。不幸的是,新語言通常需要多年時間和重大努力才能在其廣泛的應用領域與成熟語言相匹配。但大多數開發者看不到這一點,而且他們喜歡發表片面的評論。”
Bjarne Stroustru 還表示:”在許多情況下,安全性至關重要,這也是我們多年來一直致力于提高 C++ 安全性的原因。我們現在已經在 ISO C++ 中實現了可靠的完美類型與內存安全。具體來說,我們消除了空指針問題,能夠捕捉范圍錯誤,消除了數據爭用等。此外需要注意的是,包括 Rust 在內,任何一種號稱安全的語言都可能存在不安全代碼的漏洞。“
Bjarne Stroustru 最后還補充道:“直接替換 C++ 代碼,或者讓它們變得更加安全都是一項非常艱巨的任務,需要逐步慢慢的才能做到這一點。否則大量不安全的 C++ 代碼將會永遠存在。”
開發者的不同聲音
不少開發者許多開發者都對 Rust 的過度宣傳感到反感,并表示不同的工具適合不同的問題,不要再過度宣傳某一種編程語言。Rust 很好,但它不是所有問題的解決方案。
Rust 與 C/C++ 這一次的對比同樣少不了網友的調侃,其中就有開發者表示:“在過去的三十年里,每隔五年 C/C++ 會被宣布一次死亡”。
也有開發者認為 C/C++ 只是工具,批評 C/C++ 不如 Rust 安全是不負責任的,程序是否安全應該問責開發者,通過更換編程語言并不能解決程序代碼不安全的問題。
確實像這位開發者所言,Rust 本身并不能保證軟件是安全的,它提供了針對內存安全漏洞的防御,但并不能消除其他類別的漏洞。正如 Rust 官方文檔解釋的那樣,“Rust 包含安全和不安全的編程語言”,開發人員可以選擇為某些任務編寫不安全的 Rust,他們可能會在無意中創建不安全的代碼。
拋開這些調侃,盡管不少大廠都在扶持 Rust,但在許多開發者眼中,一方面他們更關注 Rust 有沒有在更多的產品中得到應用和發展,另一方面 Rust 過于陡峭的學習曲線也給開發者帶來了困擾,從學習 Rust 到具備實際生產力需要一定的時間,這也是不少開發者抗拒 Rust 的原因。
審核編輯 :李倩
-
微軟
+關注
關注
4文章
6614瀏覽量
104175 -
C++
+關注
關注
22文章
2112瀏覽量
73720 -
Rust
+關注
關注
1文章
229瀏覽量
6621
原文標題:呼吁停用 C/C++,微軟 Azure CTO 更青睞 Rust
文章出處:【微信號:玩轉VS Code,微信公眾號:玩轉VS Code】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論