近日,Microsoft Azure CTO、Sysinternals 的主要開發者 Mark Russinovich 在其社交賬號上發布動態稱,開發人員是時候停止使用 C/C++ 來啟動新項目,并建議可在需要使用 non-GC 語言的場景中使用 Rust。
“說到語言,現在是時候停止用 C/C++ 啟動任何新項目了,并在那些需要使用 non-GC 語言的場景中使用 Rust。為了安全性和可靠性,業界應該宣布棄用這些語言。”
C++ 之父回應
針對 Mark Russinovich 的言論,外媒 The Register 采訪了 C++ 之父 Bjarne Stroustrup;Stroustrup 則為 C++ 進行了辯護:
“人們 -- 尤其是一些高管 -- 總是會迷戀那些承諾會使他們的生活更輕松的新事物,這是很正常的。而且,支持新事物遠比解決舊的和眾所周知的工具的已知問題更令人興奮。不幸的是,新的語言通常需要多年的時間和重大的努力,才能在其廣泛的應用領域中與成熟的語言相媲美。發燒友們很少看到這一點,他們的評論往往是相當片面的”。
Stroustrup 表示,考慮到安全性的重要程度,多年來他一直在致力于提高 C++ 的安全性;從而現在在 ISO C++ 中實現了可靠的完美類型和內存安全。也就是說,每個對象都根據它定義的類型來使用;這意味著消除了 dangling pointers 的使用、捕獲范圍錯誤并消除了數據爭用。
他還強調稱,包括 Rust 在內的每一種 “安全” 語言都存在著允許不安全代碼的漏洞。并談到了他參與編寫的 C++ Core Guidelines,這份指南的基本思想是定義一套為保證安全而必須遵守的規則,然后通過靜態分析來強制執行。而之所以需要這些規則,就是因為任意的 C 或 C++ 代碼本身都無法自證安全。
凡注有"環球傳媒網"或電頭為"環球傳媒網"的稿件,均為環球傳媒網獨家版權所有,未經許可不得轉載或鏡像;授權轉載必須注明來源為"環球傳媒網",并保留"環球傳媒網"的電頭。