Rust在Stack Overflow 2021年开发者调查中再次被评为 "最受喜爱的 "编程语言。完成了它在该特定排行榜上的第六个年头。
然而,作为C++的替代品而开发的编程语言在 "最常用的编程语言 "的总榜单上仍然只排在第16位,那么为什么Rust如此受到普遍的喜爱,为什么这种喜爱没有转化为在主要榜单上更突出的位置?
加入我们吧,我们来看看Rust的历史,它的演变,并回答人们经常问的(和夸张的)问题 "Rust是完美的编程语言吗?".
Rust的历史
Rust是由Mozilla员工Graydon Hoare开发的,他描述说他自称是 "中年......白人,喜欢打瞌睡、读历史书、和朋友出去玩、反复看十几部80年代的烂电影"。
到目前为止,还有什么不喜欢的呢?
Hoare于2006年开始研究Rust,该项目从2009年起由Mozilla赞助,直到2014年1月首次稳定发布(Rust 1.0),当时的技术杂志 Dr Dobb’s对Rust的评价是:"人们普遍认为它是一种非常优雅的编程语言"。
其他人也同意......并且该语言继续流行,直到去年(2021年),当 Rust Foundation基金会成立的目的是 "支持语言的维护和发展,同时培养Rust项目团队和用户社区",巩固其在 "优雅语言 "万神殿的地位的是五个创始企业成员......Mozilla、微软、谷歌、亚马逊网络服务和华为。
因此,Rust不仅是最受喜爱的(根据Stack Overflow的数据),它还在聚集世界上一些最大的技术公司的支持。但是,Rust有什么特别之处呢?
Rust有什么特别之处?
Rust最初是为了解决C/C++中普遍存在的问题而开发的。
它的创建(和发展)主要是为了解决性能和安全问题。
它的语法与C++相似(在最基本的意义上--例如,它不使用空格缩进),然而作为一种语言,它有很大的不同,因为它根本不是面向对象的。
它的主要好处被认为是在解决围绕内存错误的问题(在安全和管理方面)和并发编程。
在Rust中,有两种编写代码的模式。安全Rust和不安全Rust。安全Rust对程序员施加了额外的限制,以确保代码的正常运行,而不安全Rust则给了程序员更多的自主权和灵活性。
在安全的Rust中,编译器可以做更多的工作来确保你所写的代码以它所期望的方式处理内存。然而,如果你写的代码需要与C或C++互操作,Rust提供了一个不安全的逃生舱口。
编写不安全的代码意味着要由开发者来验证它的正确性,因为编译器不能独立验证它。
Rust的双模式模型是其相对于C++的最大优势之一,因为当用C++编程时,你永远不知道你写了不安全的代码,直到你的软件崩溃或被发现有安全漏洞。
Rust区别于其他编程语言的关键因素之一是,它跟踪所有的状态所有权,如果有不正确的地方,会在编译时告诉你。当你听到开发者抱怨 "检查器 "的时候,这可能就是他们所指的东西。
许多开发者对Rust的评价是 "既快又灵活",但究竟是什么让它如此?
- 它是静态类型的,并被编译为
- 它提供特性的静态调度
- 它提供了零成本的抽象性
- 它跟踪变量的所有权
- 它提供代数数据类型
- 它存储的数据没有任何开销
这一切听起来都很好,但采用是任何编程语言的障碍,所以谁在使用这种快速和灵活的语言?
现在和将来谁会使用Rust?
在近6万名专业开发人员中,Stack Overflow的调查表明,只有6.4%的受访者在积极使用该语言,17%使用C语言,20%使用C++语言。
那么,为什么Rust还没有超越C++,将来会不会?
虽然专业的Rust开发者经常提到该语言 "比C++好",因为它有明确的语义和防止不需要的行为,但许多人也表示,如果他们正在寻找一种支持良好和框架丰富的语言,他们很可能仍然选择C++。
因此,Rust作为C++王位的伪装者是否真的会在某个时候推翻它,现在还没有定论。
尽管如此,有一系列证据表明,自从Rust支持进入Linux内核以来(因此可以用Rust编写驱动程序,以帮助捕捉全新的错误类别),许多大型科技企业正在使用这种编程语言。这里仅列举一些积极招聘Rust开发人员的企业。
- 微软
- 滴答网
- 亚马逊
虽然Rust仍被认为是一种相对年轻的语言,但它也已成为新兴加密货币类项目、方案和企业的大热门,建立在第一层解决方案之上,
因此,尽管编程语言的发展仍处于起步阶段,但Rust似乎已经有了风向标的作用。
Rust是完美的编程语言吗?
嗯。有很多人都这么认为。
杰克-多尔西就是其中之一。
当他被一个开发者质疑说:"完美的是什么?".他反驳说:"系统/实时",这句话简明扼要,一针见血......但对于这样一个夸张的说法,并不是一个特别详细的回应。
如果我们暂时回到Stack Overflow的调查,当83,000名专业开发者被问及他们对哪种语言的开发感兴趣时......Rust排在第六位。因此,像上面那条来自一个在全球拥有610万粉丝的人的推特的曝光,很可能会引起对学习Rust感兴趣的开发人员的涌动。
更多的开发者意味着有更多的采用理由吗?有可能。
当然,没有完美的编程语言,但通过评估Rust能够提供的好处,该语言的普及和使用只会越来越多,这并不奇怪。
Rust已经完成了它的目标,即解决了一些普遍存在的问题,这些问题在开发者社区中引起了许多人的头痛,同时确保其性能水平与其他更知名的编程语言一样好(甚至更好!)。
因此,也许当我们在十年后回顾这篇文章时,我们会认为我们是先知先觉的,那时Rust是地球上使用最广泛的编程语言之一......
或者,也许编程会有一个类似于数学从微积分中得到的范式转变,即基础模型(即SSI--序列、选择和迭代)的根本变化,以支持不同的结构,进而支持不同的抽象模型。
在那之前,所有新的编程语言都将是稍微 "优雅 "的SSI形式,在句法上洒上大量的糖。