谷歌推出 Carbon 后,我在思考为什么 Rust 没能成为 C++ 的正式继任者

作者 | Tasmia Ansari

译者 | 平川

策划 | 冬梅

最近,Rust 成为 Meta 官方支持的服务器端编程语言之一。这份清单上之前已有 C++、Hack 和 Python。

两年来,Rust 一直被用户评为最喜欢的语言,但程序员们却不这么认为。

最近,谷歌推出了“Carbon”,一种号称可能成为 C++ 继任者的开源编程语言。随着这门 “实验性”语言 成为互联网上的热门话题,人们也开始讨论为什么“Rust”没能成为 C++ 的正式继任者。

那些使用 Rust、为 Rust 做贡献以及对语言开发感兴趣的人将 Rust 社区称为“Rustaceans”。Rust 是一种静态类型编程语言。它性能好,安全性高,尤其突出的是并发安全性和内存管理。它的语法和 C++ 类似。该开源项目最早是由 Mozilla Research 开发的。2021 年,Rust 基金会接手了这门语言,并继续推动其开发。

在 CPP North 大会的演讲中,谷歌工程师 Chandler Carruth 建议说,使用 Rust 的继续使用 Rust 即可。Carbon 面向的是那些有大型 C++ 代码库而难以转换到 Rust 的人。确切地说,Carbon 就是 Carruth 口中的“继任者语言”,以现有的生态系统为基础构建,这里是指 C++。根据StackOverflow 的调查,Rust 被认为是增长最快的编程语言之一,一直被用户评为最喜欢的语言,但程序员们却不这么认为。

一门优秀的语言应该安全、快速、易于编程。

Rust 是这样吗?

Rust 很难。它的语法很复杂,学习曲线很陡。它是专门设计用来解决一些编程上非常有挑战的问题。不过,对于初学者,使用 Rust 进行 Cuda 或 MPI 编程并不像 Swift、Go 这些选项那么简单。而且,Rust 很慢。与其他语言相比,它就是只蜗牛。即使是小项目,编译时间也长得令人痛苦,而从运行时指标可以看出,Rust 程序的效率比 C 程序低。

不难想象,重写经过几十年仔细审查的 C 语言库只会引入新的 Bug。代码中的 Bug 是程序员的噩梦。虽然它确实帮助开发人员避免了一些错误,但它并不能阻止他们无意中写出 Bug。另一个问题是括号上不断出现警告,尤其是 if 语句和 while 循环上。

因此,Rust 是一门复杂得多又低效得多的语言,可能很快就会被上述工具所取代。

Rust依然很受欢迎?

虽然第一手的经验讲述了一个不同的故事,但大多数大型科技公司都在使用 Rust,其他没使用的也有引入计划。最近,Rust 成为 Meta 官方支持的服务器端编程语言之一。这份清单上之前已有 C++、Hack 和 Python。

Eric Garcia 是 Meta 的一名软件工程经理。他说,“在我们的产品和服务中,Rust 的使用迅速增加,我们致力于成为 Rust 长期的、受欢迎的早期采用者”。

Dropbox 在一些关键任务编程中 使用 Rust。当需要良好的安全性、多线程以及减少硬件数量时,其他互联网公司也可能会选择 Rust。例如,一个使用 Rust 编写的高效的 Web 服务可以为运行着数千台服务器的公司节省数百万美元的硬件。

谷歌还计划在 Android 支持将 Rust 作为系统编程语言之后,在 Linux 内核中使用 Rust。重申一下,这样做的目的是减少安全漏洞。与此同时,微软也开始使用 Rust 来减少 Windows 组件中与内存相关的 Bug。目前,在 GitHub 上,微软有 25 个公共工作库正在使用 Rust。它们中的大多数都只是偶尔有提交,这与 317 个 C++ 库相比就显得微不足道了。

Facebook 也加入了 Rust 基金会(2021 年成立的一个组织,旨在让 Rust“成为系统编程的主流语言”),以 强化其与 Rust 的关系。

2020 年,Linux 内核开发人员提出用 Rust 重写新的 Linux 内核代码。想法是向之前用 C 编写的内核中添加使用 Rust 编写的新代码。不过,这个想法尚处于研究阶段,还是实验性的。

未来,Rust 将成为物联网(IoT)设备上最受欢迎的编程语言,因为物联网设备处理器能力弱,内存小,但又需要很高的安全性。而且,考虑到与大型科技公司的关系,它可能会成为需要向数百万用户提供 Web 服务的互联网公司的最爱。

本文文字及图片出自 AI前线

余下全文(1/3)
分享这篇文章:

请关注我们:

发表评论

邮箱地址不会被公开。 必填项已用*标注