Google推出編程語言Carbon,旨在取代C++,網友:C++無法取代
2022 年 7 月 19,Google 首席軟件工程師 Chandler Carruth 在多倫多舉行的 Cpp North 大會上發布了 Carbon。
Carruth說,盡管很多人可能認為 Rust 是 C++ 的繼承者,但它缺乏 Carbon 提供的“雙向互操作性”水平。如果 Rust 今天適合你,你應該使用它,但是將 C++ 生態系統遷移到 Rust 將非常困難。Carbon 目標是與現有的 C++ 代碼完全互操作,并且讓你從 C++ 到 Carbon 的過渡盡可能容易。
Carbon 是 Google 內部構建的最新編程語言,是一個仍處于實驗階段的開源項目,該項目的代碼公開托管在 GitHub 上。
當產品出現問題時,最簡單、最快的解決方法就是逐步改進現有產品,但為什么谷歌選擇開始使用一種全新的語言呢?
C++ 是 C 語言的繼承者,無疑是編程語言里最重要的語言之一。C++ 為 Python 機器學習、JavaScript 庫、游戲開發和現代編程語言中使用的許多其他工具提供支持。
C++ 也是較早的面向對象編程語言之一,具有適應性強的設計、多功能性和廣泛的兼容性。C++ 啟發了 Java 等更新的語言,使該語言可用于開發游戲、醫療設備、人工智能和控制系統以及許多其他應用程序。
但是,C++ 的問題同樣很多:
- 跨各種功能的累積技術缺陷(例如:整數提升規則)。與 C 的向后兼容性使得修復技術缺陷變得更加困難,并使代碼更改難以實施。
- 向 C++ 添加新功能的演進過程非常困難,需要面對語言背后的嚴格治理以及可能長達數年的漫長審批過程。
所以 C++ 不能滿足谷歌的的一些要求,比如性能要求、軟件和語言的演變、易于理解和編寫、快速和可擴展的開發等等。但用C++解決這些問題實在是太難了,或者說太慢了。但C++對于谷歌來說非常重要,據說谷歌的產品服務中有超過20億行的C++代碼。
所以谷歌只能采用另外一種方案,開發一種新的語言,可以與C++實現雙向互操作。類似于創建 TypeScript 以彌補 Javascript 或 Kotlin for Java 的缺點的方式。經過谷歌工程師對多語言的深入研究和評估,引入了Carbon編程語言。
提到C++ 的繼承者,很多人認為Rust是一個不錯的選擇,目前來說Rust 是一種更可行的語言,甚至 Carbon 本身的創造者也承認這一點。但它不具備 Java 和 Kotlin 等語言的“雙向互操作性”,因此難以穩定遷移,這不符合谷歌的初衷。
Carruth闡述了Carbon的目標和宗旨,創建性能關鍵型軟件,同時支持軟件和語言的發展。另一個核心目標是使代碼易于閱讀、理解和編寫。這可以為現代操作系統平臺、硬件架構和環境實現快速且可擴展的開發。同樣重要的是,carbon 還支持與現有 C++ 代碼的互操作性和遷移。Carbon使用開源構建,用戶可以根據設定的目標和優先級為程序做出貢獻。
對于谷歌推出的新語言Carbon,網友也是眾說紛紜。有人認為C++非常健壯,堅不可摧,是無法取代的基石。有人認為推出新語言只是一種作秀,對開發軟件去起不到什么作用。也有人認為,Carbon的項目非常必要,因為C++在一些重要領域發展滯后,無法解決。Carbon的互操作性讓他對這個項目非常期待。
距離Carbon發布已過去半年時間了,你用過這門新的語言嗎?你的體驗如何?