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 下載的靜態二進位制檔案分發。對我來說,那將是一個生活(和發展)的理想世界。
相關文章
- Rust是JavaScript基礎設施的未來? – Lee RobinsonRustJavaScript
- 德勤:全球基礎設施的未來
- eBPF會成為服務網格的未來嗎?eBPF
- 基礎設施即程式碼的過去和未來
- 三起兩落:汽車充電基礎設施,未來能成功逆襲嗎?
- 融合基礎設施將主導未來資料中心
- “大資料”的未來是apps,不是基礎設施大資料APP
- 社會資訊基礎設施
- Rust/WebAssembly將是雲原生分散式計算的未來? - thenewstackRustWeb分散式
- 專訪UCloud葉理燈:雲端計算會成為人工智慧的基礎設施Cloud人工智慧
- 程式設計師未來會成為非常內卷的職業?程式設計師
- 八腳機器人Halluc IIx會成為未來交通工具嗎?機器人
- 營收和利潤雙雙下降,電競會成為動視暴雪的未來嗎?營收
- 專訪 | 分散式HTAP資料庫會成為未來主流據庫嗎?分散式資料庫
- D、GO、Rust 誰會在未來取代 C?為什麼?GoRust
- 微服務的未來? 更多抽象! - thenewstack微服務抽象
- 未來基礎設施報告:展望2030年的城市與日常生活
- 即時基礎設施:以業務速度發展的基礎設施
- 低程式碼開發平臺會成為未來軟體開發的主流模式嗎模式
- Web3的未來:DePIN專案引領物理基礎設施的去中心化革命Web中心化
- 這會是Google Glass的未來嗎?Go
- 網路是路電水,作為國計民生的基礎設施來投入建設
- 除了雲端計算和5G,未來之城還缺哪個「基礎設施」?
- 程式設計師,為未來準備好了嗎?程式設計師
- JavaFX會將Sun送回未來嗎?Java
- 讓基礎設施成為服務 Pure Storage打造現代化資料體驗
- 零基礎能學UI設計嗎 如何成為專業UI設計人才UI
- 雲遊戲+ AI +直播,《Rival Peak》是否會成為未來遊戲的雛形?遊戲AI
- 未來Hadoop還會有生命嗎?Hadoop
- 寫給“未來的”基礎元件庫元件
- HTML5:未來OS的基礎?HTML
- 企業的IT基礎設施部署思路
- 程式設計師為什麼會憂慮自己的未來?程式設計師
- 亞太地區:未來十年關鍵基礎設施保護市場增長率最高
- 華為雲AI原生基礎設施CloudMatrix亮相全聯接大會AICloud
- 回顧2020丨IT基礎設施創新成為數字化轉型基石
- 未來客服會被人工智慧代替嗎?人工智慧
- 雲端計算成為未來趨勢