在 Stack Overflow 的年度开发者调查中, Rust 连续第八年位居“最受欢迎的编程语言”榜首。超过 80% 的开发人员表示他们希望明年再次使用该语言,您不得不想知道一种不到 20 年前创建的语言如何俘获了世界各地开发人员的心。
在本文中,我们将了解 Rust 的历史、它的常用用途、为什么开发人员如此喜爱它,以及一些可帮助您开始学习 GitHub 上增长最快的语言之一的资源。
Rust 的打印宏显示输出“Hello, World!”
fn main() {
println!("Hello, World!");
}
Rust 最初旨在作为 C 和 C++ 的更安全替代品,它是一种系统编程语言,由于其对安全性、性能和生产力的重视,在开发人员中获得了广泛的欢迎。Rust 是一种静态类型语言,因此变量和表达式类型在编译时确定和检查,这有助于增强内存安全和错误检测,从而实现更可靠的构建。
2006 年,软件开发人员 Graydon Hoare 在 Mozilla 工作期间启动了 Rust 作为个人项目。据《麻省理工科技评论》采访称,Rust 的灵感来自于 Hoare 公寓楼里一部破损的电梯。电梯操作系统的软件崩溃了,霍尔了解到此类问题通常来自于程序使用内存的问题。
通常,这些类型设备的软件是用 C 或 C++ 编写的,但这些语言需要大量的内存管理,这可能会导致错误,从而导致系统崩溃。因此,霍尔开始研究如何创建一种既紧凑又无内存错误的编程语言。
后来他向一位经理展示了该项目,Mozilla 于 2009 年赞助了该项目,作为将该语言纳入实验性浏览器引擎开发的长期努力的一部分。2010年,Mozilla Research正式宣布Rust项目,并将源代码作为开源项目向公众发布。经过几年的发展,Rust 达到了稳定和成熟的状态——并于 2015 年 5 月发布了 Rust 1.0。这一里程碑标志着 Rust 已做好生产准备,并为开发人员进行构建提供了基础。
自 1.0 版本发布以来,Rust 的受欢迎程度和采用率呈爆炸式增长,Microsoft Windows 等顶级应用程序利用 Rust 以其内存安全代码重写核心库。除了科技巨头之外,Rust 还拥有一个充满活力的开发者社区,或称“ Rustaceans ”,他们致力于使 Rust 体验成为一种积极且协作的体验。
有趣的事实
霍尔表示,据说锈病是以一种特别强大的真菌命名的,这种真菌“为了生存而过度设计”。
来认识一下 Ferris,Rust 的非官方吉祥物!
根据 SlashData 最近的一项调查,到 2023 年,全球大约有 280 万 Rust 开发者,这一数字在过去两年中几乎增加了两倍。凭借大量活跃的论坛、文档以及为各种技能水平的开发人员提供的支持社区,Rust 一直位居最受青睐的语言列表榜首也许并不奇怪。
那么,Rust 的哪些关键特性使其对开发人员如此有吸引力呢?
简单来说,Rust 解决了一些通常与 C 和 C++ 相关的开发人员最令人沮丧的内存管理问题,但这并不是它唯一的亮点功能。GitHub 的一名软件工程师Jason Orendorff与人合着了一本关于 Rust 编程的书,他谈到了该语言:
“对我来说,Rust 的伟大之处在于它既快速又可靠,”Orendorff 说道。“它让我能够编写在 16 个内核上运行的多头程序,并保持它们的可读性、可维护性和无崩溃性。它还允许我编写需要控制内存布局的非常低级的算法,并引入一个使 HTTPS 请求变得超级简单的包。正是这些功能的结合使 Rust 如此独特。”
在此基础上,这里还有一些深受喜爱的特性和功能:
运行这段代码是为了 Rust 开发者之间的一个内部笑话
fn main() {
break rust;
}
由于可以直接访问硬件和内存,Rust 非常适合嵌入式系统和裸机开发。由于它是一种通用语言,因此它也可用于各种应用程序。
让我们探讨几个关键用例:
性能关键型后端系统是处理需要高速处理、低延迟响应和高效资源利用的任务的软件组件或服务,而 Rust 的性能、线程安全性和错误处理能力使其成为开发此类后端系统的绝佳选择。系统。事实上,我们在 GitHub 上使用 Rust 构建了其中一些系统。例如,我们的代码搜索功能的后端是用 Rust 编写的(您也可以阅读有关使用 Rust 开发 GitHub 最新代码搜索的更多信息)。
Rust 最初是为了解决操作系统问题而创建的(还记得电梯问题吗?),因此,毫不奇怪,它经常用于构建操作系统、内核、设备驱动程序或其他低级组件,其中对内存和性能的控制至关重要。Redox是一个类 Unix 操作系统,是用 Rust 编写的,这有助于其最关键的功能:安全性。“ Fuchsia是 Google 构建的另一个例子,”Ohrendorff 说。“如果你有一个 Google Nest 智能扬声器,它很可能运行 Fuchsia。”
Rust 也非常适合编写执行与操作系统密切交互的任务的代码。例如, GitHub 的Codespaces团队正在利用 Rust 来提高 GitHub Codespaces 中虚拟磁盘的启动速度并优化 Azure 存储的利用率。Coursera 还在其在线评分系统中采用了 Rust,因为它在 Docker 中运行,并且需要一种能够编译为具有最小依赖性的机器代码的语言。
有兴趣构建自己的操作系统吗?
该博客文章集提供了有关如何使用 Rust 创建小型操作系统的分步教程。您还可以在 GitHub上找到该项目的源代码。
Rust 越来越多地用于 Web 开发,尤其是在服务器端。Rust 的异步编程模型和性能特征使其适合构建高性能 Web 服务器、API 和后端服务。另外,Rust 的 Web 框架不断涌现,例如Rocket,它们可以帮助人们开始编写安全的 Web 应用程序。这些框架的出现凸显了 Rust 作为成熟语言的地位,也有助于增加对希望在前端或后端工作中使用 Rust 的人们的支持。
Rust 的速度、内存管理和安全性都有助于其参与加密货币和区块链技术。例如,Polkadot旨在实现多个区块链之间的互操作性和交互,以安全和去中心化的方式共享信息和资产,它利用 Rust 构建其核心基础设施。Polkadot 的运行时逻辑(控制区块链的行为和规则)也是用 Rust 编写的。查看此存储库Awesome-blockchain-rust,了解一些有用的组件,用于使用 Rust 构建您自己的区块链应用程序。
Rust 编译为高效的机器代码及其富有表现力的语法使其成为构建命令行工具和应用程序的有力选择。另外,编写命令行应用程序是学习和熟悉 Rust 的好方法。看看这份关于如何在 15 分钟内使用 Rust 构建您自己的 CLI 应用程序的综合指南!
Rust 的最小运行时间和对内存布局的控制使其对于开发嵌入式系统和物联网 (IoT) 设备非常有用。它能够防止与内存相关的错误、管理并发以及生成小型高效的二进制文件,从而满足物联网的安全性、实时性和效率需求。
尽管 Rust 的用户群远不如 Java 或 Python 那样大,但 Rust 继续与互联网上最受尊敬的列表中的大热门竞争。甚至还有一个完整的网站,其中包含开发人员对 Rust 的赞扬。
但究竟为什么 Rust 如此受到开发者的推崇呢?如果您将其归结为开发人员如此喜爱 Rust 的几个原因,那么它们必须是该语言的速度、安全性和性能。
此外,Rust 正在通过新的框架、工具和资源不断发展和成长。您可以在Awesome-rust存储库中密切关注对该语言的贡献,该存储库包含令人印象深刻的 Rust 代码和资源列表。
欣赏 Rust 不仅仅是采用一种语言,而是拥抱一种优先考虑创新而不损害稳定性和安全性核心原则的心态。
我们知道,本文中充斥着大量资源来提高您的 Rust 技能,但我们还为您提供了另一个专业提示:使用GitHub Copilot来试用 Rust 。作为您的 AI 支持的结对程序员,GitHub Copilot 可以帮助您在使用定制代码建议时学习和完善 Rust 基础知识。
这是 GitHub 的开发者倡导者首次使用 GitHub Copilot 试验 Rust。对于我们所有经验丰富的 Rustaceans,您有何看法?这个建议正确吗?
如果您准备好开始使用 Rust 进行编码之旅,GitHub Copilot 可以快速启动您的进度,而无需一次花几个小时研究文档。