• 我的订阅
  • 财经

从电梯故障到编程新宠,Rust为何连续七年称霸「最受推崇语言」

类别:财经 发布时间:2024-08-16 16:08:00 来源:新智元
从电梯故障到编程新宠,Rust为何连续七年称霸「最受推崇语言」

新智元报道

编辑:乔杨

【新智元导读】几十年来,程序员一直用C和C++编写关键系统,现在Rust正逐渐成为这类任务的首选。

在StackOverflow每年发布的开发者调查中,最流行的编程语言不是Java就是SQL。

但除了流行程度,StackOverflow还设计了另一种指标:「期待和推崇程度」(Admired and Desired)。

从电梯故障到编程新宠,Rust为何连续七年称霸「最受推崇语言」

在这个指标上,Rust几乎是无可质疑的王者,已经连续7年高票当选「最受推崇的语言」。

蓝色表示Desired,红色表示Admired

根据MIT科技评论的报道,有280万程序员使用Rust编写代码,微软、亚马逊等科技巨头都将其视为未来的关键。聊天平台Discord使用Rust来加速系统,Cloudflare使用它处理超过20%的互联网流量。

甚至美国政府也热衷于推广Rust编写的软件,以使其流程更加安全。

然而,这个诞生于2006年的语言,最开始只是个人开发者的业余项目;18年后的今天,它已经成为最热门的新语言之一。

电梯故障诞生的语言

许多软件项目的诞生,都可以追溯到某个被生活折磨到焦头烂额的程序员。Rust的故事也与此类似。

2006年,29岁的Graydon Hoare是Mozilla的一名程序员。有一天下班回家,突然发现电梯因为软件崩溃没法运行了。

这已经不是第一次了,但Hoare家恰好住在21楼。

他一边爬楼梯一边暗自恼火,「这太可笑了,我们这些搞计算机的人,甚至都没法造出一个不崩溃的电梯!」

作为程序员,Hoare很清楚问题所在——电梯等设备内部的软件通常都是用C或C++编写的,好处在于运行速度快,但也很容易意外引入内存错误,造成程序崩溃。

微软估计,其代码中70%的bug都是由于这些语言的内存错误引起的。

或许是被愤怒的情绪激起了创造力,爬完楼梯回到家中后,Hoare打开电脑,开始设计一种新的编程语言。

他希望这种语言能够编写出简洁、短小但运行速度快的代码,而且能从根本上杜绝内存错误。

Rust这个名字也与此有关,根据Hoare的描述,这是一种非常顽强的真菌,「为了生存而被过度设计」。

从电梯故障到编程新宠,Rust为何连续七年称霸「最受推崇语言」

即使已经在Mozilla打工10年,Hoare依然很有「极客精神」,在这个业余项目上孜孜不倦地投入了好几年的精力。但当他向同事们展示时,却得到了褒贬不一的反应。

有些回应比较热情,但得到的白眼更多:「这永远不会起作用的。」

但幸运的是,Mozilla高管们很感兴趣,他们意识到,Rust可以帮助构建更好的浏览器引擎。在浏览器这种复杂软件中,有很多机会出现危险的内存错误。

Rust如何站稳脚跟

如今,要设计出一种新的编程语言在技术上并不困难,很多程序员都会创建类似的小项目作为业余消遣。

但要想让一种语言真正得到社区认可、投入广泛使用,迈入知名编程语言的行列,与Python、Java等并列,这个概率堪比小行星撞地球。

Rust到今天的发展历程,不仅源于其本身的技术特点,更离不开Mozilla和开源社区在背后的支持。

2009年,Patrick Walton放弃了编程语言方向的博士学习加入Mozilla,他依旧记得Java的发明者Brendan Eich拉他参加Mozilla的一次会议:

「你为什么不来这个房间看看呢?我们会讨论Rust的一些设计决策。」

Walton认为Rust的理念十分不错,于是和Hoare开始共同进行开发。

这个不断壮大的团队后来也有资深工程师Niko Matsakis和Felix Klock等人的加入,两人都有研究内存和编程语言的学术经历,本科都毕业于MIT,并分别在ETH和东北大学获得了博士学位。

