2月5-7日QCon全球软件开发大会携手100+位大咖讲师落定北京,点击查看完整日程>> 了解详情
写点什么

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

  • 2022-08-29
    北京
  • 本文字数:1507 字

    阅读完需:约 5 分钟

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

两年来,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 服务的互联网公司的最爱。


原文链接

https://analyticsindiamag.com/should-we-call-rust-a-failed-programming-language/

2022-08-29 15:279910
用户头像

发布了 490 篇内容, 共 162.9 次阅读, 收获喜欢 621 次。

关注

评论 5 条评论

发布
用户头像
添腚Google, Rust很好!
2022-09-05 15:44 · 辽宁
回复
用户头像
C++不解决内存安全问题迟早被替代。C++的模板更新的也太细太频繁了,普通用户基本用不了那么多特性。
2022-09-01 17:29 · 广东
回复
用户头像
对不起,我就是无脑反对!
先说观点,Rust大火!
说Carbon是C++的继承者,嗯,确实,因为Carbon本身就是用C++写的;

2022-08-31 14:04 · 北京
回复
用户头像
一看就是没用过rust。一本正经的胡说八道
2022-08-31 08:07 · 江苏
回复
用户头像
Rust的杀手锏就是内存安全性

未来,Rust 将成为物联网(IoT)设备上最受欢迎的编程语言,因为物联网设备处理器能力弱,内存小,但又需要很高的安全性。

2022-08-30 09:40 · 北京
回复
没有更多了
发现更多内容

开源社区问与答

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

性能测试中QPS取样器和RT取样器

FunTester

「Spring」@ConfigurationProperties——从基础到源码

翊君

Java spring 源码

Android C++系列:string最佳实践

轻口味

c++ android 4月月更

DevSecOps“内置安全保护”,让软件研发“天生健康”

华为云开发者联盟

DevOps DevSecOps 软件研发 安全架构设计 安全隐私

「微服务的细节」—— 如何获取本地IP?

袁世超

微服务

[Day25]-[二叉树]二叉搜索树中的插入操作

方勇(gopher)

LeetCode 二叉树 数据结构算法

云原生应用配置中心简述

穿过生命散发芬芳

4月月更

Docker下,极速体验编译pinpoint1.6.x分支

程序员欣宸

Java 分布式 4月月更

REDIS集群安装运维调优及常见问题处理

IT巅峰技术

Swoole中的协程使用相关说明,快来围观

CRMEB

直播回顾 | 看完这篇入门数仓研发,跑通复杂业务数据建模

个推

数据中台 数据仓库 数据建模 维度建模 范式建模

求推荐一款免费的项目(OKR)管理系统?

优秀

OKR 项目管理系统

在线Excel转TSV工具

入门小站

工具

Windows 11 修改 PIN 的长度为 4 位

HoneyMoose

中国科技人,在残酷春天里翘首等待

白洞计划

聊聊项目外包

石云升

创业 项目管理 职场经验 4月月更 项目外包

JWTToken在线编码生成

入门小站

工具

Docker知识对应验证

Docker 4月月更

揭秘华为云GaussDB(for Influx):最佳实践之数据建模

华为云开发者联盟

MySQL 数据建模 数据模型 华为云 GaussDB(for Influx)

低代码在线文档 — VitePress网站生成

源字节1号

软件开发

区块链行业一周热点回顾|马斯克回应狗狗创始人;虎符交易所回购HOO

区块链前沿News

马斯克 Hoo 虎符交易所 doge

攻克编译器技术(1)

刘旭东

编译器 4月月更

Go语言入门很简单:Go 中的作用域和变量隐藏

宇宙之一粟

作用域 Go 语言 4月月更

linux之service命令

入门小站

C语言总结_数组与函数传参练习题

DS小龙哥

4月月更

PingCode 完成近亿元人民币C轮融资,打造世界级研发管理与协作平台

PingCode

超干货 | 手把手教你快速构建一个企业自有“微信”!

融云 RongCloud

英特尔分享进军独显市场的背后思考

科技新消息

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