Google開源Carbon語言,旨在成為C++的繼任者
作為谷歌內部開發的最新程式語言,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,如有侵權,請聯絡管理員刪除。
相關文章
- 硬核觀察 #704 谷歌釋出開源開發語言 Carbon,準備替代 C++谷歌C++
- 谷歌新推出的Carbon語言能直接取代C++?谷歌C++
- C++ 能否成為你新的指令碼語言?C++指令碼
- 我成為VB程式語言的愛好者~
- JavaScript成為移動開發的主要語言JavaScript移動開發
- Google開源了Abseil,為C++和Python開發提供支援GoC++Python
- 開源大語言模型作為 LangChain 智慧體模型LangChain智慧體
- Go語言專案實戰:基於開源資料的成語查詢Go
- 微軟成為開源計劃(OSI)白金贊助者微軟
- Istio旨在成為容器化微服務的網格管道微服務
- Zig成為薪酬最高的程式語言
- Google 開源了世界上最準確的語言解析器 Parsey McParsefaceGo
- Google 大佬們為什麼要開發 Go 這門新語言?Go
- 比原鏈CTO James | Go語言成為區塊鏈主流開發語言的四點理由Go區塊鏈
- Python為什麼會成為人工智慧開發的首選語言?Python人工智慧
- python 是開源語言嗎:Python 是一種開源語言嗎?Python
- Kotlin成為正式的Android程式語言KotlinAndroid
- Rust為何無法成為超級語言?Rust
- Rust語言開發資源Rust
- Go是Google的語言,而不是我們的語言Go
- Google的Go語言速度提升Go
- Google 開源主管解釋為什麼開源“殘酷”Go
- 蘋果OpenELM:開源小語言模型蘋果模型
- 能讓你成為更優秀程式設計師的10個C語言資源程式設計師C語言
- 訓練營 | 如何成為一名開源社群貢獻者?
- TIOBE 2014年12月程式語言排行榜:R和Swift成為年度語言候選者Swift
- 【01】視C++為一個語言聯邦C++
- RealityEditor旨在用AR技術讓你真正成為智慧家居的主人
- 玩轉Google開源C++單元測試框架Google Test系列(gtest)(總)GoC++框架
- 用C++從0開始開發自己的程式語言C++
- “微時刻”:Google揭示為何消費者意圖成為關鍵Go
- Java語言與C++語言的差異總結JavaC++
- 12 種自然語言處理的開源工具自然語言處理開源工具
- 值得學習的C語言開源專案C語言
- 程式語言那麼多,為什麼Google獨愛JS?GoJS
- 消除遊戲/猜成語/系統開發/成語猜謎/Python程式語言遊戲Python
- Dropbox 開源其 Go 語言庫Go
- 為什麼Java是開源分散式系統的一個主要的程式語言?Java分散式