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

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

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

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

為何不大力發(fā)展 Rust 語言呢?
有人或許會(huì)問了:最近有專門為解決內(nèi)存安全性能應(yīng)用的需求而構(gòu)建的 Rust 語言,為何不直接使用它呢?Carruth 對(duì)此表示,如果 Rust 適合你,就繼續(xù)使用。但是,將 C++ 的生態(tài)系統(tǒng)轉(zhuǎn)移到 Rust 非常困難。

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

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

不過也有人認(rèn)為:Carbon 底層是用 C++ 實(shí)現(xiàn)的,一個(gè)用 C++ 實(shí)現(xiàn)的編程語言,想要替代 C++,說服力不夠。不過預(yù)測(cè)又會(huì)有一批新程序員上岸 Carbon。

還有網(wǎng)友想讓 Carbon 與 JavaScript 進(jìn)行一番比較,看看哪個(gè)更好:

幾年之后,Carbon 會(huì)不會(huì)又成為一種熱門編程語言呢?
原文地址:http://www.myzaker.com/article/62de2cfe8e9f0929be38552d
轉(zhuǎn)載請(qǐng)注明:取代C++?谷歌開源編程語言Carbon,網(wǎng)友評(píng)價(jià)太真實(shí)了 | 快導(dǎo)航網(wǎng)







川公網(wǎng)安備51012402001058號(hào)