C++ 之父回應(yīng)被建議棄用:一些高管總喜歡迷戀新事物
?Microsoft Azure CTO、Sysinternals 的主要開發(fā)者 Mark Russinovich 近日發(fā)表言論稱?,建議開發(fā)人員停止使用 C/C++ 來啟動新項目,并建議可在需要使用 non-GC 語言的場景中使用 Rust。針對此言論,外媒 The Register 向微軟進行了詢問,即 Russinovich 的建議是否會在微軟全公司范圍內(nèi)進行采納,但并未得到回復(fù)。
同時,該網(wǎng)站還就此事采訪了 C++ 之父 Bjarne Stroustrup;Stroustrup 則為 C++ 進行了辯護:
“人們 -- 尤其是一些高管 -- 總是會迷戀那些承諾會使他們的生活更輕松的新事物,這是很正常的。而且,支持新事物遠比解決舊的和眾所周知的工具的已知問題更令人興奮。不幸的是,新的語言通常需要多年的時間和重大的努力,才能在其廣泛的應(yīng)用領(lǐng)域中與成熟的語言相媲美。發(fā)燒友們很少看到這一點,他們的評論往往是相當片面的”。
Stroustrup 表示,考慮到安全性的重要程度,多年來他一直在致力于提高 C++ 的安全性;從而現(xiàn)在在 ISO C++ 中實現(xiàn)了可靠的完美類型和內(nèi)存安全。也就是說,每個對象都根據(jù)它定義的類型來使用;這意味著消除了 dangling pointers 的使用、捕獲范圍錯誤并消除了數(shù)據(jù)爭用。
他還強調(diào)稱,包括 Rust 在內(nèi)的每一種 “安全” 語言都存在著允許不安全代碼的漏洞。并談到了他參與編寫的 C++ Core Guidelines,這份指南的基本思想是定義一套為保證安全而必須遵守的規(guī)則,然后通過靜態(tài)分析來強制執(zhí)行。而之所以需要這些規(guī)則,就是因為任意的 C 或 C++ 代碼本身都無法自證安全。
“這就是符合 ISO 標準的 C++ 代碼,那些感覺不需要安全保障或者還不能更新代碼的人可以直接不運行分析器。目前,微軟 Visual Studio、Clang Tidy 等一些其他地方都有這種分析器的部分實現(xiàn)?!?/p>
Stroustrup 指出,很顯然的是 C++ 正在積極改進中,譬如在實際應(yīng)用中的靈活性和性能提升的各種嘗試。目前已有數(shù)十億行的 C++ 代碼被部署,因此無論是想要對 C++ 代碼?