“再见了 Rust,祝你成功,但我还是回到了 C++……”

内容分享1个月前发布 _Miuuu_
0 20 0

“再见了 Rust,祝你成功,但我还是回到了 C++……”

【CSDN 编者按

】在技术社区中,编程语言的选择往往不仅仅是基于技术优劣的考量,更涉及到职业发展、市场需求以及个人偏好等多方面因素。本文作者分享了从 Rust 回归 C++ 的心路历程,指出了尽管 Rust 在设计上拥有诸多优势——如更好的工具支持、丰富的库生态以及严格的内存安全机制,但在实际就业市场上的采用率和行业影响力却相对有限。作者通过个人经历反思了 Rust 与 C++ 之间的抉择,并对 Rust 未来的发展提出了自己的见解。

作者 | I_pretend_2_know(Reddit ID) 编译 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

在我三年的 Rust 编程生涯中,我做过异步/多线程编程、通过 bindgen 使用 FFI、在没有 std 的情况下进行内核编程……这些都很有趣。但目前这种乐趣已经结束:一个月前,我开始了一份 C++ 的工作。

“再见了 Rust,祝你成功,但我还是回到了 C++……”

(CSDN付费下载自视觉中国)

“再见了 Rust,祝你成功,但我还是回到了 C++……”

Rust 没有获得足够的普及度

从我的个人体验来看,Rust 的确 比 C++ 更优秀。它有更好的工具(cargo)、更完善的库生态系统(crates.io),还去掉了许多繁琐无用的东西(没有面向对象,没有异常处理,内存管理更严格等),并要求你以正确的方式做事。

但 Rust 的好,就像 Betamax 之于 VHS、Mastodon 之于 Twitter、Dvorak 键盘之于 QWERTY、世界语之于英语,以及 Lua 之于 JavaScript 一样:在通信技术中,采用率和关键用户群占了 90% 的比重,剩下的 10% 才是技术细节,最多也只是各抒己见。而编程语言是一种沟通技术,是一种向其他开发者传达想法的工具。

Rust 的问题在于,它没有获得足够的普及度——说实话,我觉得它永远也不会有。最近,Linus Torvalds 在某处抱怨说,许多掌握 C 语言的“老古董”根本不愿意学 Rust。对于更高层次的应用(列如 Web 后端),Go 提供了比 Rust 更快的迭代周期,由于它的学习曲线更平缓,编译时间也更短。虽然 Rust 的采用率在上升,但竞争技术也在不断进步(例如:更安全的 C++ 和更强的 lint 工具,JIT 编译的 JavaScript 和 WASM 引擎变得更快),甚至有些技术发展得更快(列如 Go)。

“再见了 Rust,祝你成功,但我还是回到了 C++……”

掌握 Rust,对找工作几乎没有协助?

然后,我们还要面对一个显而易见的实际:掌握 Rust 对找工作几乎没有协助。大多数要求 Rust 编程技能的工作,都要求在某些专业领域有深厚的知识:如加密货币/区块链、金融交易、机器学习/数据分析、冷门网络协议、网络安全等等。在这些职位上,精通 Rust 最多只是一个“加分项”——我的意思是:如果你被这类岗位录取,绝不是由于你精通 Rust,而是由于你对相关领域有着深入了解。

甚至在 Reddit 里,名为“self.rust”的子版块也凸显了这个问题。我发目前其他编程语言的子版块(例如 Golang、C++)中,招聘信息总是会被置顶。而在 Rust 的子版块中我却很少看到这种情况,就好像“关于 Rust 工作的第一条规则就是不要谈论 Rust 工作”。

有许多技术由于未能获得广泛接受而最终被遗弃,其中许多比 Rust 更具革命性(例如 Lisp、Smalltalk),而我不认为 Rust 能够避免这样的命运。

值得一提的是:编程语言的进步背后往往有大公司的支持。例如,IBM 推动了 FORTRAN,AT&T 推动了 C 语言,微软推动了 MS-Basic 和 C#,Sun 推动了 Java,谷歌推动了 Python,苹果推动了 Objective-C 和 Swift,Web 浏览器推动了 JavaScript,大部分大公司都推动了 C++——不过,我看不到有多少强有力的赞助商在背后支持 Rust,并推动其客户采用。

“再见了 Rust,祝你成功,但我还是回到了 C++……”

网友热议,多数人看好 Rust 的发展

