代码要怎么直接运行,写的代码要怎么运行

首页 > 实用技巧 > 作者:YD1662024-02-03 05:17:28

编程大佬纷纷加入 Rust

Graydon Hoare 创建的 Rust 语言与上述这些方法有很大的不同。Rust 不需要程序员手动找出数据在内存中的位置,而是由语言本身来管理。但 Rust 对于如何在程序中使用或复制数据有许多严格的规则。程序员必须学习这些编程规则—— 比 Python 或 JavaScript 更繁琐的规则。虽然编写代码的难度有所提高,但代码是“内存安全的”,你无需担心不小心插入致命的内存错误。最为重要的是,Rust 还将提供“并发安全”。现代程序可以同时做多件事——并发,有时不同的线程会尝试修改同一块内存,而 Rust 的内存系统会阻止这种操作。

在刚开始设计 Rust 时,Graydon Hoare 在 Mozilla 工作,已是一名拥有十多年软件开发经验的老程序员。起初,Rust 只是一个业余项目。Graydon Hoare 花了几年时间来开发 Rust,当第一次向其他程序员展示这门语言时,收到的反馈褒贬不一。“有些人很热情,而有些人则表示不喜欢,还说这门语言压根不行,永远没机会使用。”

然而,Mozilla 的高层却对 Rust 很感兴趣。他们认为,Rust 可以帮助他们构建更好的浏览器引擎。浏览器是非常复杂的软件,出现内存错误的风险极高。

Patrick Walton 也是 Mozilla 的一名员工,他也参与了 Rust 的开发工作。当初,Patrick Walton 放弃继续攻读编程语言博士的学位,并加入了 Mozilla。偶尔的一次机会,JavaScript 的创建者 Brendan Eich 把他拉进了 Mozilla 的一次会议:“我们在讨论 Rust 的设计决策,你要不要来看看?”Patrick Walton 觉得 Rust 非常棒,于是,他开始和 Graydon Hoare 一起开发该语言。后来越来越多的工程师加入了他们的队伍。当时的很多人,包括 Mozilla 的工程师 Niko Matsakis 和 Felix Klock,都有内存和编程语言相关的研究经验。

代码要怎么直接运行,写的代码要怎么运行(5)

Patrick Walton Niko Matsakis Felix Klock Manish Goregaokar图源:MITTechnologyReview

2009 年,Mozilla 决定正式支持 Rust。该语言是完全开源的,而且其决策由创造者全权负责,不过 Mozilla 同意出钱资助几位工程师。于是,Rust 小组占据了公司的一间会议室,Mozilla Research 的联合创始人 Dave Herman 将其称为“书呆子洞穴”,并在门外张贴了一个标志。在这之后的十年里,Mozilla 雇佣了十几名工程师全职研究 Rust。

Walton 回忆道:“每个人都觉得自己在从事一项伟大的事业。” 这种兴奋延伸到了 Mozilla 的大楼之外。2010 年代初期,Rust 吸引了世界各个角落的科技志愿者,他们中的有些人在大型科技公司工作。其中一名主贡献者是德国的一名高中生。2010年,Mozilla 在加拿大不列颠哥伦比亚省举行会议,Eich 发表了关于实验性语言的演讲,他说:“如果你对编程语言充满了兴趣,就一定要试试看 Rust。”

代码要怎么直接运行,写的代码要怎么运行(6)

确认 Rust 核心,程序运行更快,更安全

2010 年代初期,Mozilla 的工程师和世界各地的 Rust 志愿者逐渐打磨出了 Rust 的核心:内存的管理方式。他们创建了一个“所有权”系统,一个数据只能由一个变量引用,这大大降低了内存出问题的风险。Rust 的编译器会严格执行所有权规则。如果编程人员违反这些规则,编译器将拒绝编译代码,也不会将其变成可运行的程序。

Rust 使用的许多技巧都算不上新颖,Manish Goregaokar 是 Rust 开发人员工具团队的负责人,早年曾在 Mozilla 工作,他表示:“大多是几十年前的研究”。但 Rust 工程师善于发现这些设计概念,并将它们转化为实用的功能。

随着这个团队不断改进内存管理系统,逐渐地 Rust 不再需要自己的垃圾收集器,直到 2013 年,他们删除了垃圾收集器。如今用 Rust 编写的程序运行速度更快,因为计算机不会每隔一段时间就停下来清理垃圾。Hoare 指出,一些软件工程师认为 Rust 仍然拥有类似于垃圾收集的元素:“引用计数”系统,这个系统是内存所有权机制的一部分。但无论采用了哪种方式,如今 Rust 的性能确实提高了,距离硬件越来越近,就像 C 和 C 一样,同时也保证了内存安全。

2012 年,Steve Klabnik 开始接触 Rust 的开发工作,并在之后的十年里负责编写相关文档,他表示,删除垃圾收集后“Rust 变成了一门更精简且更有效地语言。”

代码要怎么直接运行,写的代码要怎么运行(7)

友好的社区文化

在此过程中,Rust 社区建立了一种文化:对新人异常友好,而且非常开放。微软首席工程师 Nell Shamrell-Harrington 曾在 Mozilla 从事 Rust 的开发工作,她表示:“我们不会称任何人为菜鸟,没有任何问题是愚蠢的问题。”

她说,部分原因是 Hoare 在很早以前就发布了“行为准则”,任何为 Rust 做出贡献的人都应该遵守这些准则。Rust 社区成员说,社区接受了这套准则,并且成功地吸引到了很多编程高手加入 Rust。即便程序员犯错,编译器抛出的错误消息也很友好,不仅描述了错误,而且还会就如何修复礼貌地提出建议。

Shamrell-Harrington 说:“当我犯错误时,C 和 C 的编译器会让我觉得自己是一个很糟糕的人。而 Rust 编译器更像是在指导你编写超级安全的代码。”

2015 年,该团队全力以赴最终发布了 Rust 的“稳定”版本。这个版本非常可靠,可用于为真正的客户编写软件。距离 Rust 归入 Mozilla 旗下已经过去六年了,在漫长的开发期间内,编程人员一直渴望尝试演示版本,尽管这些版本的表现会很糟糕,Goregaokar 说:“编译器一直在崩溃”。终于是时候将“1.0”推向世界了。

Walton 记得自己蜷缩着身体坐在电脑前奋战了几个小时。Klabnik“在过去两周内写了大约 45 页的文档,”他回忆道。2015 年 5 月 15 日,他们终于发布了第一个版本,众多 Rust 粉丝聚集在世界各地庆祝。

Mozilla 的投资很快开始获得回报。2016 年,Mozilla 小组发布了 Servo,这是一款使用 Rust 构建的新型浏览器引擎。第二年,另一个小组使用 Rust 重写了 Firefox 中渲染 CSS 的部分。这一变化给浏览器带来了明显的性能提升。此外,Mozilla 还使用 Rust 重写了处理 MP4 多媒体文件的代码。

很快,Rust 开发人员就听到很多公司都在尝试他们的新语言。

代码要怎么直接运行,写的代码要怎么运行(8)

上一页123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.