Google開源Carbon語言,旨在成為C++的繼任者

danny_2018發表於2022-07-21

作為谷歌內部開發的最新程式語言,Carbon日前已經以C++候選繼任者的身份正式亮相。

多年以來,谷歌先後創造出多種程式語言,但有些大受歡迎、有些則寂寂無名。例如,Golang(簡稱Go)就是專為改進伺服器和分散式系統開發而創造的語言,現已得到廣泛應用。而當初為了替代JavaScript而設計的Dart語言,則一直到Flutter的出現才逐漸成為主流。

日前,谷歌員工Chandler Carruth公佈了全新程式語言Carbon的發展願景。為了結合應用場景,Carruth還專門展示了目前最流行的程式語言中有多少是原有語言的繼任者,又是如何利用現代語言成果幫助開發者快速提高生產力。

Android開發者很清楚,Kotlin就是Java的繼任者;iOS開發者也很清楚,Swift就是Objective-C的繼任者。微軟打造的TypeScript徹底增強了JavaScript,能夠在保證開發者友好的同時將程式碼“轉譯”回JS。在谷歌內部得到廣泛使用的C++,也在一定程度上被看作是C語言的繼任者。

還有很多朋友眼中的純Mozilla專案,目前擁有眾多鐵桿粉絲的Rust,它實際上當初也是作為C++繼任者登場的。但Carruth對它的繼任者身份提出了一點質疑,畢竟Rust確實很適合用於新專案開發,但卻不像Java和Kotlin間那樣具有“雙向互操作性”,因此難以穩定遷移。

換句話說,如果Rust能讓大家用得開心,不妨繼續使用。但想要把C++生態系統遷移到Rust,則是相當困難。

為此,雖然Carbon與Rust有著許多相同目標,例如幫助開發者建立“以效能為先的軟體”,但Carbon的獨特優勢在於能跟現有C++程式碼全面互操作。此外,如果必要,谷歌甚至希望能輕鬆把C++程式碼轉譯為Carbon。

至於C++開發者接納Carbon的理由,Carruth在舞臺上分享了這種新語言的諸多亮點。

Introducer關鍵字和簡單語法

函式輸入引數為只讀值

指標提供間接訪問和變體

使用表示式來命名型別

軟體包為root名稱空間

透過包名匯入API

用顯式物件引數進行方法宣告

單繼承;預設使用最終類

強大且經過定義檢查的泛型

型別可顯式實現介面

除了語言本身的特性之外,Carbon團隊還著力面向未來需求進行語言設計。專案程式碼被公開託管在GitHub上,且對PR請求開放。Carbon還採取非常包容的專案文化,對企業員工和個人自由開放。

換言之,Carbon程式語言並不強調自己的谷歌出身。雖然此次演講來自谷歌員工,而且Carbon目前的專案負責人主要(但並非全部)來自谷歌,但其並不屬於純谷歌自有專案。

其中的用意當然非常明顯,雖然Carbon孕育自谷歌內部,但專案團隊知道只有將其廣泛分享給社群,這款年輕的語言才有望最終成功。Carbon必須成為“一個由獨立社群驅動的專案”。在評論中,Carruth還進一步強調,Carbon目前還只是實驗性專案,但已經有一些公司表現出早期關注。

如果大家也對Carbon語言感興趣,不妨下載原始碼並在自己的裝置上一探究竟。另外,它還跟Compiler Explorer[3] Web應用相整合,所以大家可以直接在瀏覽器中體驗Carbon語言。

來自 “ 分散式實驗室 ”, 原文作者:Andy;原文連結:https://mp.weixin.qq.com/s/HJbKGoN_xX9YdMJjvPSu_w,如有侵權,請聯絡管理員刪除。

相關文章