查看原文
其他

【译】Rust 2022 影响力简报

张汉东 觉学社 2022-08-12

看到一篇短文,对 Rust 语言在 2022 年增长的影响力做了一个很好的总结,所以将它翻译出来供大家参考,不是全文翻译,只是重点摘要。原文:https://deprogrammaticaipsum.com/the-state-of-rust-in-2022/

这篇文章将按计算机生态自底向上来总结。以下应用领域其实还有很多工具作者没有列出来,回头找时间我会再扩展一篇。

操作系统

一方面,Rust 获得了作为Linux 内核第二个官方语言的“爵位”[1] 。另一方面,开发人员选择 Rust 从头开始编写Redox[2]操作系统。

对于用户态程序,很多开发人员正在用 Rust 重写其中很多工具:bat代替catexa代替lsfd代替find,以及更多工具[3]

除了重写之外,还有一些创新的工具:例如, Pijul[4]Jujutsu[5]不仅是源代码版本控制市场中的 Git 克隆,而且还解决了Git 的缺点并从Fossil[6]等其他项目中汲取灵感的新工具。

编程语言

Rust 正稳步成为编译器和运行时构建的新的“C语言”。Artichoke[7]是用 Rust 制作的 Ruby。RustPython[8]是用 Rust 制作的 Python。Deno[9]是使用 Rust 制作的 TypeScript 和 JavaScript。

还有更多用 Rust 构建的语言[10]。甚至有一本书教你如何使用 Rust 和脚本语言创建你的编程语言,[11]你可以嵌入[12]到你的 Rust 应用程序或游戏中。

也有人正在研究Rust 与 Python[13]和许多其他编程语言的互操作性。

GUI

Linux 笔记本电脑制造商 System76 正在开发 COSMIC ,它是一个完全用 Rust 编写并基于gtk-rs的[14]桌面环境[15]

Tauri[16]项目最近发布了 1.0 版,并将自己定位为 Electron 的跨平台 GUI 应用程序的可靠替代品。但是 Tauri 仍然需要在您的桌面上使用 Web 技术。100% 原生 GUI 应用程序空间怎么样?还有很多工作要做[17],方法相互矛盾,还没有明确的赢家。如今,像 1Password 这样的一些桌面应用程序在 Rust 上运行良好[18]

Web 全栈开发

前端可以使用Rome[19]来格式化、检查和捆绑 CSS、TypeScript、HTML 和其他更高级的语言。

可以使用Rocket[20]作为 Ruby on Rails 或 Django 或Actix[21]Hyper[22]的替代品,用于较小的 Web API。许多基准测试[23]表明,基于 Rust 的 Web 框架是当今市场上最快、最高效的框架之一。

云原生

可以使用Krustlet在 Kubernetes 中运行 WebAssembly,也可以在[24]Kata Containers[25]中更快地运行他们的代码,因为它已经用 Rust 重写了[26]

恶意软件

虽然 Rust 非常适合应用程序,但它也非常适合恶意软件,使其更快、更小,甚至更难检测[27](比如一些勒索软件)。

其他动态

学习 Rust 每天都变得越来越容易。开发者可以通过rustlings[28]学习读写 Rust 代码。如果这还不够,Amos 会在 30 分钟内教你 Rust[29]Rust Edu 组织[30]在学术界推广它,Typst[31]旨在取代 LaTeX。

Rust newsletter[32]RiB[33]Rust GameDev WG[34]This Week in Rust[35]等时事通讯定期在你的收件箱中直接传播Rust 应用领域的各种创新。RustConf 2022[36] 刚刚举行完毕。Linux 基金会正在教我们如何用 Rust 编写内核模块[37]

小结

现在很多公司都在使用Rust:除了上面提到的1Password之外,还有Dropbox、Google等等。

