文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Rust会在2024封神吗?

2024-12-02 02:53

关注

一直被人诟病学习门槛太高的Rust语言,此次公布的规划目标也极其明确,未来很有可能吸引更多的开发者学习和使用这门语言。本文将对Rust语言的特点、优劣势、使用现状等情况进行梳理,希望能够对大家有所帮助。

在最新一期的TIOBE 4月编程语言排行榜中,Rust语言位列第28名。

TIOBE 4月编程语言排行榜第1-20名

 

TIOBE 4月编程语言排行榜第21-30名

Rust 2024路线图曝光

Rust 2024路线图包含三大目标,首先就是降低学习门槛:Lang Team 希望在新版本中能够简化程序,使开发者只需处理其领域的固有复杂性,不再需要处理Rust的意外复杂性。

针对这一愿景,该团队提出了四个目标:

其次是扩展生态系统:Lang Team 表示,有很多事情是库作者不能做的,或者不容易做的。比如他们无法控制用户看到的错误信息,或者部署一个需要特殊选择才能使用的“不稳定”特性。因此,该团队希望通过帮助管理功能的生命周期或扩展库的功能,使库作者能够更好地为用户服务。

最后是Rust项目扩展:为了尽可能使Rust发挥作用,确保Rust的质量、稳定性和整体一致性,该团队希望新版本能够及时查看状态、明确的所有者和沟通、具有工具支持的高效开放的流程。

目前距离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会通过语法、编译器和clippy这些静态检查工具半帮助半强迫的让你成为更优秀的程序员,写出更好的代码。

与此同时,当你掌握了Rust,你自发性的就会想要去做一些更偏底层的工作,这些都可以帮助你更加了解操作系统、网络、性能优化等底层知识,也会间接或者直接地接触到各种算法、数据结构实现。

慢慢的,你就成为那个更好的程序员了,也是更优秀的自己。

其次,学习Rust语言,可以增加不可替代性。这里需要说明一下,语言难学,其实也有好处。一旦掌握,你将具备较强的不可替代性,而不再是一个简单的工具人角色。看看现在内卷严重的Java,工具人有多少?一个人离职,另外一个人立刻就能替补上。

事实上,这对个人和公司是一种双赢,公司收获了更优秀的程序员(不可否认的是Rust程序员普遍水平很高,毕竟都是有很好的其他语言基础、也很有追求的自驱性人才),而个人也收获了更稳定的工作环境甚至是更高的收入。

对团队的好处

客观来讲,Rust语言的代码质量其实还是相当不错的。开发者在review时并不用担心潜在的各种坑,因此可以实现快速的开发、review、merge流程。

由于Rust语言拥有强大的编译器和语言特性,其代码自然就会比其他语言更少出现Bug。同时Rust拥有非常完善的工具链、最好的包管理工具。种种因素叠加在一起,决定了Rust非常适合大型开发者团队的协作开发。

也许Rust在开发速度上不是最快的,但是从开发+维护的角度来看,这个成本绝对是各个语言中最小的之一。还有一点很重要,团队如果招到一位优秀的Rust程序员,他会带动周围的人,一起慢慢优秀(优秀的Rust程序员较好辨别,门槛低的语言就没有那么好辨别)。总之,一位优秀的程序员会给团队带来远超他薪资的潜在回报和长远收益。

相比其他语言,Rust的优势

由于篇幅有限,这里不做详细对比,只是简单介绍下Rust的优势,但也并不是说Rust就一定优于这些语言,大家可以在评论区各抒己见。

C++

与C++相比,Rust的性能相差无几,但是在安全性方面更优,特别是使用第三方库时,Rust的严格要求会让第三方库的质量明显提高。

语言本身的学习,Rust的前中期学习曲线会更陡峭,但是对于未来使用场景和生态的学习,C++会更难、更复杂。

Java

除了部分纯粹的数字计算性能,Rust的性能是全面领先于Java的,同时Rust占用内存更小,因此如果想实现同等规模的服务,Rust所需的硬件成本显然更低。

Python

性能方面Rust完胜,同时Rust对运行环境要求较低,从这两点上就基本可以做出选择了,因为Python和Rust的彼此适用面其实并不冲突。

Go

Rust语言表达能力更强,性能更高,同时线程安全方面Rust也更强,不容易写出错误的代码,包管理Rust也更好,Go虽然在1.10版本后提供了包管理,但目前还比不上Rust的。

使用现状

开发者对Rust的评价

@Graydon Hoare:

Rust 是一种采用过去的知识解决将来的问题的技术。

@Elon Musk

我是 Rust 粉丝,但我选择 C/C++。

@wenq1:

给高手增加了自律的工具,给小白降低了造坑的几率,给招聘增加了难度,给装X增加了谈资。

@beeplin:

Rust 前途无量,将来凡是有内存的机器上一点都会跑Rust。因为上世纪七十年代 Joan Baez 女神就预言过:We both know what memories can bring, it can bring diamonds and rust.

女神顺便还预言了 Rust 一定是免费的,因为:If you offer me diamonds and rust, I have already paid.

顺便问一下,另一个 Diamonds 语言现在发明出来没?期待......

@徐辰

Rust特别适合用来重写那些让你不爽的项目,给你换个姿势再不爽一次的机会。

@feixu

编程语言多的是,没必要为了一个排名10之外的语言操心,前十的语言足够支持人类信息社会的发展,再多这是重复造轮子而已。

写在最后

Rust是一门现代化的语言,融合了多种语言特性,且应用广泛。在学习Rust的过程中,你会发现自己编程能力的不足,改正掉这些不足就会不断提升自我。卓越的编程语言,可以将优秀的设计、先进的思想、成功的经验,自然而然地融入其中,使更多的使用者开阔眼界、拓展思路,受益无穷。

无GC、效率高、工程性强、强安全性等特点已经得到工程派和学院派的认可,这些令Rust拥有了自己的特色和生存空间,社区的友善,生态的快速发展,大公司的跟进,都预示着Rust将有一个美好未来!

客观来说,语言只是工具,我们不能神化它,但是可以给它一个机会。随着Rust语言版本的不断更迭,也许某一天你会发现它才是你的真爱!

来源:51CTO内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