在 7 月 15 日至 21 日举行的多伦多北部 C++开发者大会(The Northern C++ Conference)上,谷歌工程师 Chandler Carruth 宣布了名为“Carbon”的全新开源开发语言,并称它将是 C++的继任者。
Carbon 项目地址: https://github.com/carbon-language/carbon-lang
Chandler Carruth 表示,Carbon就是谷歌内部构建的最新编程语言,它拥有与 C++的“双向互操作性”,也就是说开发者可以直接在 Carbon 语言的程序中使用 C++,这大大提升了项目迁移的便捷性。
多年来,谷歌构建出了多个新兴的编程语言,其中一些已经在业内有了很高的知名度。
例如,Golang(或简称 Go)是为了改进服务器和分布式系统的开发而创建的,并已被公众采用。此外,最初旨在替代 JavaScript 的 Dart 编程语言在 Flutter 发布后也开始成为主流编程语言。
在出席此次 C++开发者大会上,Chandler Carruth 分享了他对于 Carbon 这个新编程语言的愿景。Carruth 展示了当今最流行的编程语言中有多少个语言是有继任者的,这些所谓的继任者可以让开发人员快速提高生产力并利用更现代、或者更简洁的语言设计程序。
Android 开发者很清楚 Kotlin 是 Java 的继任者,正如 iOS 开发者知道 Swift 是 Objective-C 的继任者一样。
来自 Microsoft 的 TypeScript 彻底增强了 JavaScript 性能,同时能够让开发者便捷地使用 TypeScript 并能够“转译”回 JavaScript。C++ 在谷歌中得到了大量使用,它有点像古老的 C 语言的继任者。
虽然有些人可能会认为 Rust 最初是一个 Mozilla 项目,后来它拥有了大量追随者,但如果要说 Rust 是 C++ 的继任者,也并不准确。不可否认,Rust 的确是一种很好的启动新项目的语言,但它不像 Java 和 Kotlin 那样具有“双向互操作性”,因此很难稳定地迁移。
如果 Rust 今天适合你,你应该使用它。但是将 C++ 生态系统迁移到 Rust 是很困难的。
为此,虽然 Carbon 与 Rust 有许多相同的目标,例如帮助开发人员创建“性能关键软件”,但 Carbon 还旨在与现有的 C++ 代码实现完全互操作。此外,如果需要,目标是尽可能轻松地从 C++ 迁移到 Carbon。
至于为什么 C++ 开发人员可能要考虑将 Carbon 引入他们的代码库,Carruth 在会上还分享了该语言的许多亮点。
Introducer keywords 和简单的语法
函数输入参数是只读值
使用表达式来命名类型
通过包名导入 API
强大的、经过定义检查的泛型
......
在 Carbon 的 README.md 文件中,Carbon 团队提到,虽然 C++现在依旧是有着主导性地位的语言,并有着庞大的代码库,但由于数十年的技术积累,想要持续改进 C++已经是极其困难的一件事。
而 Carbon 则不同,它在继承了 C++现有特性与生态的基础上,足够年轻,也足够“现代化”,拥有更为广阔的优化空间,潜力更大。
同时,Carbon 团队还表示,该项目的所有代码将全部公开托管在 GitHub 上,并开放 PR,这使得任何开发者都有了根据自己的需求优化改进 Carbon 语言的可能。
参考链接:
https://9to5google.com/2022/07/19/carbon-programming-language-google-cpp/
https://twitter.com/code_report/status/1549384029308338176/photo/1
评论