4

Rust会成为JavaScript未来的基础设施吗? – thenewstack

 2 years ago
source link: https://www.jdon.com/58459
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Rust会成为JavaScript未来的基础设施吗? – thenewstack

Rust最初由 Mozilla 创建,是一种快速、可靠、内存效率高且非常流行的编程语言,专为提高性能和安全性而设计。

如被广泛使用的Facebook,苹果,亚马逊,微软和谷歌用于系统基础设施、加密和虚拟化。Rust 现在正在取代 JavaScript Web 生态系统的部分内容,例如缩小 (Terser)、转译 (Babel)、格式化 (Prettier)、捆绑 (webpack)、linting (ESLint) 等等。让我们深入探讨一下为什么这种趋势越来越受欢迎和被广泛采用。

JavaScript 是使用最广泛的编程语言,可在每个带有网络浏览器的设备上运行。在过去的 10 年里,围绕 JavaScript 构建了一个庞大的生态系统:

  • Webpack:开发人员希望将多个 JavaScript 文件捆绑为一个。
  • Babel:开发人员希望在支持旧浏览器的同时编写现代 JavaScript。
  • Terser:开发人员希望生成尽可能小的文件大小。
  • Prettier:开发人员想要一个可以正常工作的固执己见的代码格式化程序。
  • ESLint:开发人员希望在部署之前发现他们的代码存在的问题。

已经编写了数百万行Rust代码,并且修复了更多错误,为当今的 Web 应用程序提供了基础。所有这些工具都是用 JavaScript 或 TypeScript 编写的。这工作得很好,但我们已经达到了 JS 的最佳优化。这激发了一类新的工具,这些工具旨在大幅提高 Web 构建的性能。

SWC

SWC创建于 2017 年,是一个基于 Rust 的可扩展平台,适用于下一代快速开发工具。它被 Next.js、Parcel 和 Deno 等工具以及 Vercel、ByteDance、腾讯、Shopify 等公司使用。SWC 可用于编译、缩小、捆绑等 - 并且旨在进行扩展。您可以调用它来执行代码转换(内置或自定义)。通过 Next.js 等更高级别的工具运行这些转换。

Deno

Deno创建于 2018 年,是一个简单、现代且安全的 JavaScript 和 TypeScript 运行时,它使用V8并使用 Rust 构建。它试图取代由 Node.js 的原始创建者编写的 Node.js。虽然它是在 2018 年创建的,但直到 2020 年 5 月才发布v1.0。Deno 的 linter、代码格式化程序和文档生成器是使用 SWC 构建的

esbuild

esbuild创建于 2020 年 1 月,是一个 JavaScript 捆绑器和压缩器,比用 Go 编写的现有工具快 10-100 倍。

在 esbuild 发布之前,使用 Go 和 Rust 等系统编程语言构建 JavaScript 工具是相当小众的。在我看来,esbuild 激发了人们更广泛的兴趣,试图让开发者工具变得更快。

Rome

Rome于 2020 年 8 月创建,是一个用于 JavaScript、TypeScript、HTML、JSON、Markdown 和 CSS 的 linter、编译器、捆绑器、测试运行器等。他们的目标是替换和统一整个前端开发工具链。它是由Sebastian McKenzie创建的,他也创建了 Babel。

Rome 目前使用 TypeScript 编写并在 Node.js 上运行。但是他们现在正在使用 RSLint 解析器和他们自己的访问者系统来重写 Rust以进行 AST 遍历。

NAPI

Rust 与 Node.js 的集成优于其他低级语言。napi-rs允许您使用 Rust 构建预编译的 Node.js 插件。它提供了交叉编译和发布本地的二进制文件NPM一个彻头彻尾的现成的解决方案,而无需node-gyp或postinstall脚本。您可以构建一个可以直接从 Node.js 调用的 Rust 模块,而无需创建像 esbuild 这样的子进程。

Rust + WebAssembly

WebAssembly (WASM) 是 Rust 可以编译成的一种可移植的低级语言。它在浏览器中运行,可与 JavaScript 互操作,并在所有主要的现代浏览器中均受支持。

对于开发人员来说,这意味着您可以拥有 Rust(相对于 Go)的性能优势,同时仍然为 Web 编译(使用 WASM)。

在可预见的未来,Rust 的受欢迎程度将继续增长,并对 JavaScript 生态系统产生重大影响。想象一下,Next.js 中使用的所有构建工具都是用 Rust 编写的,从而为您提供最佳性能。然后可以将 Next.js 作为从 NPM 下载的静态二进制文件分发。对我来说,那将是一个生活(和发展)的理想世界。 


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK