Rust是JavaScript基础设施的未来? – Lee Robinson


Lee Robinson 是 Vercel(NextJS 的创建者)的开发者关系主管。
Rust 是一种快速、可靠且内存高效的系统语言,在过去 6 年中被评为“最受开发人员喜爱”(根据 Stack Overflow 开发人员调查)。
过去,JavaScript 生态系统中的绝大多数工具都是用 JavaScript 或 TypeScript 编写的。
但是,有一种趋势是从 JavaScript 转向使用系统编程语言。
我们现在看到正在使用 Rust 构建下一代 JavaScript 工具。
目前JavaScript 生态系统中的多个工具:

  • SWC:SWC 是一个可扩展的基于 Rust 的平台,可用于编译、捆绑、缩小等。
  • 它被 NextJS、Parcel 和 Deno 等工具使用。
  • Deno:Deno 是适用于 JavaScript 和 TypeScript 的现代且安全的运行时。它使用 v8 并使用 Rust 构建。Deno 试图取代 NodeJS,它是由 NodeJS 的原始创建者编写的。它的 linter、代码格式化程序和文档生成器是使用 SWC 构建的。
  • esbuild:esbuild 是一个 JavaScript 打包器和压缩器。 Esbuild 引发了使用 Go 和 Rust 等系统编程语言构建 JavaScript 工具的趋势。

 
我相信Rust 是 JavaScript 工具的未来。Next.js 12开始了过渡,用 SWC 和 Rust 完全取代 Babel和 Terser,为什么?
  • 可扩展性: SWC 可以在 Next.js 中用作 Crate,而无需分叉库或解决设计约束。
  • 性能:通过切换到 SWC,我们能够在 Next.js 中实现约 3 倍的快速刷新和约 5 倍的构建速度,还有更多的优化空间仍在进行中。
  • WebAssembly: Rust 对 WASM 的支持对于支持所有可能的平台和让 Next.js 开发无处不在是必不可少的。
  • 社区: Rust 社区和生态系统非常棒,而且还在不断增长。

不仅仅是 Next.js 采用 SWC,还有:

 
Rust 的一些缺点:
Rust 的学习曲线非常陡峭。它的抽象级别比大多数 Web 开发人员所习惯的要低。
因此,开发人员将不得不更多地考虑算法、数据结构和内存管理。
此外,Rust 在网络社区中的使用仍然是小众的,但这种情况正在迅速改变。
 
总结
相信 Rust 将在未来 1-2​​ 年和未来继续对 JavaScript 生态系统产生重大影响。想象一个世界,其中 Next.js 中使用的所有构建工具都是用 Rust 编写的,为您提供最佳性能。然后,Next.js 可以作为您从 NPM 下载的静态二进制文件分发。