C++ 之父迴應被建議棄用:一些高管總喜歡迷戀新事物
Microsoft Azure CTO、Sysinternals 的主要開發者 Mark Russinovich 近日發表言論稱,建議開發人員停止使用 C/C++ 來啟動新專案,並建議可在需要使用 non-GC 語言的場景中使用 Rust。針對此言論,外媒 The Register 向微軟進行了詢問,即 Russinovich 的建議是否會在微軟全公司範圍內進行採納,但並未得到回覆。
同時,該網站還就此事採訪了 C++ 之父 Bjarne Stroustrup; Stroustrup 則為 C++ 進行了辯護:
“人們--尤其是一些高管--總是會迷戀那些承諾會使他們的生活更輕鬆的新事物,這是很正常的。而且,支援新事物遠比解決舊的和眾所周知的工具的已知問題更令人興奮。不幸的是,新的語言通常需要多年的時間和重大的努力,才能在其廣泛的應用領域中與成熟的語言相媲美。發燒友們很少看到這一點,他們的評論往往是相當片面的”。
Stroustrup 表示,考慮到安全性的重要程度,多年來他一直在致力於提高 C++ 的安全性;從而現在在 ISO C++ 中實現了可靠的完美型別和記憶體安全。也就是說,每個物件都根據它定義的型別來使用;這意味著消除了 dangling pointers 的使用、捕獲範圍錯誤並消除了資料爭用。
他還強調稱,包括 Rust 在內的每一種“安全”語言都存在著允許不安全程式碼的漏洞。並 談到了他參與編寫的 C++ Core Guidelines ,這份指南的基本思想是定義一套為保證安全而必須遵守的規則,然後通過靜態分析來強制執行。而之所以需要這些規則,就是因為任意的 C 或 C++ 程式碼本身都無法自證安全。
“ 這就是符合 ISO 標準的 C++ 程式碼,那些感覺不需要安全保障或者還不能更新程式碼的人可以直接不執行分析器。目前,微軟 Visual Studio、Clang Tidy 等一些其他地方都有這種分析器的部分實現。 ”
Stroustrup 指出,很顯然的是 C++ 正在積極改進中,譬如 在實際應用中的靈活性和效能提升的各種嘗試。目前已有數十億行的 C++ 程式碼被部署,因此無論是想要對 C++ 程式碼 進行替換還是加強安全性,都是一項需要循序漸進的艱鉅任務。“否則大量不安全的 C 和舊式 C++ 程式碼將'永遠'存在”。
- DevOps 和SRE 的十大開源專案
- 中國開源社群 Landscape 社群暢聊:開源專案通往 Apache 的獨門祕籍
- Mozilla 向科技巨頭“開火”,指責谷歌、微軟壟斷瀏覽器市場
- OpenJDK 的原生 Wayland 支援正在取得進展
- 挑戰杜比視界、杜比全景聲,Google 將推出開放媒體格式
- PipeWire 已初步支援藍芽低功耗音訊
- Arch Linux 已從儲存庫中徹底移除 Python 2
- Ubuntu 22.10 預設桌布公佈,吉祥物繪製手法改變
- 關於 Linux 和 Git 的創造者 Linus Torvalds 的 20 件趣事 | Linux 中國
- 爆肝整理5000字!HTAP的關鍵技術有哪些?| StoneDB學術分享會#3
- Java併發程式設計解析 | 基於JDK原始碼解析Java領域中ReentrantLock鎖的設計思想與實現原理 (一)
- C 之父迴應被建議棄用:一些高管總喜歡迷戀新事物
- Java19 正式 GA!看虛擬執行緒如何大幅提高系統吞吐量
- CubyText:一個正在開發中的快速的跨平臺開源知識管理應用
- Arm 高管:我們尊重 RISC-V,但它還不算我們的競爭對手
- 微軟首席工程師:Rust 將面臨十大挑戰
- 深度 deepin 開源自研程式語言:Unilang
- 哇!Torvalds 為自己的 Apple M2 Macbook 專門修改了 Fedora Linux | Linux 中國
- Linus Torvalds:執行 Fedora Workstation 36 的 M2 Air 還不錯
- Rust UEFI 韌體支援級別有望升級到 Tier 2