74 歲 C++ 之父最新藍圖:讓代碼更安全,還能兼容40年前的老程序!

2025年03月24日20:53:05 科技 1105

74 歲 C++ 之父最新藍圖:讓代碼更安全,還能兼容40年前的老程序! - 天天要聞

圖片來源:維基百科

C++ 仍在不斷發展,但許多開發者的使用方式似乎還停留在上個世紀。Bjarne Stroustrup 表示:“我希望整個社區,尤其是 WG21 的成員,能了解我對 C++ 未來發展的看法。”

這位 74 歲的 C++ 創建者用 40 年的時間見證了他在 1985 年設計的這門語言的成長。

為了推動一些渴望已久的特性,上個月,Stroustrup 在《ACM 通信》上發表了“21 世紀的 C++”一文https://cacm.acm.org/blogcacm/21st-century-c/。這篇長達 6300 字的文章旨在展示現代化的、類型安全的 “21 世紀 C++ ”中的一些“關鍵概念”,以便可以創建 “C++ on steroids”。例如,在文中,Stroustrup 着重介紹了長期以來一直在嘗試的方法,如使用 guideline-enforcing 配置文件編寫更安全的代碼。為了與幾十年來已經編寫的 C++ 代碼保持兼容,“我們不能改變語言,但我們可以改變它的使用方式......”,Stroustrup 寫道。

然而,這種演變並不完全取決於他自己。在文章末尾,Stroustrup 提到了 WG21(標準化工作組),以及它將如何不可避免地對語言的變化產生影響。Stroustrup 寫道,”我不願意對未來做出預測,部分原因是這本身就很冒險,更重要的是因為 C++ 的定義是由一個龐大的 ISO 標準委員會基於共識來管理的。“

“我上次看時,會員名單上有 527 條。這表明大家有着很高的熱情和廣泛的興趣,並且提供了廣泛的專業知識,但對於編程語言設計來說,這並不理想,而且 ISO 的規則也無法進行大幅修改"。

儘管如此,對於關鍵受眾,Stroustrup 告訴 TNS,“有些人缺乏歷史感,忽略了一些關鍵點。例如,指南和配置文件要符合 C++ 的長期發展方向。“因此,他正在採取措施教導他們。”為此,我必須說明關鍵特性的適用範圍”。

他這篇內容詳盡的文章是一個很好的開始,但也只是眾多措施中的一種。最終,它將改變整個 C++ 生態系統的發展軌跡,同時為程序員帶來他們渴望已久的高性能、類型安全和靈活的語言。

在完成這一切的同時,Stroustrup 也實現了自己從上世紀 80 年代起就一直堅持的目標......

呼籲採取緊急行動

Stroustrup 還直接與 WG21 進行了溝通。The Register 指出,“過去三四年來,業界和政府的網絡安全專家一直在勸阻人們使用 C 和 C++,同時鼓勵人們使用具有更好內存安全性的語言”。因此,在發表這篇文章三天後,Stroustrup 給 C++ 標準委員會留下了一份官方說明,他將其描述為 “呼籲採取緊急行動,部分是為了應對 C++ 所受到的前所未有的嚴重攻擊”。

“我認為, WG21 需要做一些有意義的事,並讓人們看到它在做這件事。Profiles 是一個可以實現這一目標的框架。“

Stroustrup 的觀點很明確。他在文章中寫道:“指南沒問題,也有用處,但在一個龐大的代碼庫中,要始終如一地遵循它們基本上是不可能的。我們需要的是一種執行機制,它能標記並防止諸如懸空指針、範圍錯誤和 nullptr 解引用等問題。”

幸運的是,這樣的執行機制已經以執行準則配置文件的形式提供了。參考資料部分提供了在 Visual Studio 2019 中使用這些配置文件的示例。它實現了 “Lifetime” 配置文件的早期版本,可檢查 C++ 對象生命周期中的懸空指針和引用以及其他常見錯誤...

一般來說,每個配置文件通常都是在編譯時驗證要求是否得到滿足,是否實現了特定的效果。除了 “Lifetime” 檢查配置文件,他們還計劃推出更多配置文件,包括 “Bounds” 配置文件,以便確保所有訪問數組的代碼都包含範圍安全檢查。

在我們的電子郵件採訪中,Stroustrup 指出,通過 2020 年推出的新 span 類模板,C++ 已經為防止範圍錯誤提供了更好的支持。Bounds Profile 只是為了確保這些用於保證邊界安全的功能確實已經執行到位。

