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