JavaScript 的誕生與死亡:分析 Gary Bernhardt 的 2014 年預測
JavaScript 作為技術底層的演進
JavaScript 已從一種主要的程式語言轉變為支持其他高階語言和執行環境的基礎底層。這種轉變意味著,雖然開發者可能不會頻繁地編寫原始 JavaScript,但該語言的執行環境仍然是構建現代 Web 和桌面應用程式的關鍵層。
JavaScript 作為編譯目標
JavaScript 的主要角色已轉向成為編譯目標,而非手動編寫程式碼的原始語言。這一趨勢可以從 TypeScript 的廣泛採用以及 WebAssembly (Wasm) 的出現得到證實。
正如社群成員所指出的,業界已進入一個循環:開發者創建「更好」版本的 JavaScript,然後為了瀏覽器的相容性,將它們轉譯回 JavaScript。這種模式證實了 JavaScript 作為 Web 通用膠水程式碼(glue code)的理論。
WebAssembly (Wasm) 的角色
WebAssembly 代表了那項預測的實現:JavaScript 最終將被一種效能更高、二進位格式所取代。雖然早期的預測指向了 asm.js,但 Wasm 已成為在瀏覽器中執行類原生程式碼的實際標準。
然而,這種轉變並非絕對。目前的技術限制仍然存在,特別是在 DOM 操作方面。由於 Wasm 無法直接操作 DOM,JavaScript 仍然是必要的,作為連接 Wasm 邏輯與瀏覽器使用者介面的關鍵「膠水程式碼」。某些框架(例如 Flutter)透過在 canvas 上渲染一切來繞過這一點,但這種方法犧牲了標準的 Web 功能集。
超越瀏覽器的擴展
Web 技術已成功從瀏覽器遷移到原生作業系統空間,實現了關於 Web 語法在通用計算領域普及化的預測。
透過 Electron 進行桌面整合
Electron 使 Web 技術能夠被封裝成桌面應用程式,讓開發者可以使用單一程式碼庫同時支援 macOS、Windows 和 Linux。雖然批評者認為 Electron 非常耗費資源,但它已成為跨平台部署最快的方法,有效地將 JavaScript 執行環境嵌入到桌面作業系統的體驗中。
基於瀏覽器的作業系統概念
關於最終可能出現完全基於瀏覽器技術或 WebAssembly 的作業系統,目前仍有持續的討論。早期的嘗試(如 webOS 和 Firefox OS)被一些人認為是領先時代數十年的嘗試,預示著一個 Web 瀏覽器與作業系統邊界完全消失的未來。
社群對 JavaScript 「死亡」的觀點
JavaScript 的「死亡」並不被解釋為該語言的消失,而是指其「隱形化」。
"JavaScript 的「死亡」在此處討論的是指它成為了底層,一種你不再直接使用它,但它無處不在的狀態。"
雖然有些開發者將 JavaScript 或 Wasm 成為標準應用程式二進位介面 (ABI) 的前景視為負面結果,但其他人則將目前的發展軌跡視為一種自然的演進。共識認為,儘管 JavaScript 存在其固有的缺陷,但它對產業的最終影響是正面的,因為它提供了一個通用的執行環境,讓更新、更強大的語言能夠快速迭代。