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 编程语言。