然而,在采用Rust的过程中仍有一个实际的障碍:学习曲线很陡,这使得Go、C#、Crystal和Dart在此刻的各种场景中都是值得一试的对手。许多程序员对Rust的借用检查器感到困惑或完全不明白,即使Rust能产生异常高效的代码,公司也对他们的开发人员使用它的生产力持怀疑态度。此时,谷歌认为其C++的继任者 Carbon[38] 会是一个更好的方法。

只有时间才能告诉我们,开发人员是否会习惯于借用检查器,就像他们在过去25年里习惯于垃圾收集、运行时异常、函数式编程和其他许多看似 "陌生 "的概念一样。

同时,我们将耐心地看着我们的行业再次重写所有的轮子,落入同样的陷阱,面对一个新的未知领域。没有银弹,以前没有,以后也不会有。

尽管 Rust 似乎是解决许多问题的绝佳解决方案,但它不会,也永远不会替代我们的大脑和思考能力。

参考资料

[1]

第二个官方语言的“爵位”: https://lkml.org/lkml/2021/12/6/461

[2]

Redox: https://www.redox-os.org/

[3]

更多工具: https://zaiste.net/posts/shell-commands-rust/

[4]

例如, Pijul: https://pijul.org/

[5]

Jujutsu: https://github.com/martinvonz/jj

[6]

Fossil: https://fossil-scm.org/

[7]

Artichoke: https://www.artichokeruby.org/

[8]

RustPython: https://rustpython.github.io/

[9]

Deno: https://deno.land/

[10]

更多用 Rust 构建的语言: https://github.com/alilleybrinker/langs-in-rust

[11]

创建你的编程语言,: https://createlang.rs/

[12]

你可以嵌入: https://www.boringcactus.com/2020/09/16/survey-of-rust-embeddable-scripting-languages.html

[13]

Rust 与 Python: https://www.infoworld.com/article/3664124/how-to-use-rust-with-python-and-python-with-rust.html

[14]

gtk-rs的: https://gtk-rs.org/

[15]

桌面环境: https://blog.edfloreshz.dev/articles/linux/system76/rust-based-desktop-environment/

[16]

Tauri: https://tauri.app/

[17]

很多工作要做: https://raphlinus.github.io/rust/gui/2022/07/15/next-dozen-guis.html

[18]

在 Rust 上运行良好: https://serokell.io/blog/rust-in-production-1password

[19]

Rome: https://rome.tools/

[20]

Rocket: https://rocket.rs/

[21]

Actix: https://actix.rs/

[22]

Hyper: https://hyper.rs/

[23]

基准测试: https://web-frameworks-benchmark.netlify.app/result?asc=0&l=rust&order_by=level512

[24]

Krustlet在 Kubernetes 中运行 WebAssembly,也可以在: https://krustlet.dev/

[25]

Kata Containers: https://katacontainers.io/

[26]

用 Rust 重写了: https://www.zdnet.com/article/kata-containers-rewritten-in-rust-and-gets-a-major-speed-boost/

[27]

甚至更难检测: https://www.zdnet.com/article/this-malware-has-been-rewritten-in-the-rust-programming-language-to-make-it-harder-to-spot/

[28]

开发者可以通过rustlings: https://github.com/rust-lang/rustlings

[29]

Amos 会在 30 分钟内教你 Rust: https://fasterthanli.me/articles/a-half-hour-to-learn-rust

[30]

Rust Edu 组织: https://rust-edu.org/

[31]

Typst: https://typst.app/

[32]

Rust newsletter: https://discu.eu/weekly/rust/

[33]

RiB: https://rustinblockchain.org/newsletters/

[34]

Rust GameDev WG: https://gamedev.rs/

[35]

This Week in Rust: https://this-week-in-rust.org/

[36]

RustConf 2022: https://rustconf.com/

[37]

如何用 Rust 编写内核模块: https://linuxfoundation.org/webinars/writing-linux-kernel-modules-in-rust/

[38]

Carbon: https://9to5google.com/2022/07/19/carbon-programming-language-google-cpp/


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存