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
- 基礎設施即程式碼的過去和未來
- 三起兩落:汽車充電基礎設施,未來能成功逆襲嗎?
- Rust/WebAssembly將是雲原生分散式計算的未來? - thenewstackRustWeb分散式
- 未來基礎設施報告:展望2030年的城市與日常生活
- 專訪UCloud葉理燈:雲端計算會成為人工智慧的基礎設施Cloud人工智慧
- 程式設計師未來會成為非常內卷的職業?程式設計師
- 專訪 | 分散式HTAP資料庫會成為未來主流據庫嗎?分散式資料庫
- 微服務的未來? 更多抽象! - thenewstack微服務抽象
- 即時基礎設施:以業務速度發展的基礎設施
- Web3的未來:DePIN專案引領物理基礎設施的去中心化革命Web中心化
- 華為雲AI原生基礎設施CloudMatrix亮相全聯接大會AICloud
- 低程式碼開發平臺會成為未來軟體開發的主流模式嗎模式
- 營收和利潤雙雙下降,電競會成為動視暴雪的未來嗎?營收
- 回顧2020丨IT基礎設施創新成為數字化轉型基石
- 除了雲端計算和5G,未來之城還缺哪個「基礎設施」?
- 讓基礎設施成為服務 Pure Storage打造現代化資料體驗
- Lens成為最受歡迎的Kubernetes IDE – thenewstackIDE
- 零基礎能學UI設計嗎 如何成為專業UI設計人才UI
- 未來Hadoop還會有生命嗎?Hadoop
- 寫給“未來的”基礎元件庫元件
- 雖然Kubernetes可能是基礎設施的未來,但它不是開發者平臺 | devops.loldev
- 解讀雲原生基礎設施
- Terraform: 基礎設施即程式碼ORM
- 更可以稱之為“IT基礎設施上的明珠”,只是這個明珠
- JavaScript基礎——你真的清楚JavaScript是什麼嗎?JavaScript
- 密碼基礎設施提供商三未信安加入龍蜥社群密碼
- 產品與解決方案來夯實數字基礎設施
- 回應DPU?英特爾基礎設施處理器(IPU)來了!
- 基於Rust的資料框架庫Polars會取代Pandas嗎?Rust框架
- Epic老大回應Epic商城虧損:為未來的成功打下基礎
- IDC釋出:4Q18雲IT基礎設施收入低於傳統IT基礎設施收入
- 為什麼 JavaScript 是 TypeScript 的基礎JavaScriptTypeScript
- 2.0 解析系列 | OceanBase的重要基礎設施——DBReplay
- ChatGPT 背後基礎設施的算力概念ChatGPT
- IT行業高薪的背後:未來9成的程式設計師會被淘汰?行業高薪程式設計師