目前,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-langu age/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會不會又成為一種熱門程式語言呢?
本文源自 機器之心
原文連結:
https://
twitter.com/code_report
https://
9to5google.com/2022/07/
19/carbon-programming-language-google-cpp/
https://
thenewstack.io/google-l
aunches-carbon-an-experimental-replacement-for-c/
達內教育
掃 碼添加助教
了解更多IT課程與成都就業資訊