Python 还能承担下一个时代的发展重任吗?Mojo 语言的横空出世对 AI 研发生态有什么影响? 了解详情
写点什么

谷歌推出 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:2714228
用户头像
李冬梅 加V:busulishang4668

发布了 620 篇内容, 共 235.5 次阅读, 收获喜欢 788 次。

关注

评论 7 条评论

发布
用户头像
翻译狗,别发文章了,译的p也不是
2023-02-06 16:35 · 河北
回复
用户头像
翻译狗,别发文章了,译的p也不是
2023-02-06 16:35 · 河北
回复
用户头像
添腚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 · 北京
回复
没有更多了
发现更多内容

性能测试知识科普(二):测试策略

老张

性能测试

JS-内置对象API-Array(数组)-(二)-不改变原数组的API-篇

Sam9029

JavaScript 前端 9月月更

大厂校招SSP获得者—张金瑞 :开源项目,求职者的最佳简历|《大神详解开源 BUFF 增益攻略》讲座回顾

Apache IoTDB

开源 求职 Apache IoTDB 企业号九月金秋榜

提质增效,安全灵活,阿里云EDA上云方案让芯片设计驶入高速路

阿里云弹性计算

HPC EDA 高性能计算 芯片开发

搭建在线帮助中心是企业最重要的第一步

Baklib

企业 在线文档 帮助中心 帮助文档

Onedev v7.4.14 路径遍历漏洞分析(CVE-2022-38301)

墨菲安全

网络安全 开发安全 漏洞分析 软件供应链安全

springboot搭建基于minio的高性能存储

CTO技术共享

软件测试 | 测试开发 | 一文搞定 Postman 接口自动化测试

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 不懂PO 设计模式?这篇实战文带你搞定 PO

测吧(北京)科技有限公司

测试

【Vue2】简易Vue2-简易图书借阅管理

Sam9029

Vue 前端 9月月更

阿里MaxCompute生态团队负责人—李睿博 : 参与开源,让自己的履历与众不同|《大神详解开源 BUFF 增益攻略》讲座回顾

Apache IoTDB

数据库 线上讲座 Apache IoTDB 企业号九月金秋榜

深入理解MYSQL之缓存

C++后台开发

MySQL 数据库 缓存 中间件 后端开发

干货分享|使用 Istio 实现灰度发布

北京好雨科技有限公司

istio #Kubernetes#

软件测试 | 测试开发 | app自动化测试(iOS)元素定位(新手篇)

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 《穿越时空的git》之创建版本库和常用命令操作

测吧(北京)科技有限公司

测试

计算机网络——封装成帧和透明传输

StackOverflow

编程 计算机网络 9月月更

获得多家大厂SSP的清华应届毕业生—田原:大厂各轮面试中开源经验有什么用|《大神详解开源 BUFF 增益攻略》讲座回顾

Apache IoTDB

数据库 开源 求职 Apache IoTDB 企业号九月金秋榜

EMQ走进亚马逊云科技:携手云端,共筑「面向未来」的IoT基础设施底座

EMQ映云科技

物联网 IoT 解决方案 亚马逊云科技 9月月更

软件测试 | 测试开发 | 一文彻底理解 Cookie、Session、Token

测吧(北京)科技有限公司

测试

用户组角色绑定(原生element-plus-ui表格)

青柚1943

Element Plus Vue3 Typescript

Ubuntu服务器上部署Kubernetes集群

CTO技术共享

测试人生 | 30 而立之年的蜕变,6 个月完成从国企到 BAT 大厂测开的华丽转身

霍格沃兹测试开发学社

软件测试 | 测试开发 | iOS自动化真机测试验证环境过程中常见问题解析

测吧(北京)科技有限公司

测试

企业FAQ页面案例展示及FAQ站点搭建技巧

Baklib

企业 FAQ

个推直播预告:9月26日,一线专家分享APP数字化运营方法与实践

个推

数字化 用户画像 标签体系

kube-prometheus 监控系统使用与总结

CTO技术共享

软件测试 | 测试开发 | JAR 文件规范详解

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | Python中日志异步发送到远程服务器

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | iOS 自动化测试踩坑(一): 技术方案、环境配置与落地实践

测吧(北京)科技有限公司

测试

Saas企业数字化必不可少的工具——帮助中心

Baklib

SaaS 企业 数字化 帮助中心

阿里云PolarDB-X 荣获“2022 OSCAR 尖峰开源项目及开源社区”奖

阿里云数据库开源

阿里云 分布式数据库 开源数据库 PolarDB-X 可信开源

  • 扫码加入 InfoQ 开发者交流群
谷歌推出 Carbon 后,我在思考为什么 Rust 没能成为 C++ 的正式继任者_AI_TASMIA ANSARI_InfoQ精选文章