Mozilla的高管意识到了Rust的价值,因此他们派了几名资深工程师参与该项目,包括Patrick Walton(1) 、Niko Matsakis(2)和Felix Klock(3),以及Manish Goregaokar(4),他目前负责 Rust的开发者工具团队

2009年,Mozilla决定正式赞助 Rust。虽然定位为开源语言,但Mozilla愿意雇用全职工程师来引导它的发展方向。

Rust小组接管了公司的一间会议室,Mozilla Research的联合创始人Dave Herman将这个房间戏称为「书呆子洞穴」,并在门外贴了一个标志。

Hoare估计,在接下来的10年里,Mozilla雇佣了十几名工程师全职从事Rust的开发工作。

根据Walton的回忆,在Rust的开发历程中,「每个人都感觉自己正在做一件非常伟大的事情」。

这种兴奋也蔓延到了Mozilla大楼之外。到2010年代初,Rust吸引了来自世界各地的志愿者。其中有些在科技巨头工作,还有一个主要贡献者是来自德国的高中生。

2010年在加拿大不列颠哥伦比亚省举行的Mozilla会议上,Eich向与会者表示,将会有一场关于实验性编程语言的演讲,「除非你是真正的编程语言迷,否则不要参加」。但最后,整个房间座无虚席。

Steve Klabnik从2012年开始加入Rust的开发工作,并在此后的10年时间中始终负责文档的编写。他表示,移除垃圾收集机制(garbage collection, GC)让Rust成为一种「更精简、更出色的语言」。

「不会有任何人将你称为为『菜鸟』,任何问题都不会被当成愚蠢的问题。」当时在Mozilla从事Rust工作的微软首席工程师Nell Shamrell-Harrington这样形容。

Shamrell-Harrington认为,这种社区氛围的部分原因是Hoare很早就发布的禁止骚扰的「行为准则」,要求每个Rust的贡献者都应该遵守。

Rust社区接受了这套准则,有长期成员表示,相比其他语言,Rust吸引了更高比例的少数群体。

不仅仅是程序员,连Rust的编译器都更加友好。在报错信息中,它会对bug进行描述,并礼貌地给出修复建议。

「当我犯错误时,C和C++的编译器会让我感觉自己是个糟糕的人,但Rust编译器更像是在指导你编写超级安全的代码。」

虽然Rust团队都是由真正的大佬组成,但开发过程依旧漫长而艰辛。

从2009年Mozilla将Rust纳入麾下开始,直到2015年,团队才最终发布了Rust的1.0「稳定」版本,它足够可靠,可供公司真正投入商用。

六年时间中,程序员们始终渴望发布demo,尽管编译器总是崩溃。

根据Walton的回忆,他经常在电脑面前弯腰坐好几个小时,Klabnik在发布前的2周时间内赶出了约45页的文档。

2015年5月15日,Rust终于问世,Mozilla的投资也很快得到了回报。

2016年,公司的一个开发小组发布了Servo,是一种用Rust构建的全新浏览器引擎;第二年,另一个小组用Rust重写了Firefox渲染CSS的部分,使使浏览器的性能得到了显著提升。

此外,浏览器中的处理MP4多媒体文件的代码曾被认为不安全、有恶意代码风险,也用Rust进行了重写。

除了Mozilla,也有越来越多的公司开始使用Rust,包括三星、Facebook、Dropbox等。很快,Rust就被用于编写重要的软件的核心。

2020年,Dropbox推出了新版本的「同步引擎」,负责在用户计算机和Dropbox云存储之间同步文件。

这个系统最初用Python编写,但随着规模扩展到数十亿个文件(以及数万亿个在线同步文件),工程师们用Rust重写了这些功能。

他们表示,Rust使这种复杂性的处理过程变得更容易,甚至令人愉快。

Rust发展速度之迅猛令人难以置信,不仅仅是IT行业,汽车和航空航天公司也开始采用Rust构建关键代码。

Dropbox的工程师Parker Timmerman预测,Rust将变得无处不在。

微软高管甚至公开暗示了许多科技公司在私下考虑的事情:新代码中将越来越多使用Rust,而越来越少地使用C和C++,最终可能完全弃用后者。

这种说法也许有点夸张,毕竟已经存在的C和C++代码不会立刻消失,而且还会继续运行数十年。

