Google推出程式語言Carbon,旨在取代C++,網友:C++無法取代

程序員客棧 發佈 2024-03-17T20:05:13.950977+00:00

2022 年 7 月 19,Google 首席軟體工程師 Chandler Carruth 在多倫多舉行的 Cpp North 大會上發布了 Carbon。Carruth說,儘管很多人可能認為 Rust 是 C++ 的繼承者,但它缺乏 Carbon 提供的「雙向互操作性」水平。


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發布已過去半年時間了,你用過這門新的語言嗎?你的體驗如何?歡迎留言發表你的觀點。

關鍵字: