要成為 C++ 的繼任者?Google 開源新編程語言 Carbon
Carbon 是 Google 內部構建的最新編程語言,近日已作為 C++ 的實驗性繼任者亮相。
這么多年來,Google 創造了一些編程語言,其中一些語言比其他語言更受歡迎和有特色。例如,Golang(或簡稱 Go)是為了改進服務器和分布式系統的開發而創建的,并已被公眾采用。與此同時,最初旨在替代 JavaScript 的 Dart 編程語言直到 Flutter 發布才成為主流。
本月19 日,在多倫多舉行的 Cpp North 大會上,出席會議的 Conor Hoekstra 分享了 Google 員工 Chandler Carruth 對名為 Carbon 的新編程語言的愿景。為了設置場景,Carruth
展示了當今最流行的編程語言中有多少有后繼者,可以讓開發人員快速提高生產力并利用現代語言設計。Android開發者都知道 Kotlin 是 Java 的繼承者,就像 iOS 開發者都知道 Swift 是 Objective-C 的繼承者一樣。來自微軟的 TypeScript 對 JavaScript 進行了徹底的增強,同時仍然能夠舒適地使用并“編譯”回 JavaScript。C++ 在 Google 中得到了大量使用,它同樣是原始 C 編程語言的繼承者。
雖然有些人可能會認為 Rust 是 C++ 的繼承者,它最初是一個 Mozilla 的項目,后來發展成為一個擁有大量公眾追隨者的項目,但 Carruth 懷疑是否還有類似的情況。不可否認的是,Rust 是一個很好的啟動新項目的語言,但它不像 Java 和 Kotlin 那樣具有“雙向互操作性”,這使得穩定的遷移變得困難。
如果 Rust 今天對你有用,你應該使用它。但是將 C++ 生態系統遷移到 Rust 是困難的。
為此,雖然 Carbon 與 Rust 有許多相同的目標,例如幫助開發人員創建“對性能至關重要的軟件”,但 Carbon 還旨在與現有的 C++ 代碼完全互操作。此外,如果需要,目標是盡可能輕松地從 C++ 遷移到 Carbon。至于為什么 C++ 開發人員可能要考慮將 Carbon 引入他們的代碼庫,Carruth 分享了該語言的許多亮點。
- Introducer 關鍵字和簡單語法
- 函數輸入參數為只讀值
- 指針提供間接訪問和變體
- 使用表達式來命名類型
- 軟件包為 root 命名空間
- 通過包導入 API
- 用顯式對象參數進行方法聲明
- 單繼承;默認使用最終類
- 強大的、經過定義檢查的泛型
- 類型可顯式實現接口
除了語言本身的特性之外,Carbon 團隊還關注將塑造 Carbon 未來的開發過程。該項目的代碼在 GitHub 上公開托管,并且對拉取請求開放,而 Carbon 的文化被概述為對公司員工和個人等的員工來說都是開放和包容的。
也就是說,Carbon 編程語言的一個方面沒有特別清楚地概述是 Google 的參與。雖然今天的演示文稿是由 Google 員工分享的,并且 Carbon 目前的項目負責人主要(但不完全)由 Google 員工組成,除此之外沒有提到 Carbon 是 Google 項目。
這實際上是有意為之的,因為雖然 Carbon 在 Google 內部起步,但該團隊理解并在網上分享說,即為了在未來取得任何成功,Carbon 需要成為“一個獨立的、由社區驅動的項目”,而不僅僅是由 Google 自己的用途驅動。在同一評論中,Carruth 進一步強調 Carbon 目前只是一項實驗,盡管一些公司已經表現出早期的興趣。
如果你有興趣開始使用Carbon,可以下載源代碼并在自己的設備上進行實驗。或者,由于與免費的 Compiler Explorer Web 應用程序集成,您可以直接在瀏覽器中體驗 Carbon 編程語言。