機器之心報道
編輯:杜偉、陳萍
目 前,Carbon 編程語言正處于實驗階段。
在編程語言的世界中,C++ 的地位舉足輕重。在 2022 年 5 月的 TIOBE 編程語言排行榜中,C++ 位列第四。同樣地,谷歌內部也在廣泛使用 C++。

圖源:https://hellogithub.com/report/tiobe/
不過近日,在加拿大多倫多舉辦的 CPP North C++ 大會上,谷歌工程師 Chandler Carruth 宣布谷歌內部正在打造一種新的編程語言—— Carbon,并將它作為 C++ 的繼任者。目前,Carbon 編程語言正處于實驗階段。
正如微軟創建 TypeScript 來更新 JavaScript、JetBrains 創建 Kotlin 來彌補 Java 的缺點,Carbon 將作為替代 C++ 的語言,為開發人員提供一種全新的語言來解決內存安全和泛型等現代開發概念。

在談到為何要替代 C++ 時,Carruth 表示,C++ 作為長期以來構建性能關鍵應用的首選語言,它自身的很多問題困擾著現代開發人員。C++ 積累了數十年的技術負債,帶有的很多過時實踐都是其前身 C 語言的一部分。C++ 的維護者優先考慮向后兼容,以便繼續支持廣泛使用的項目,例如 Linux 及其包管理生態系統等。
此外,C++ 語言的發展也受到了官僚委員會程序的阻礙,該程序以標準化而非設計為導向。這種做法導致很難添加新功能。C++ 在很大程度上處于一個隔絕的開發過程,其中可能經過數年才會做出一些重要決定。
因此,Carruth 希望通過更開放的社區主導環境來構建 Carbon 語言,并已開源。目前,該項目已在 GitHub 上獲得了 16.5k 的 Stars。

GitHub 開源地址:https://github.com/carbon-language/carbon-lang
Carbon 的設計理念和特性
谷歌希望在 2022 年年底推出 Carbon 的核心工作版本,即 v0.1。Carbon 將建立在現代編程原則的基礎上,包含一個泛型系統,使開發人員不再需要為每個實例檢查和再核對代碼。
C++ 語言中亟需的一個特性是內存安全。內存訪問 bug 是安全漏洞的罪魁禍首之一,Carbon 設計人員將探索追蹤未初始化狀態的更好方法、設計支持動態邊界檢查的 API 和慣用語,并構建全面的默認 debug 構建模式。隨著時間的推移,設計人員還計劃構建一個安全的 Carbon 子集。
Carbon 語言將支持以下功能:
性能關鍵型軟件;
軟件和語言演變;
易于閱讀、理解和編寫的代碼;
實用的安全和測試機制;
快速且可擴展的開發;
現代操作系統平臺、硬件架構和環境;
與現有 C++ 代碼的互操作性和遷移。
同時,Carbon 語言的亮點包括如下:
Introducer 關鍵字和簡單語法;
函數輸入參數為只讀值;
指針提供間接訪問和變體;
使用表達式命名類型;
軟件包為 root 命名空間;
通過包名導入 APIs;
用顯式對象參數來聲明方法;
單繼承、默認使用最終類;
強大且經過定義檢查的泛型;
類型顯式地實現接口。
Carbon 設計團隊將著手創建一個內置包管理器,這在 C++ 中非常欠缺。此外,團隊還計劃編寫一些將 C++ 代碼遷移到 Carbon 代碼的工具。下圖左為 C++ 代碼,右為 Carbon 編寫的相同函數:

為何不大力發展 Rust 語言呢?
有人或許會問了:最近有專門為解決內存安全性能應用的需求而構建的 Rust 語言,為何不直接使用它呢?Carruth 對此表示,如果 Rust 適合你,就繼續使用。但是,將 C++ 的生態系統轉移到 Rust 非常困難。

相比之下,Carbon 是建立在已有 C++ 生態系統之上,適合那些已經擁有大量 C++ 代碼庫的開發人員,這些庫很難轉換到 Rust。
Carbon 有望成為 C++ 的「繼任者」
計算機編程語言是程序設計最重要的工具,每個程序員都有自己熟悉的一套編程語言。
此前,谷歌也開源了編程語言。例如 2006 年谷歌開源 Go 語言,其目標是兼具 Python 等動態語言的開發速度和 C/C++ 等編譯型語言的性能與安全性,短短幾年,Go 成為最熱門語言之一,許多大公司用 Go 來開發自己的產品。與此同時,最初旨在替代 JavaScript 的 Dart 編程語言直到 Flutter 發布才成為主流。
這次谷歌內部新打造的編程語言 Carbon,還處于實驗性階段,大家的評價如何呢?
有網友表示:C++ 對于特定的任務是好的,但現在看起來就像一個怪物,而現在 Carbon 看起來就很不錯。

更有人表示 Carbon 有望成為 C++ 的「繼任者」:

不過也有人認為:Carbon 底層是用 C++ 實現的,一個用 C++ 實現的編程語言,想要替代 C++,說服力不夠。不過預測又會有一批新程序員上岸 Carbon。

還有網友想讓 Carbon 與 JavaScript 進行一番比較,看看哪個更好:

幾年之后,Carbon 會不會又成為一種熱門編程語言呢?
原文地址:http://www.myzaker.com/article/62de2cfe8e9f0929be38552d