专栏名称: 程序猿
本微信公众号:imkuqin,为程序员提供最新最全的编程学习资料的查询。目前已经开通PHP、C/C++函数库、.NET Framework类库、J2SE API查询功能。
目录
相关文章推荐
OSC开源社区  ·  Python即将成为TIOBE ... ·  3 天前  
OSC开源社区  ·  小米重磅开源操作系统:超1000万行公开代码 ... ·  2 天前  
OSC开源社区  ·  如何编写既美观又规范的Java代码? ·  2 天前  
OSC开源社区  ·  Mozilla“改头换面” ·  3 天前  
51好读  ›  专栏  ›  程序猿

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

程序猿  · 公众号  · 程序员  · 2024-12-12 23:06

正文

本文经授权转自公众号CSDN(ID:CSDNnews)

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

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


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

1、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)。


2、掌握 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,并推动其客户采用。

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

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

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

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

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

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

那么,你对于这个话题又有什么看法呢?

本文转自公众号“CSDN”,ID:CSDNnews

---END---