Google開源Carbon語言,旨在成為C++的繼任者
多年以來,谷歌先后創(chuàng)造出多種編程語言,但有些大受歡迎、有些則寂寂無名。例如,Golang(簡稱Go)就是專為改進服務器和分布式系統(tǒng)開發(fā)而創(chuàng)造的語言,現已得到廣泛應用。而當初為了替代JavaScript而設計的Dart語言,則一直到Flutter的出現才逐漸成為主流。
日前,于多倫多召開的Cpp North大會上,谷歌員工Chandler Carruth公布了全新編程語言Carbon的發(fā)展愿景。為了結合應用場景,Carruth還專門展示了目前最流行的編程語言中有多少是原有語言的繼任者,又是如何利用現代語言成果幫助開發(fā)者快速提高生產力。
Android開發(fā)者很清楚,Kotlin就是Java的繼任者;iOS開發(fā)者也很清楚,Swift就是Objective-C的繼任者。微軟打造的TypeScript徹底增強了JavaScript,能夠在保證開發(fā)者友好的同時將代碼“轉譯”回JS。在谷歌內部得到廣泛使用的C++,也在一定程度上被看作是C語言的繼任者。
還有很多朋友眼中的純Mozilla項目,目前擁有眾多鐵桿粉絲的Rust,它實際上當初也是作為C++繼任者登場的。但Carruth對它的繼任者身份提出了一點質疑,畢竟Rust確實很適合用于新項目開發(fā),但卻不像Java和Kotlin間那樣具有“雙向互操作性”,因此難以穩(wěn)定遷移。
換句話說,如果Rust能讓大家用得開心,不妨繼續(xù)使用。但想要把C++生態(tài)系統(tǒng)遷移到Rust,則是相當困難。
為此,雖然Carbon與Rust有著許多相同目標,例如幫助開發(fā)者創(chuàng)建“以性能為先的軟件”,但Carbon的獨特優(yōu)勢在于能跟現有C++代碼全面互操作。此外,如果必要,谷歌甚至希望能輕松把C++代碼轉譯為Carbon。
至于C++開發(fā)者接納Carbon的理由,Carruth在舞臺上分享了這種新語言的諸多亮點。
- Introducer關鍵字和簡單語法
- 函數輸入參數為只讀值
- 指針提供間接訪問和變體
- 使用表達式來命名類型
- 軟件包為root命名空間
- 通過包名導入API
- 用顯式對象參數進行方法聲明
- 單繼承;默認使用最終類
- 強大且經過定義檢查的泛型
- 類型可顯式實現接口
除了語言本身的特性之外,Carbon團隊還著力面向未來需求進行語言設計。項目代碼被公開托管在GitHub上[1],且對PR請求開放。Carbon還采取非常包容的項目文化,對企業(yè)員工和個人自由開放。
換言之,Carbon編程語言并不強調自己的谷歌出身。雖然此次演講來自谷歌員工,而且Carbon目前的項目負責人主要(但并非全部)來自谷歌,但其并不屬于純谷歌自有項目。
其中的用意當然非常明顯,雖然Carbon孕育自谷歌內部,但項目團隊知道只有將其廣泛分享給社區(qū),這款年輕的語言才有望最終成功。 Carbon必須成為“一個由獨立社區(qū)驅動的項目”。 在評論中,Carruth還進一步強調,Carbon目前還只是實驗性項目,但已經有一些公司表現出早期關注。
如果大家也對Carbon語言感興趣,不妨下載源代碼[2]并在自己的設備上一探究竟。另外,它還跟Compiler Explorer[3] Web應用相集成,所以大家可以直接在瀏覽器中體驗Carbon語言。