当前位置: 首页 > news >正文

选择Rust,并在Ubuntu上使用Rust

在过去的 8 年里,Rust 一直是开发人员最喜欢的语言,并且越来越被各种规模的软件公司采用。然而,它的许多高级规则和抽象创造了一个陡峭的初始学习曲线,这可能会给人留下 Rust 是少数人的保留的印象,但这与事实相去甚远。让我们来看看为什么 Rust 通常是一个很好的选择,看看如何在 Ubuntu 上开始使用它。

有什么大惊小怪的

Rust 是一种具有许多令人兴奋的属性的语言,包括出色的安全性、高级人体工程学、低级(low-level)性能和卓越的用户体验。那么这些如何使 Rust 成为您的正确选择呢?

众所周知,Rust 是一种安全的语言,这在很大程度上归功于它的表达类型系统,该系统允许在编译过程中进行严格的检查。简单地说,如果一个 Rust 程序通过编译,内存使用是安全的,资源在释放后无法使用,错误已经处理或确认。由于内存错误是Microsoft、谷歌和苹果最近发现的大多数安全漏洞的根源,这些安全功能意味着该语言在帮助创建可靠和安全的软件方面具有独特的地位。

编写 Rust,虽然考虑到其最初的学习曲线令人生畏,但实际上非常愉快。该语言提供了许多高级抽象,例如标准容器库、迭代器、特征和函数式编程风格方法,所有这些都避免了重复常见实现样板的需要,使开发人员能够专注于实现有用的功能。Rust 的严格类型系统对此有很大帮助,减少了使用调试工具追逐错误所花费的时间,正如 Rust linter 的维护者 Andre Bogus 所说,“应用程序通常不需要调试。

在其他语言中,令人愉快的高级抽象会产生巨大的成本,但在 Rust 中,有可能获得这些好处通常为低级语言保留的性能,这是可能的,原因有两个。首先,Rust 建立在 LLVM 二十年的前沿研究之上。因此,其人性化的结构可以在编译时进行优化,只留下二进制文件中的机器友好指令。其次,Rust 的类型系统引入了所有权和借用的概念。这些允许编译器在资源超出范围时插入指令以释放资源。因此,Rust 程序的内存使用率极低,尤其是与垃圾收集替代方案相比。这种对低级性能的高度强调导致了对用户系统、钱包和环境更友好的高效二进制文件。

显然,Rust 在制作可靠和高效的软件方面拥有良好的基础,但如果没有令人信服的用户体验,这些好处可能很难离开象牙塔。这就是 Rust 的秘密——一流的用户体验。从简单的设置(如下所述)到非常有用的工具和文档,Rust 体验的所有元素都经过精心设计。它的错误消息注释了源代码,以显示问题的来源和方式,只需询问编译器即可获得更详细的解释。它的棉绒提供清晰、惯用的建议,并且通常可以自动修复它检测到的问题。它的文档具有独特的质量,包含大量的解释和示例,以确保用户确切地知道使用任何给定结构的位置、方式和原因。在 Rust 中,知识是共享的,而不是囤积的。

这些功能使 Rust 成为学习和使用所有领域的绝佳选择,从内核和嵌入式系统到桌面、云和 Web。对于新用户来说,很明显,这种语言已经投入了大量的关怀、爱和关注。现在,让我们简要地看一下如何开始并适应 Rust。

引导新的 Rust 安装

在本节中,需要: 乌班图

建议通过 Rustup 工具链版本管理器 rustup 安装 Rust。要安装 rustup,然后安装最新的稳定版 Rust,请运行以下命令。

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup toolchain install stable

接下来,让我们通过在新目录中运行以下命令来创建、构建和运行我们的第一个项目。

cargo new hello-world
cd hello-world
cargo run

就是这样!在编译器输出下方,你应该看到“Hello,world!”,这意味着你刚刚成功构建并运行了 Rust 代码。欢迎来到锈类动物(Rustacean)的世界!

现在你有一个可以工作的编译器,让我们建立一个很好的环境,为高效的 Rust 编写做好准备。

引导新的 Rust 开发环境

