Web和云开发,Rust会起飞?

编译 | 言征
去年 , Web开发公司MAInmatter对Web版 Rust 进行了战略押注 , 并发起了 EuroRust 会议 , 加入了 Rust 基金会 , 同时正在内部以及开源领域从事许多 Rust 项目 。
Mainmatter非常乐观地认为 Rust 将在未来几个月和几年内在Web和云空间中起飞 , 并认为Rust 是迈向 Web 开发新时代的第一步 , 开发人员可以利用这项技术 , 在不放弃开发人员经验和生产力的情况下 , 达到更高的、以前难以想象的效率、稳定性、可靠性和可维护性水平 。
这篇文章意在分享为什么Mainmatter有信心作这一押注 , 以及为什么我们相信 Rust 在Web和云领域拥有美好的未来 。
一、大厂偏爱 , Rust的未来Rust 自从大约十年前登台以来 , 就受到了很多开发人员的关注和喜爱 。不仅开发人员喜欢这门语言 , 大公司的决策者也认为 Rust 是一项伟大的技术 , 并且在过去几年里 , 该语言在整个行业得到了广泛采用 。
AWS在其平台上大量使用 Rust  , google在 Android 中使用它 , Microsoft在 windows 中使用它 。从本质上讲 , Rust 有望在以前使用的许多领域取代 C 和 C++:系统编程、操作系统、各种嵌入式系统、低级工具以及游戏和游戏引擎 。
当然 , 除了以上这些 , 未来具有更大潜力的领域是Web和云 。Rust给这两个领域带来了无限想象的后端提升空间 。一旦后端的开发提升到一个新的水平 , 就能让团队能够访问以前无法实现的功能 。
尽管 Rust 还很年轻 , 但已经看到很多公司在Web和云中成功使用 Rust , 比如:Truelayer、Discord、Temporal、Nando's、svix、Wingback等等 。
值得一提的是 , 谷歌多年来也一直大力采用 Rust , 最近表示 , 与他们使用的任何其他语言相比 , 他们并没有真正看到 Rust 的生产力损失 。
二、Rust做Web的雄心虽然相对年轻 , 毕竟距离1.0 发布 , Rust的生态系统也只走过了 8 年 。但Rust以及其Web生态已经达到了一定的成熟度 , 足够使其成为构建真实应用程序的可行选择 。
正如arewewebyet.org所证实的 , Rust 显然已经为Web做好了准备:
首先 , 有tokio , 一个异步运行时 , 它是Web应用程序的坚实且高性能的基础;其次 , 最重要的是 , Rust已经有了成熟且维护良好的 Web 框架 , 例如axum和actix-web 。所有相关数据存储以及 ORM 都有成熟的驱动程序;最后 , 可以找到涵盖构建 Web 应用程序的所有其他相关方面的库 , 例如(反)序列化、国际化、模板化、可观察性等 。
总的来说 , Rust的雄心勃勃 , 构建 Web 后端提供了坚实而稳定的构建块 。
三、有必要换Rust做Web?当然 , 有人可能会问:我为什么要换Rust?对于已经使用 Ruby、JAVA、Elixir、TypeScript、Go 或其他任何语言的团队而言 , 换 Rust有哪些好处吗?
有两个关键方面使 Rust 成为 Web 构建的绝佳选择:一是它的效率和性能;二是其类型系统带来的可靠性和可维护性带来的好处 。
1.效率和性能
Rust 以其高效和高性能而闻名 。它将轻松超越 Web 应用程序常用的 JavaScript、Ruby、Python/ target=_blank class=infotextkey>Python 等语言几个数量级 。其他语言可能具有更高的性能上限(例如 Java 或 C# 或 Go) , 但你需要投入大量的工程精力才能接近 Rust 工具包开箱即用提供的性能水平 。
此外 , Rust 还有一个关键优势:它不捆绑垃圾收集器 。垃圾收集语言可以很快 , 但它们不能始终一致性地表现出色 。垃圾收集器将引入暂停(pause)以释放未使用的内存 , 从而对应用程序的尾部延迟产生负面影响 。而Rust 不存在这个问题:它可以提供一致的性能 , 而不会出现这些峰值 。
C 和 C++ 是唯一能够实现如此稳定和一致性能的其他语言 。不幸的是 , 这两种语言往往搬起石头砸自己脚 , 处处是陷阱 , 特别是在手动内存管理时 。正如 linux 的创始人 Linus Torvalds 所说:

“它离硬件太近了 , 你可以用它做任何事情 。这很危险 。就像玩杂耍电锯一样 。我还发现它确实有很多陷阱 , 而且很容易被忽视 。
由于 C 和 C++ 的这些危险 , 除了这两种语言的专家或拥有专家团队时才能使用 。否则 , 你得到的就是一个不稳定且充满安全漏洞的系统 。


推荐阅读