近日,Rust语言设计团队Lang Team公布了Rust语言2024年的更新路线图,这也是继Rust2015、Rust2018、Rust2021之后的第四版编程语言路线图。该路线图重点提及三大规划:降低学习门槛、扩展生态系统、Rust项目扩展。
一直被人诟病学习门槛太高的Rust语言,此次公布的规划目标也极其明确,未来很有可能吸引更多的开发者学习和使用这门语言。本文将对Rust语言的特点、优劣势、使用现状等情况进行梳理,希望能够对大家有所帮助。
在最新一期的TIOBE 4月编程语言排行榜中,Rust语言位列第28名。
TIOBE 4月编程语言排行榜第1-20名
TIOBE 4月编程语言排行榜第21-30名
Rust 2024路线图曝光
Rust 2024路线图包含三大目标,首先就是降低学习门槛:Lang Team 希望在新版本中能够简化程序,使开发者只需处理其领域的固有复杂性,不再需要处理Rust的意外复杂性。
针对这一愿景,该团队提出了四个目标:
-
更精确的分析,更少的繁琐:通过改进借用检查器、类型推理等,使编译器能够更好地识别代码是否正确。识别并消除 "boilerplate" 模式,例如到处复制粘贴同一组 where。
-
更容易、更直接地表达代码的意图:在必要时扩展语言,以便更直接地表达您希望代码执行的操作,例如通过语法糖的形式(如 let-else),或者扩展类型系统(如泛型关联类型)。
-
改进异步支持:将 async-await 支持扩展到当前的 "MVP" 之外,如traits 中的 async fns、async drop 等特性。
-
让 dyn Trait 更有用:拓宽可用于 dyn 的特性集,让使用 dyn 更接近于使用泛型。
特征:C在玩刀,Rust在玩跑酷
效率:先抑后扬、后发制人
1、学习效率
-
实践中如何融会贯通的运用 -
遇到问题(生命周期、借用错误、自引用等)时如何迅速正确地解决 -
大量的标准库方法记忆及熟练使用,这是保证开发效率的关键 -
心智负担较重,特别是初中级阶段时
益处:个人和团队“变强”利器
1、对个人的好处
首先,学习Rust语言,可以使你成为更好的程序员。要学好Rust,你需要深入理解内存、堆栈、引用、变量作用域这些其它高级语言往往不会深入接触的内容,同时Rust会通过语法、编译器和clippy这些静态检查工具半帮助半强迫的让你成为更优秀的程序员,写出更好的代码。
与此同时,当你掌握了Rust,你自发性的就会想要去做一些更偏底层的工作,这些都可以帮助你更加了解操作系统、网络、性能优化等底层知识,也会间接或者直接地接触到各种算法、数据结构实现。
慢慢的,你就成为那个更好的程序员了,也是更优秀的自己。
其次,学习Rust语言,可以增加不可替代性。这里需要说明一下,语言难学,其实也有好处。一旦掌握,你将具备较强的不可替代性,而不再是一个简单的工具人角色。看看现在内卷严重的Java,工具人有多少?一个人离职,另外一个人立刻就能替补上。
事实上,这对个人和公司是一种双赢,公司收获了更优秀的程序员(不可否认的是Rust程序员普遍水平很高,毕竟都是有很好的其他语言基础、也很有追求的自驱性人才),而个人也收获了更稳定的工作环境甚至是更高的收入。
2、对团队的好处
客观来讲,Rust语言的代码质量其实还是相当不错的。开发者在review时并不用担心潜在的各种坑,因此可以实现快速的开发、review、merge流程。
由于Rust语言拥有强大的编译器和语言特性,其代码自然就会比其他语言更少出现Bug。同时Rust拥有非常完善的工具链、最好的包管理工具。种种因素叠加在一起,决定了Rust非常适合大型开发者团队的协作开发。
也许Rust在开发速度上不是最快的,但是从开发+维护的角度来看,这个成本绝对是各个语言中最小的之一。还有一点很重要,团队如果招到一位优秀的Rust程序员,他会带动周围的人,一起慢慢优秀(优秀的Rust程序员较好辨别,门槛低的语言就没有那么好辨别)。总之,一位优秀的程序员会给团队带来远超他薪资的潜在回报和长远收益。
相比其他语言,Rust的优势
使用现状
-
AWS从2017年开始就用Rust实现了无服务器计算平台:AWS Lambda 和 AWS Fargate, 并且用Rust重写了Bottlerocket OS和AWS Nitro系统,这两个是弹性计算云(EC2)的重要服务
-
Cloudflare是Rust的重度用户,DNS、无服务计算、网络包监控等基础设施都与Rust密不可分
-
Dropbox的底层存储服务完全由Rust重写,达到了数万PB的规模
-
Google除了在安卓系统的部分模块中使用Rust外,还在它最新的操作系统fuchsia中重度使用Rust
-
acebook使用Rust来增强自己的网页端、移动端和API服务的性能,同时还写了Hack编程语言的虚拟机
-
Microsoft使用Rust为Azure平台提供一些组件,其中包括IoT的核心服务
-
Github和npmjs.com,使用Rust提供高达每天13亿次的npm包下载
-
Rust目前已经成为全世界区块链平台的首选开发语言
-
Tidb,国内最有名的开源分布式数据库
开发者对Rust的评价
写在最后
文章评论