其实好久之前就想写一篇文章来聊聊 Rust 的现状,正好借此机会我想给大家分享一些我的个人看法。另外,我也注意到有很多朋友,包括群里的一些伙伴都在问我:现在还要不要学习 Rust?本篇文章我也会给出一些我的建议。
1.简单了解 Rust
谈起 Rust 语言,虽然相对较年轻(2010年发布),但因其出色的性能、安全性和并发特性,已经在系统编程领域(如操作系统、游戏引擎、文件系统等)中建立起了坚实的地位。Rust 最大的优点是它对内存安全的保证,从而减少了许多传统编程语言中常见的安全漏洞和错误。虽然 Rust 的学习曲线比较陡峭,但它为高性能和高安全性的应用开发提供了强大的工具。
2.Rust 编程语言的现状
近年来,可以看到不少有关 Rust 的新闻,相比来讲最重大的新闻就是 Rust 进入 Linux 内核。近几年来,Rust 编程语言展现出了显著的增长和发展势头。从社区活跃度到企业采用率,Rust 都显示出了其强大的潜力和吸引力。我举几个企业应用的例子吧。微软已经用 36,000 行 Rust 语言代码改写了 Windows 核心组件。将 GDI(图形设备接口)中的核心 Windows 组件(例如区域数据类型)从 C++ 转换为 Rust。
来自 CloudFlare 团队的开源项目 Pingora,它的诞生是为了弥补 Nginx 存在的缺陷。Linux 6.1 发布原生支持 Rust,拉开了 Rust 进入 Linux 内核的序幕。从此开发者可以使用 Rust 开始编写 Linux 内核代码。还有很多项目包括 Firefox、Dropbox,Yelp,区块链,Web 等领域都在使用 Rust。虽然 Rust 语言的应用范围还是比较广泛,但是就目前而言缺少杀手级应用(Killer App)。
来自去年年底 Jetbrain 对从事 Rust 开发者的调查显示,超过 1/3 的开发者从事 Web 开发。当然最高的还是在 CLI 和 系统编程方面(如上图)。
3.我到底要不要学习 Rust?
可能你经常在一些平台上看到将 Rust 与其他编程语言进行对比的文章,其中以 Go VS Rust 为标题的文章应该是最常见的,这种语言的对比分析往往会热度比较高,很容易引起网友激烈的讨论。其实在我个人看来,每种编程语言的产生都是为了解决某种特定的问题,只要这种编程语言有效地解决了一个问题,那它的存在就是有意义的。举个例子来讲吧,Go 语言的诞生是为了应对大规模网络编程中的并发性和可靠性问题。而 Rust 语言的出现,则主要是为了解决内存安全的问题。因此,对编程语言的评价并无绝对的好坏之分,而是根据其解决问题的能力和适用场景来进行衡量的。
但从就业的角度来看,对比编程语言的优势与不足,确实可以为那些在职业道路选择上犹豫不决的小伙伴们提供一些有价值的参考。现实地讲,如果你目前处于待业状态,首先应该优先考虑确保工作的稳定。如果你认为学习 Rust 相比其他语言更具挑战性,那就需要果断的暂时放弃,直到找到稳定的职位再说。如果你目前已经处于职场中并且希望进一步提高自己的技术,尤其是想要深入底层技术领域,那么Rust 无疑是一个值得学习的选择。它不仅能帮助你成为一个更好的开发者,理解深层次的概念如内存、堆栈、引用、变量作用域等,还能为你打开一个全新的编程世界。对于那些渴望挑战自我,不满足于只停留在应用层开发的小伙伴来说,Rust 提供了一条通往更深入技术探索的路径。
说道这里,想必你的心中应该有了答案。
4.教程结束语
至此,我们的 Rust 2021 课程系列也画上了圆满的句号。自 2021 年 10 月份起,我们一起踏上了这段学习之旅,从基础课程出发,经过中级阶段,直至高阶知识的探索,总共 78 课,历时将近三年。在此,我衷心感谢每一位陪伴我们走过这段旅程的读者和支持者。我的能力终究有限,在这系列课程中,不可避免地存在一些疏漏和不足之处。幸运的是,有诸多细心的读者给予了宝贵的指正和建议,对此我深表感谢。
随着社区的共同努力,Rust 无疑将展现出更多的潜力。从网络编程到嵌入式系统,从操作系统到游戏开发,我们都可以预见 Rust 在安全性、性能和并发处理方面为这些领域带来的革新。
在今年下半年,Rust 将会推出 2024 版本,新的 Rust 版本预计将为 Rust 带来一系列创新和升级,很可能会开启 Rust 发展历程中的新篇章,让我们共同期待 Rust 的未来发展。