但如果Rust逐渐成为需要快速运行的裸机代码的首选,我们的软件环境将逐渐变得可靠,减少程序崩溃,减少不安全感。

前段时间的微软蓝屏事件就已经向我们展示了,当今的计算机程序依旧有自己的「软肋」,而且一旦出现大规模的程序崩溃,会带来难以估量的破坏和损失。

根除内存错误

Rust之所以能用如此快的速度威胁到C和C++的地位,与语言本身的安全特性有非常密切的关系。

我们可以粗略地将计算机的动态内存想象为一块黑板,软件运行时,会不断地将少量数据写入黑板,同时跟踪数据的位置,并及时删除无用数据。

这个过程看似简单,但其实涉及到相当多的机制设计和工程决策,不同的编程语言会用不同的方式实现。

C或C++等比较古早的语言会给程序员更多权力,决定软件如何以及何时使用「黑板」。

这种能力相当有用:通过自行控制和分配动态内存,程序员可以设计出运行速度很快的软件,因此C和C++常用于编写「裸机」代码(bare-metal),即直接与硬件交互的代码。

Window、Linux和MacOS等操作系统的内核都是用C编写的,在没有操作系统的机器上,比如收银机或透析装置,也都在C或C++上运行。

但这种优势不是没有代价的。俗话说得好,「能力越大,责任越大」。

既然C/C++程序员有如此大的权力,能控制内存分配,自然也要仔细跟踪所有的内存写入和擦除过程。

误删内容,程序会崩溃;忘记及时删除内容,程序也会崩溃。此外,如果有密码、财务信息等敏感内容遗留在内存中,还会造成安全隐患,给黑客以可乘之机。

随着一段C或C++代码逐渐膨胀,即使是最细心谨慎的程序员也可能会犯很多内存错误,从而开发出一个充满bug的软件。

无人机公司Fusion Engineering的联合创始人Mara Bos同时兼任Rust Library团队负责人,她表示,「在C或C++中,你总是担心代码会随机爆炸。」

90年代,Java、Java和Python等一系列新语言开始流行,它们采取了一种非常不同的方法进行内存自动管理——「垃圾收集器」(garbage collector, GC)。

在软件运行的同时,GC会每隔一段时间自动清理内存,大大减轻了程序员的压力。

但可想而知,这类语言虽然有更少的内存错误,但失去了这种细粒度的内存管理,程序也会运行得更慢,尤其是GC机制也会造成额外的负担。

就此,编程语言逐渐分出了两个阵营——如果对性能要求较高,或是在嵌入式设备上运行,就用C或C++;如果要开发web或移动应用程序,那就需要有GC机制的语言。

通过创建Rust,Hoare希望能区分这些方法之间的差异。用Rust编码时,程序员不需要手动管理数据在内存中的位置,编译器会自动帮你做到这一点,但同时也引入了许多严格的规则,规定程序内使用或复制数据的操作。

相比Python或Java,这些规则更加繁琐,因此编码过程也更加困难,但可以保证程序的「内存安全」。

只要程序通过编译,就无需担心你的代码会存在意外的内存错误。

更重要的是,Rust还提供「并发安全」。在现代程序中,并发执行的多个线程可能会尝试同时修改同一块内存,

而Rust的内存系统会自动阻止这种情况。

整个2010年代初,Mozilla工程师和世界各地的Rust志愿者们逐渐打磨出了Rust的核心,也就是它管理内存的方式。

他们创建了一个「所有权」系统(ownership),规定每条数据只能由一个变量引用,并由编译器强制执行,这大大降低了出现内存问题的几率。

Mozilla工程师Manish Goregaokar如今负责Rust的开发者工具团队,他表示,Rust采用的许多技巧并不是什么新想法,其中大多都是几十年前的研究。但Rust工程师善于发现这些经过精心打磨的概念,并将其转化为实际可用的功能。

随着团队逐渐改进内存管理系统,Rust对GC的依赖逐渐减少,到2013年,开发团队就从Rust中彻底移除了GC组件。

然而,有些工程师认为Rust仍然保留了一些类似GC机制的元素,比如引用计数系统(reference counting),作为内存所有权机制的一部分。

没有垃圾清理机制,程序就不需要定期中断以清理内存,Rust的运行速度也随之加快,性能接近C和C++的水准,但保证了内存安全。

