当前位置: 首页 > 科技观察

Rust会在2024年成神吗?

时间:2023-03-20 14:35:05 科技观察

近日,Rust语言设计团队LangTeam公布了2024年Rust语言更新路线图,这也是继Rust2015、Rust2018、Rust2021之后的第四版编程语言路线图。该路线图主要围绕三大计划:降低学习门槛、扩大生态系统和扩大Rust项目。一直被诟病学习门槛过高的Rust语言,在此次公布的规划目标中也非常明确。未来很可能会吸引更多的开发者学习和使用这门语言。本文将对Rust语言的特点、优缺点、使用现状进行梳理,希望对大家有所帮助。在最新的TIOBE4月编程语言排行榜中,Rust语言排名第28位。TIOBE4月编程语言排行榜第1-20名TIOBE4月编程语言排行榜第21-30名Rust2024路线图曝光Rust2024路线图包含三大目标。它简化了程序,让开发者只需要处理他们领域内在的复杂性,而不再需要处理Rust意想不到的复杂性。为了这个愿景,团队提出了四个目标:更精确的分析,更少的繁琐:通过改进借用检查器、类型推断等,编译器可以更好地识别代码是否正确。识别并消除“样板”模式,例如在各处复制粘贴相同的集合。更轻松直接地表达代码的意图:在必要时扩展语言以更直接地表达您希望代码执行的操作,例如通过let-else等语法糖形式,或通过扩展类型系统(例如泛型)关联类型)。改进的异步支持:扩展当前“MVP”之外的异步等待支持,例如asyncfns、asyncdrop和traits中的其他功能。使dynTrait更有用:扩大dyns可用的特征集,使dyns的使用更接近于使用泛型。二是扩大生态:LangTeam说,有很多事情是图书馆作者做不到,或者不容易做的。例如,他们无法控制用户看到的错误消息,或部署需要特殊选项才能使用的“不稳定”功能。因此,该团队希望通过帮助管理功能的生命周期或扩展库的功能,使库作者能够更好地为用户服务。最后,Rust项目扩容:为了尽可能让Rust发挥作用,保证Rust的质量、稳定性和整体一致性,团队希望新版本能及时看到状态,明确owner和沟通,高效并打开工具支持流程。Rust2024还为时过早,Rust的路线图可能会随着时间的推移不断优化和升级。目前,Rust的用户群持续增长,已有数百家公司使用Rust进行开发,例如Dropbox、Yelp和Cloudflare。作为一门发展趋势良好的编程语言,Rust的特点还是非常突出的。特点:C在玩刀,Rust在玩跑酷。Rust的主要特点是运行速度快,内存利用率高。它没有运行时或垃圾收集器。适用于对性能要求较高的关键业务。它可以在嵌入式设备上运行,并可以轻松地与其他语言集成。未来,Rust语言的速度快和内存占用少,将使我们编写代码更加省力,这样的语言会变得更加重要。可靠性:Rust丰富的类型系统和所有权模型保证了内存和线程安全以及在编译时消除许多错误的能力。生产力:Rust有很好的文档,并提供了一个非常友好的编译器和非常友好的错误消息。相比之下,C和C++代码的编译器提示是出了名的难以理解。如果你想学习系统编程,使用“rustc”编译器可以让你专注于其他事情而不必担心内存安全。正如一位著名的程序员曾经说过:Pascal就像是穿着紧身衣,C就像是在玩刀,而C++就像是在玩一把燃烧的电锯。在这个比喻中,Rust就像是穿着防护装备挂在绳子上进行跑酷。它看起来有点可笑,但你可以用它做各种很酷的事情而不会伤害自己。效率:先抑后增,再打击。Rust的效率主要从学习、运行、开发三个维度来考虑。1.学习效率众所周知,Rust的学习曲线很陡。随着你不断的学习,你会逐渐发现Rust的难点不在于容易学的语言特性,而在于:实践中遇到问题如何使用(生命周期、借用错误、自引用、等)如何快速正确解决大量的标准库方法记忆和熟练使用,这是保证开发效率的关键精神负担较重,尤其是初中阶段2.受益于运行效率由于各种零抽象开销、根深蒂固的优化潜力、高质量的标准库和第三方库实现,Rust具有非常好的性能,与C语言和C++处于同一水平。Rust还有一个很大的优势:只要正确使用Rust,无需性能优化也能获得非常好的性能。现在有许多用Rust重写的工具和平台,超过了用C和C++实现的原始版本。可以说,上海滩枪杀老前辈已经成为一种潮流。3、开发效率Rust的开发效率可谓是先抑后扬。刚开始手写项目时,你的开发速度会明显慢于Go、Java等语言,但是当你熟悉了标准库中常用的方法后,开发效率会大大提高,甚至以后形成“肌肉记忆”,开发效率不会比这些语言慢,原生就能写出优质、安全、高效的代码。收益:个人和团队“强化”个人收益首先,学习Rust语言可以让你成为更好的程序员。要想学好Rust,需要对内存、栈、引用、变量作用域有深入的理解,而这些往往是其他高级语言没有深入接触到的。成为更好的程序员并编写更好的代码。同时,当你掌握了Rust后,你会不自觉地想做一些更底层的工作,这可以帮助你更好地了解操作系统、网络、性能优化等底层知识,也可以间接或直接得到接触各种算法和数据结构实现。慢慢地,您将成为更好的程序员和更好的自己。第二,学习Rust语言可以增加不可替代性。这里需要说明一下,语言难学,其实很好。一旦掌握,你将具有很强的不可替代性,不再是单纯的工具人。看看现在严重涉足的Java,有多少工具人?当一个人离开时,另一个人可以立即代替他。其实这对个人和公司来说都是双赢的,公司也收获了更好的程序员(不可否认,Rust程序员普遍水平都很高,毕竟其他语言的基础都不错并且非常追求自我驱动的人才),个人获得了更稳定的工作环境,甚至更高的收入。对团队的好处客观来说,Rust语言的代码质量其实还是相当不错的。开发者在审查时不必担心潜在的陷阱,因此他们可以实现快速的开发、审查和合并过程。因为Rust语言拥有强大的编译器和语言特性,它的代码自然会比其他语言的bug更少。同时,Rust拥有非常完善的工具链和最好的包管理工具。各种因素的叠加决定了Rust非常适合大型开发团队的协同开发。也许Rust在开发速度上不是最快的,但是从开发+维护的角度来说,这个成本绝对是所有语言中最小的。还有一点很重要,如果团队招了一个优秀的Rust程序员,他会带动身边的人一起慢慢变得更好(优秀的Rust程序员很容易识别,但是门槛低的语言就没那么容易识别了)。总之,一个优秀的程序员会给团队带来远超其薪水的潜在回报和长期收益。与其他语言相比,Rust的优势由于篇幅所限,这里不做详细比较,只是简单介绍一下Rust的优势,但并不代表Rust就一定优于这些语言,并且大家可以在评论区发表你们的看法。与C++相比,Rust的性能相差无几,但在安全性方面更胜一筹,尤其是在使用第三方库时。Rust的严格要求将显着提高第三方库的质量。对于语言本身的学习,Rust的前中期学习曲线会比较陡峭,但对于未来使用场景和生态的学习,C++会更加困难和复杂。除了Java的一些纯数字计算性能外,Rust的性能完全领先于Java,而且Rust占用的内存更少。因此,如果要实现同样规模的服务,Rust所需的硬件成本显然要低一些。在Python性能方面,Rust胜出。同时,Rust对运行环境的要求较低。从这两点基本可以做出选择,因为Python和Rust在适用方面并不冲突。GoRust语言具有更强的表达能力和更高的性能。同时,Rust在线程安全方面也更强。写错代码并不容易。Rust在包管理方面也更好。虽然Go在1.10版本之后提供了包管理,但仍然比不上NotonRust。AWS从2017年开始用Rust实现了无服务器计算平台:AWSLambda和AWSFargate,并用Rust重写了BottlerocketOS和AWSNitro系统,这些都是ElasticComputingCloud(EC2)的重要服务Cloudflare是Rust、DNS、serverless的重度用户计算、网络包监控等基础设施都离不开RustDropbox的底层存储服务被Rust完全重写,达到数万PB的规模Google除了在Android系统的部分模块中使用Rust之外,Rust也大量使用用于其最新的操作系统fuchsia。Facebook使用Rust来增强其网络、移动和API服务的性能。同时,它还为Hack编程语言编写了一个虚拟机。微软使用Rust来提供Azure平台。一些组件,包括IoT的核心服务Github和npmjs.com,使用Rust每天提供多达13亿个npm包下载。Rust已成为全球区块链平台的首选开发语言。数据库开发人员对Rust的看法@GraydonHoare:Rust是一种使用过去的知识来解决未来问题的技术。@ElonMusk我是Rust的粉丝,但我选择C/C++。@wenq1:增加了高手自律工具,减少了小白坑的机会,增加了招募难度,增加了装X的话题。@beeplin:Rust大有前途。将来,任何有内存的机器都会运行Rust。因为女神琼贝兹在1970年代预言:我们都知道回忆能带来什么,它能带来钻石和铁锈。女神还预言Rust一定是免费的,因为:如果你给我钻石和Rust,我已经付了钱。顺便问一下,现在是否发明了另一种钻石语言?期待...@徐陈Rust特别适合重写那些让你不开心的项目,给你一个换个姿势重新不开心的机会。@feixu编程语言那么多,不用担心前10名以外的语言。前10名的语言足以支撑人类信息社会的发展。再多也不过是重新发明轮子。写在最后Rust是一门融合了多种语言特性并被广泛使用的现代语言。在学习Rust的过程中,你会发现自己在编程能力上的不足,改正这些不足会不断提升自己。一门优秀的编程语言,自然能将优秀的设计、先进的思维、成功的经验融入其中,让更多的用户开阔眼界,拓展思路,受益无穷。无GC、效率高、工程性强、安全性强等特点得到了工程类院校和学术类院校的认可。这些使得Rust有自己的特点和生存空间,社区的友好性,生态的快速发展,以及大公司的跟进。进步,都预示着Rust的前途一片光明!客观地说,语言只是一种工具,我们不能神化它,但我们可以给它一个机会。随着Rust语言版本的不断变化,也许有一天你会发现它才是你的真爱!