这篇帖子在 Reddit 上引起了广泛热议,其中大多数网友并不认可本文作者的说法:

  • “跟你完全不同,我们在 AWS 的每个新项目都要求使用 Rust,而之前这些项目都是用 C++ 编写的。”

  • “微软也是如此。目前在虚拟机托管节点上运行的所有新服务都必须使用 Rust,这是一项自上而下的规定。”

  • “我不是 Rust 的粉丝,但是…谷歌、微软、亚马逊等公司都在谈论和推动 Rust,从某种意义上说,他们都在使用 Rust,Rust 也的确 不错。Rust 虽然是一种新技术,但我信任它有足够的动力达到你所说的普及度。”

  • “没有人能预见未来,但我不同意你对 Rust 的悲观见解,缘由有以下几点:第一,有大公司在推动 Rust 的应用,例如谷歌、微软、亚马逊等。甚至连美国政府都提议用内存安全语言(Rust 是主要的替代语言)取代 C 和 C++。其次,C++ 已有近 40 年历史。Rust 甚至还不到 10 岁。采用率的提升需要时间,而且 C++ 一开始也不是很流行。“

那么,你对于这个话题又有什么见解呢?

“再见了 Rust,祝你成功,但我还是回到了 C++……”

秉承“全球专家、卓越智慧”的理念,由 CSDN&Boolan 举办的「2024 全球C++及系统软件技术大会」将于 12 月 5-6 日在上海虹桥万豪大酒店正式展开。大会由 C++ 之父、ACM 和 IEEE 院士 Bjarne Stroustrup 领衔,联合来自英伟达、阿里巴巴、字节跳动、腾讯、百度和 B 站等顶尖企业的技术专家,通过主题演讲、案例剖析与技术交流,分享行业洞见和实践经验,推动技术创新与落地应用。

“再见了 Rust,祝你成功,但我还是回到了 C++……”

© 版权声明

相关文章

20 条评论

您必须登录才能参与评论!
立即登录
  • 头像
    葉景安 读者

    我rust,起码不怕下边给那瞎写了,编译器会帮你纠正他们

    无记录
  • 头像
    微漫烟叶 读者

    花了两周总算学完了rust的语法,然后就放弃了

    无记录
  • 头像
    强强 读者

    其实真要一个严格切效率高的与c同级别的语言,pascal就很好,搞个rust是几个意思?

    无记录
  • 头像
    惜别原神 投稿者

    c++的标准变化太快!太臃肿了。应该精简,不然没前途。你看看c,基本没啥大的变化,但啥活都能干;这才是好语言

    无记录
  • 头像
    我就是静静cj 投稿者

    推出这么多的高级语言就是浪费人类的时间,只因为各大公司各自为政,计算机技术标准化合理化完全不是技术问题,而是利益和政治问题。

    无记录
  • 头像
    honeyMavis 投稿者

    虽然是个宗教语言,但是适合底层的稳定的较小规模的需求,频繁迭代的话折磨死,为什么说rust重构世界,因为需求都稳定了不会频繁迭代

    无记录
  • 头像
    赛博大蟑螂- 投稿者

    rust必将取代c++

    无记录
  • 头像
    牧羊人 读者

    c++应该加入rust模式编译

    无记录
  • 头像
    古典奥派主义者 投稿者

    已经有AI了,用什么语言真的很重要么?

    无记录
  • 头像
    略知天下事 读者

    rust,cia出品,内核bp机

    无记录
  • 头像
    恒信法人王一凡 读者

    我准备用c++做个中国版本的redis出来。

    无记录
  • 头像
    刘亠刈 投稿者

    我Rust语言,未来是AI编程时代,防止运行时bug比容不容易学会更重要!

    无记录
  • 头像
    一世情惺 读者

    c++上个世纪80年代刚出来的时候并不复杂,卡特勒做NT时好多功能没有,都是现开发的。就是因为后来进化的版本太多,才导致c++越来越复杂难用。标准太多,反而使开发越来越不标准。现在就不该再对c++修修补补了,应该搞一个新的C3出来,只兼容原始C,收录现在c++的优点,但不用考虑与老c++兼容,等于从C再发育出一个符合现代计算机发展的新语言。

    无记录
  • 头像
    陆星河 投稿者

    入门就卡死99%的人了。

    无记录
  • 头像
    有米米羔就请我吃 投稿者

    所有语言里Python除了性能不行外,其他全是优点。

    无记录
  • 头像
    杨静雯w 投稿者

    跟 python 比起来,rust 确实啰嗦太多了

    无记录
  • 头像
    苗苗 读者

    rust不是用来给垃圾程序员写好代码的,是用来解脱大牛程序员的心智负担的。

    无记录
  • 头像
    XHXUUU 投稿者

    SUN是个几毛。。java后面是阿里

    无记录
  • 头像
    岚瑶雪歌 读者

    烂程序员管理不要内存,丢三落四,然后说C++不好。我不相信这种人能写好rust,或者java

    无记录
  • 头像
    彦祖聊期刊 投稿者

    美国政府推rust不是语言好,是它技术栈全部有美国人掌控,也是美国大公司掌控。c++是几十年了,十分强大,无法从根源上控制它。中美科技战后期一定会在开发语言上较劲。

    无记录