Stroustrup 告訴我:“其中很多都是標準的,現在就可以使用“。此外,他們還計劃推出其他幾個配置文件,從而幫助開發人員避免代碼中的類型或算術錯誤。Stroustrup 認為:”在不久的將來,Profiles 將為各種約束的執行提供一個框架。“

希望這能為 C++ 提供人們所期待的安全保障。不過,這也是 40 年前 Stroustrup 最初的 C++ 構想的一個自然發展過程。

“更好的近似”

像類型安全等特性一直是 Stroustrup 為 C++ 設定的安全和性能目標之一。

他在文章中寫道:“這一點從一開始就沒有變過”,並在參考資料中向讀者介紹了他 1994 年出版的《C++ 語言的設計與演化》一書。但是,當代 C++ 比早期版本更好地實現了這些長期目標,其中一部分原因是這種語言“從設計之初就在不斷發展”,Stroustrup 在文章末尾寫道。因此,經過幾十年的改進,他將 C++ 23(10 月份發布的版本)這樣的 “當代 C++”稱為他最初理想的 “更好的近似”。

74 歲 C++ 之父最新藍圖:讓代碼更安全,還能兼容40年前的老程序! - 天天要聞

在敦促 WG21 採用 Profiles 的說明中,他也強調了這一點:“正如我之前所說,這也是一個機會,因為類型安全和資源安全(包括內存安全)從一開始就是 C++ 的關鍵目標"。

“對於這一點,我的感受很強烈。請不要被我相對平靜的語言所迷惑"。

Stroustrup 在文中指出,語言不斷發展的一個問題是“許多人對 C++ 的理解已經過時。如今,我們仍然可以看到人們不斷地提及神話語言 C/C++,這通常意味着,人們認為 C++ 是 C 語言的一個次要擴展,包含了 C 語言所有最糟糕的方面,以及對 C++ 複雜特性的怪異濫用......” 但是,C++ 仍在繼續發展,Stroustrup 強調說,C++ “正在進行中的工作”及實驗性功能已經可以改進異步計算通用模型和 SIMD。

Stroustrup 寫道:“一個嚴重的問題是,如何將不同的想法整合成一個連貫的整體。與大多數軟件項目——甚至是學術界的大多數計算機科學工作——不同,設計一種語言需要“在一個並非所有相關因素都能為人所知的空間里做決定,而且接受以後數十年內都不會有重大改變”。

簡而言之,這是一個棘手的問題——這仍然是一個已知的問題。“幾十年來,幾乎所有的語言設計工作都以失敗告終,這說明了這個問題的嚴重性“。

但這並不意味着 C++ 要不再嘗試進化......

顯著改進

Profiles 並不是 21 世紀 C++ 採用的唯一改進方式。Stroustrup 在接受我們的電子郵件採訪時說:“我還要指出,模塊是一種能使代碼更簡潔並大大縮短編譯時間的機制。”

Stroustrup 在文章中提到,導入已編譯模塊比使用老式的 #include 語句速度“高出 7 到 10 倍”。

他告訴我:“現在,大多數人都可以使用 C++23 提供的功能大幅改進他們的代碼。“展望未來,Stroustrup 預測,未來會有更多提升性能的特性。“在 C++26 中,我們很可能會看到經過改進的並發支持、靜態反射和契約,以及許多細微的改進和標準庫組件。”

這種前瞻性的希望或許可以解釋,為什麼 Stroustrup 在宣傳 Profiles 時會以 C++ 的歷史為基礎。Stroustrup 告訴我,他的文章“展示了 C++ 演進的方向。安全保證即將到來。這在 C++ 中並不是一個新奇的想法,而是長期目標的一部分。完備的類型安全和資源安全是 C++ 最初的目標之一,但推動大量應用領域的發展需要時間,而且必須循序漸進。”

他知道,已安裝的代碼庫非常廣泛,C++“目前涵蓋了大量的應用領域”。安全保證必將涉及那些已經使用 C++ 提供高質量應用程序的領域。

“關注內存安全的人應該注意到,C++ 並非 C 語言。在 C++ 中,基於更安全的編程風格和加固庫的解決方案已經廣泛部署。“

我問,是否有跡象表明他在 ACM 發表的文章產生了影響——顯然這很難量化。Stroustrup 說:"我不願意對未來做預測,但我們已經看到,泛型編程已經從 concepts 中獲得了更好的支持。”

Stroustrup 指出,如果你正在尋求有效的改進,那麼你也可以將目光投向語言之外。目前,有很多工具可供 C++ 開發人員選擇。

“語言不僅僅是語言規範或正式標準中的內容“。

原文鏈接:

https://thenewstack.io/bjarne-stroustrup-on-how-he-sees-c-evolving/

科技分類資訊推薦

維諦技術360AI全鏈熱管理解決方案:破解“超跑級”算力挑戰 - 天天要聞

維諦技術360AI全鏈熱管理解決方案:破解“超跑級”算力挑戰

數字時代,算力即未來,當下以人工智能、大數據為代表的新一代信息技術迅猛發展,驅動全球算力需求呈現爆髮式增長。作為承載海量數據處理和智能計算的核心基礎設施,智算中心的建設水平與運行能力,直接關係到數字經濟發展和國家競爭力。
微信上線「短劇」小程序;傳宇樹C輪融資估值超100億,騰訊阿里吉利聯投;OpenAI警告:高生物武器風險模型將出現 |極客早知道 - 天天要聞

微信上線「短劇」小程序;傳宇樹C輪融資估值超100億,騰訊阿里吉利聯投;OpenAI警告:高生物武器風險模型將出現 |極客早知道

機器人明星企業宇樹被曝 C 輪融資落定:中國移動、騰訊、錦秋、阿里、螞蟻、吉利共同領投,估值超 100 億6 月 19 日消息,據晚點 LatePost 爆料,宇樹科技已於近期完成了去年底開啟的 C 輪融資,由中國移動旗下基金、騰訊、錦秋、阿里、螞蟻和吉利資本共同領投,宇樹的大部分老股東跟投。宇樹投前估值目前超過 100 億元人民...
微信上線「短劇」小程序;傳宇樹C 輪融資估值超 100 億,騰訊阿里吉利聯投;OpenAI 警告:高生物武器風險模型將出現 - 天天要聞

微信上線「短劇」小程序;傳宇樹C 輪融資估值超 100 億,騰訊阿里吉利聯投;OpenAI 警告:高生物武器風險模型將出現

機器人明星企業宇樹被曝 C 輪融資落定:中國移動、騰訊、錦秋、阿里、螞蟻、吉利共同領投,估值超 100 億6 月 19 日消息,據晚點 LatePost 爆料,宇樹科技已於近期完成了去年底開啟的 C 輪融資,由中國移動旗下基金、騰訊、錦秋、阿里、螞蟻和吉利資本共同領投,宇樹的大部分老股東跟投。宇樹投前估值目前超過 100 億元人民...
小黃蜂家政:本地生活服務的拓客新引擎​ - 天天要聞

小黃蜂家政:本地生活服務的拓客新引擎​

在本地生活服務領域,家政行業的競爭日益激烈,終端門店面臨著拓客難、引流難的困境。然而,小黃蜂家政以其創新的模式和強大的平台優勢,為家政終端門店帶來了新的生機與活力,成為了門店引流拓客的有力助手。小黃蜂家政摒棄了傳統家政服務的單一模式,創新性
7199元!華為新機定檔:6月26日,即將登場! - 天天要聞

7199元!華為新機定檔:6月26日,即將登場!

華為Mate70系列剛發布的時候,真的是一機難求啊。一機難求導致的結果,首先就是長時間處於無貨狀態,想買根本買不到。就算是部分渠道有貨,想買的話也必須加錢。後來為了緩解壓力,華為推出了華為Mate70Pro優享版。你還別說,華為Mate70
華為發布“智聚大上行”技術:5.5G上行速率提升15% 時延降低30% - 天天要聞

華為發布“智聚大上行”技術:5.5G上行速率提升15% 時延降低30%

快科技6月20日消息,在2025 MWC上海期間,中國電信聯合華為舉辦5G-A“智聚大上行”創新發布會。會上,雙方聯合發布了“基於智能編排和上行頻譜解耦與池化,形成智能大上行技術”最新創新技術成果。據了解,智聚大上行創新技術,利用AI模型實時預測信道質量以及通過AI實現時頻制空功五維協同調度,多頻段智能選擇,根據業務...
對話宇樹科技:機器人“燒腦”又燒錢,竟還有比這兩樣更缺的 - 天天要聞

對話宇樹科技:機器人“燒腦”又燒錢,竟還有比這兩樣更缺的

6月16日,摩根士丹利發布研究報告稱,中國機器人市場規模預計以每年23%的增幅快速增長,在未來四年翻一倍以上,鞏固中國在全球機器人領域的領先地位。就在同一天,國家統計局公布數據顯示,2025年5月中國工業機器人產量同比飆升35.5%,達到6.9萬台,服務機器人產量躍升13.8%,達到120萬台。人形機器人演示競技太極動作。受...