一直被人诟病学习门槛太高的Rust语言,此次公布的规划目标也极其明确,未来很有可能吸引更多的开发者学习和使用这门语言。本文将对Rust语言的特点、优劣势、使用现状等情况进行梳理,希望能够对大家有所帮助。
十载专注成都网站制作,成都企业网站定制,个人网站制作服务,为大家分享网站制作知识、方案,网站设计流程、步骤,成功服务上千家企业。为您提供网站建设,网站制作,网页设计及定制高端网站建设服务,专注于成都企业网站定制,高端网页制作,对成都办公空间设计等多个行业,拥有丰富的网站制作经验。
在最新一期的TIOBE 4月编程语言排行榜中,Rust语言位列第28名。
TIOBE 4月编程语言排行榜第1-20名
TIOBE 4月编程语言排行榜第21-30名
Rust 2024路线图包含三大目标,首先就是降低学习门槛:Lang Team 希望在新版本中能够简化程序,使开发者只需处理其领域的固有复杂性,不再需要处理Rust的意外复杂性。
针对这一愿景,该团队提出了四个目标:
其次是扩展生态系统:Lang Team 表示,有很多事情是库作者不能做的,或者不容易做的。比如他们无法控制用户看到的错误信息,或者部署一个需要特殊选择才能使用的“不稳定”特性。因此,该团队希望通过帮助管理功能的生命周期或扩展库的功能,使库作者能够更好地为用户服务。
最后是Rust项目扩展:为了尽可能使Rust发挥作用,确保Rust的质量、稳定性和整体一致性,该团队希望新版本能够及时查看状态、明确的所有者和沟通、具有工具支持的高效开放的流程。
目前距离Rust2024还为时尚早,Rust的路线图有可能随着时间的推移,不断进行优化升级。
目前来看,Rust的用户群体不断壮大,有数百家公司使用Rust进行开发,比如 Dropbox、 Yelp 和 Cloudflare。作为一门发展趋势良好的编程语言,Rust的特点还是非常突出的。
Rust的主要特征是运行速度快、内存利用率高,它没有运行时或垃圾收集器,它适合用在对性能要求高的关键的服务,它可以在嵌入式设备上运行,并且很容易与其他语言集成。在未来,Rust语言的速度快、占用内存少等特点,将使我们能够更省力的编写代码,这类语言将变得更加重要。
可靠性:Rust 丰富的类型系统和所有权模型保证了内存和线程的安全,并能够在编译时消除许多错误。
生产力:Rust 有很好的文档,提供了一个非常友好的编译器,错误信息提示非常友好。反观C和C++代码的编译器提示消息则是出了名的难以理解。如果你想学习系统编程,使用“rustc”编译器做可以让你不用担心内存安全而能够专注其他的事情。
正如一位著名的程序员曾经说过:Pascal就像穿着紧身衣,C就像在玩刀,而C++就像在玩弄燃烧的电锯。在这个比喻中,Rust就像是穿着保护装备悬挂在绳子上做跑酷运动。看起来有点可笑,但是可以用它做各种很酷的动作而不伤害自己。
关于Rust的效率问题,主要从学习、运行、开发三个维度进行考量。
众所周知,Rust的学习曲线陡峭,随着学习的不断深入,你会逐渐发现 Rust 之难,不在于很容易学到的语言特性,而在于:
得益于各种零抽象开销、深入底层的优化潜力、优质的标准库和三方库实现,Rust具备非常优秀的性能,与C语言、C++是同一个级别。
Rust还有一个极大的好处:只要按照正确的方式使用Rust,无需性能优化,就能实现非常优秀的表现。现在有不少用Rust重写的工具、平台都超过了原来用C、C++实现的版本,可以说是将老前辈拍死在沙滩上,俨然成为一种潮流。
Rust的开发效率可以用先抑后扬来形容,在刚开始上手写项目时,你的开发速度将显著慢于Go、Java等语言,但等你开始熟悉标准库常用的方法,开发效率将大幅提升,甚至形成“肌肉记忆”后,开发效率将不会慢于这些语言,而且原生就能写出高质量、安全、高效的代码。
首先,学习Rust语言,可以使你成为更好的程序员。要学好Rust,你需要深入理解内存、堆栈、引用、变量作用域这些其它高级语言往往不会深入接触的内容,同时Rust会通过语法、编译器和clippy这些静态检查工具半帮助半强迫的让你成为更优秀的程序员,写出更好的代码。
与此同时,当你掌握了Rust,你自发性的就会想要去做一些更偏底层的工作,这些都可以帮助你更加了解操作系统、网络、性能优化等底层知识,也会间接或者直接地接触到各种算法、数据结构实现。
慢慢的,你就成为那个更好的程序员了,也是更优秀的自己。
其次,学习Rust语言,可以增加不可替代性。这里需要说明一下,语言难学,其实也有好处。一旦掌握,你将具备较强的不可替代性,而不再是一个简单的工具人角色。看看现在内卷严重的Java,工具人有多少?一个人离职,另外一个人立刻就能替补上。
事实上,这对个人和公司是一种双赢,公司收获了更优秀的程序员(不可否认的是Rust程序员普遍水平很高,毕竟都是有很好的其他语言基础、也很有追求的自驱性人才),而个人也收获了更稳定的工作环境甚至是更高的收入。
客观来讲,Rust语言的代码质量其实还是相当不错的。开发者在review时并不用担心潜在的各种坑,因此可以实现快速的开发、review、merge流程。
由于Rust语言拥有强大的编译器和语言特性,其代码自然就会比其他语言更少出现Bug。同时Rust拥有非常完善的工具链、最好的包管理工具。种种因素叠加在一起,决定了Rust非常适合大型开发者团队的协作开发。
也许Rust在开发速度上不是最快的,但是从开发+维护的角度来看,这个成本绝对是各个语言中最小的之一。还有一点很重要,团队如果招到一位优秀的Rust程序员,他会带动周围的人,一起慢慢优秀(优秀的Rust程序员较好辨别,门槛低的语言就没有那么好辨别)。总之,一位优秀的程序员会给团队带来远超他薪资的潜在回报和长远收益。
由于篇幅有限,这里不做详细对比,只是简单介绍下Rust的优势,但也并不是说Rust就一定优于这些语言,大家可以在评论区各抒己见。
与C++相比,Rust的性能相差无几,但是在安全性方面更优,特别是使用第三方库时,Rust的严格要求会让第三方库的质量明显提高。
语言本身的学习,Rust的前中期学习曲线会更陡峭,但是对于未来使用场景和生态的学习,C++会更难、更复杂。
除了部分纯粹的数字计算性能,Rust的性能是全面领先于Java的,同时Rust占用内存更小,因此如果想实现同等规模的服务,Rust所需的硬件成本显然更低。
性能方面Rust完胜,同时Rust对运行环境要求较低,从这两点上就基本可以做出选择了,因为Python和Rust的彼此适用面其实并不冲突。
Rust语言表达能力更强,性能更高,同时线程安全方面Rust也更强,不容易写出错误的代码,包管理Rust也更好,Go虽然在1.10版本后提供了包管理,但目前还比不上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语言版本的不断更迭,也许某一天你会发现它才是你的真爱!
分享名称:Rust会在2024封神吗?
文章链接:http://www.shufengxianlan.com/qtweb/news38/187488.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联