Rust在逐渐推广时展现出的高性能常常让工程师们为之振奋。

Discord的工程师们对Go的GC机制积怨已久,即使代码构建得非常仔细,没有垃圾可以收集,Go也依旧会两分钟暂停一次执行GC。

2020年,他们用Rust重写了系统,发现运行速度比原来提高了10 倍。

AWS的高管和工程师也越来越相信,Rust可以帮助他们编写更安全、更快的代码。

他们进行了相关的研究,发现相比Java,基于Rust的类似代码的耗电量可以减少一半,这就意味着可以用相同的设备运行2×的工作负载。

Rust能从业余项目逐渐发展至今天的成就,没有人比Hoare更感到惊讶。毕竟,大多数语言在正式面世之前,就已经半途而废了。

参考资料:

https://www.technologyreview.com/2023/02/14/1067869/rust-worlds-fastest-growing-programming-language/

以上内容为资讯信息快照,由td.fyun.cc爬虫进行采集并收录,本站未对信息做任何修改,信息内容不代表本站立场。

快照生成时间:2024-08-16 17:45:06

本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。

信息原文地址:

不写代码、靠“玩” ChatGPT 年入百万,提示工程师正变成硅谷新宠
一个阳光明媚的早晨,住在旧金山的软件工程师 Anna 像往常一样,坐在电脑前,打开 ChatGPT,输入 " 帮我规划我的一天 "
2023-04-12 23:00:00
vivo蓝河操作系统内核开源:一场国产操作系统的「Rust革命」
...Rust诞生于2006年。当时,Mozilla的一位程序员下班回家遭遇电梯故障,才激发了其开创一门全新的编程语言来写出简洁
2025-07-30 22:51:00
微软考虑修改windows内核安全性,避免重蹈覆辙
...核安全性,避免重蹈覆辙。IT之家7月22日报道,CrowdStrike故障导致全球约850万台Windows电脑蓝屏死机
2024-07-31 02:38:00
工业网关的应用领域 才茂5G智能网关的优势
...;7. 生产信息采集系统等无线监测与预警;8. 智能楼宇、电梯监控、智能交通、工业自动化、智慧工厂等应用。功能特点1、设备监控工作人员可以通过各种类型的网络对设备和产品的性能
2023-01-16 10:00:00
避免再次全球蓝屏宕机!微软计划用Rust重构Win11内核
快科技7月30日消息,在经历了CrowdStrike驱动程序故障引发的全球性Windows电脑蓝屏死机事件后,微软正计划对其Windows 11内核安全性进行重大改革
2024-07-30 15:32:00
福州电梯突发事件应急处置演练走进校园
...新闻网6月21日讯(记者 朱丽萍 文/摄)什么时候不能乘坐电梯?被困电梯会不会窒息?如果被困电梯怎么做?……为提高电梯应急处置能力,6月21日,福建省、福州市、鼓楼区市场监管
2024-06-21 20:36:00
...块的连接,适应不同规模的控制需求。PLC提供实时监测和故障诊断功能,能够快速响应系统变化,确保设备安全高效运行。这些特性使PLC在现代工业控制中得到广泛应用。二、三相异步电动
2024-10-21 05:35:00
WebAssembly 正在吞噬数据库!
...之外,每个连接到数据库的应用程序都会成为一个额外的故障点,再加上与数据驻留相关的一系列问题,如果 Wasm 能直接与数据一起运行就变得非常有吸引力:数据可以保存在本地,而应用
2023-05-29 16:00:00
医院电梯的特殊需求是什么?
医院电梯作为医疗建筑中不可或缺的垂直交通工具,承载着病人转运、医疗物资运输、紧急救援等重要任务。与普通电梯相比,医院电梯在设计、功能、安全等方面有着更为严苛的特殊需求。本文将用通
2025-04-22 19:59:00
更多关于财经的资讯:
贵州宏财投资集团有限责任公司因虚开增值税发票被罚30万元
近日,国家税务总局六盘水市税务局第一稽查局对贵州宏财投资集团有限责任公司作出行政处罚决定,因其涉及虚开增值税发票的违法行为
2025-10-20 12:46:00
因“生产销售抽检不合格产品”,ST长方子公司领罚
齐鲁晚报·齐鲁壹点记者于深圳市市场监督管理局信用双公示栏获悉,10月17日,ST长方(300301.SZ)旗下的长方集团康铭盛(深圳)科技有限公司(下称“长方康铭盛”)收罚单
2025-10-20 12:47:00
东安永矿广利砂石有限公司违规被罚8万元
近日,信用中国(湖南永州)公示了东安永矿广利砂石有限公司的行政处罚决定。行政处罚决定书文号东水罚决﹝2025﹞06号显示
2025-10-20 12:47:00
中航技国际因“履约不当”被军事科学院实施为期三年的采购禁令
近日,军事科学院管理保障部根据军队供应商管理相关规定,对中航技国际经贸发展有限公司及其法定代表人张岩作出严肃处理,决定对该供应商及其关联企业实施为期三年的采购禁令
2025-10-20 12:47:00
因这项案由,中航油海鑫航运公司收海事罚单
齐鲁晚报·齐鲁壹点记者于中国海事局监管信息公开栏获悉,10月17日,中国航油集团海鑫航运有限公司(下称“中航油海鑫航运”)收金山海事局罚单
2025-10-20 12:47:00
2025年全国农产品产销大会|江西新西蓝董事长陈文龙:很看好贵州刺梨的发展机遇
“远远超过预期,没想到产销大会人流量这么大,简直人山人海。”10月18日,作为2025年全国农产品产销大会(南部片区)参展商
2025-10-20 13:28:00
2025年全国农产品产销大会|翁源兰花两天抢购一空
“我们自驾超10小时,跨越1100多公里,运来了30来个品种300来盆兰花,几乎被抢购一空。”10月18日,在2025年全国农产品产销大会(南部片区)一号展厅
2025-10-20 13:29:00
中国广核新设核电公司,注册资本1亿
近日,中广核粤东(陆丰)核电有限公司成立,注册资本1亿元,经营范围包含:发电机及发电机组销售;机械设备销售等。企查查股权穿透显示,该公司由中国广核(003816)全资持股。
2025-10-20 13:36:00
*ST国华等成立新公司,含AI及集成电路业务
近日,深圳市网点通数字科技有限公司成立,法定代表人为阮旭里,经营范围包含:集成电路芯片设计及服务;物联网技术服务;新兴软件和新型信息技术服务;人工智能应用软件开发等。企查查股权穿
2025-10-20 13:48:00
京东在南京成立家政服务新公司
近日,京东家政服务(南京)有限公司成立,法定代表人为郭兴伟,经营范围包含:室内环境检测;家政服务;环境保护监测;大气污染监测及检测仪器仪表销售等。企查查股权穿透显示,该公司由北京
2025-10-20 13:48:00
南京新工生物医药概念验证创投基金登记成立
近日,南京新工生物医药概念验证创业投资基金合伙企业(有限合伙)成立,出资额3亿元,经营范围包含:创业投资(限投资未上市企业)
2025-10-20 13:48:00
东方国信在内蒙古新设智算科技公司
近日,内蒙古东方国信智算科技有限公司成立,法定代表人为韩野,注册资本1亿人民币,经营范围包括网络与信息安全软件开发、第一类增值电信业务、第二类增值电信业务等。企查查股权穿透显示,
2025-10-20 13:48:00
奇瑞、天合光能等成立新能源公司
近日,亳州市合奇新能源有限公司成立,法定代表人为杨涛,经营范围包含:太阳能发电技术服务;光伏设备及元器件销售;海上风电相关系统研发
2025-10-20 09:48:00
夏厦精密等新设灵犀机器人创投合伙企业
近日,宁波市镇海威远灵犀机器人创业投资合伙企业(有限合伙)成立,出资额1亿元,经营范围包含:创业投资(限投资未上市企业)。企查查股权穿透显示,该企业由夏厦精密(001306)等共
2025-10-20 10:00:00
小马智行等在广州新设股权投资合伙企业
近日,广州科创智行股权投资合伙企业(有限合伙)成立,经营范围包含:创业投资(限投资未上市企业);以私募基金从事股权投资、投资管理、资产管理等活动。企查查股权穿透显示,该企业由广州
2025-10-20 10:00:00