对于本节,需要: VSCode

通过 VSCode 可以获得很棒的 Rust 体验,开箱即用的体验还可以,但让我们调整一下,让它变得非常好。

首先,编写 Rust 最重要的工具是语言服务器,位于 rust-lang.rust-analyzer 扩展中。这将提供许多提示,并建议从编辑器中修复 lint 问题。为了获得最佳建议,请将“检查”命令设置从检查更改为剪辑。 (前者检查类型,而后者检查类型、惯用法、代码正确性等等!

能够在执行过程中暂停程序以检查它当前正在处理的值非常有用。安装 vadimcn.vscode-lldb 为 Rust 添加调试器,允许您设置断点并查看程序的当前状态。

编写 Rust 的核心部分是有效地利用周围的生态系统。为了帮助进行软件包管理,请安装 serayuzgur.crates。这将允许您通过建议版本轻松使依赖项保持最新。

最后,编写 Rust 偶尔需要编辑包清单 Cargo.toml。为此,tamasfe.even-better-toml提供了一个很好的体验。这改进了默认语法突出显示和验证。

引导新的Rustacean

对于本节,需要:你自己 🙂

有很多资源可以帮助学习 Rust,这里有一些建议。

要快速入门,请查看 Rust 之旅以获取许多集中的交互式练习,以帮助您快速入门。旅游不假设以前的知识,并提供多种语言版本。

每个锈类人(Rustacean)都应该看看官方的Rust Book。它包含大量的解释和示例,旨在帮助您理解所有 Rust 程序的构建块。因此,它提供了一站式教程和参考资料。这本书既不假设先验知识,也不假设语言。

对于更简洁的内容,请尝试 Rust by Example 提供了 Rust 语言的超简洁视图。

要真正掌握该工具并在您自己的系统上尝试该语言,请尝试梦幻般的 Rustlings 课程。

最后,但并非最不重要的一点是,如果您有任何问题,或者您只是想找到更多的 Rustaceans,请在他们的众多平台之一上加入 Rust 庞大、热情和热情的社区。
https://ubuntu.com/blog/why-and-how-to-use-rust-on-ubuntu

http://www.lryc.cn/news/135254.html

相关文章:

  • SVM详解
  • mysql全文检索使用
  • opencv 进阶17-使用K最近邻和比率检验过滤匹配(图像匹配)
  • Mac Flutter web环境搭建
  • 在外SSH远程连接macOS服务器
  • Dockerfile文件详细
  • C语言学习系列-->看淡指针(3)
  • Java抽象类详解
  • 06-微信小程序-注册程序-场景值
  • 多种方法实现 Nginx 隐藏式跳转(隐式URL,即浏览器 URL 跳转后保持不变)
  • 视频汇聚云平台EasyCVR视频监控管理平台进行SDN转推的操作步骤
  • SQL 语句继续学习之记录二
  • 【Python原创设计】基于Python Flask 机器学习的全国+上海气象数据采集预测可视化系统-附下载链接以及详细论文报告,原创项目其他均为抄袭
  • Unity进阶–通过PhotonServer实现人物选择和多人同步–PhotonServer(四)
  • 【Go 基础篇】Go语言获取用户终端输入:实现交互式程序的关键一步
  • 学习笔记:Opencv实现拉普拉斯图像锐化算法
  • 如何在前端实现WebSocket发送和接收UDP消息(多线程模式)
  • 【微服务】一文了解 Nacos
  • 量子计算对信息安全的影响:探讨量子计算技术对现有加密方法和信息安全基础设施可能带来的颠覆性影响,以及应对策略
  • ajax-axios-url-form-serialize 插件
  • 【AIGC】单图换脸离线版软件包及使用方法
  • 8.19论文阅读
  • HAProxy
  • 基于EasyExcel的Excel读取
  • 链路聚合详解
  • Shell编程学习之if分支语句的应用
  • 2023.8 - java - 泛型
  • 【数据结构练习】链表面试题锦集一
  • 自然语言处理从入门到应用——LangChain:链(Chains)-[通用功能:SequentialChain和TransformationChain]
  • 什么是卷积神经网络