JavaScript 的诞生与死亡:分析 Gary Bernhardt 的 2014 年预测
JavaScript 作为技术底层的演进
JavaScript 已从一种主要的编程语言转变为支持其他更高层语言和执行环境的基础底座。这种转变意味着,虽然开发者可能不再频繁地编写原始的 JavaScript,但该语言的运行时环境仍然是构建现代 Web 和桌面应用程序的关键层。
JavaScript 作为编译目标
JavaScript 的主要角色已转向成为编译的目标,而非手动编码的源语言。TypeScript 的广泛采用以及 WebAssembly (Wasm) 的出现证明了这一趋势。
正如社区成员所指出的,行业已进入一个循环:开发者创建“更好”版本的 JavaScript,然后为了浏览器兼容性将其转译回 JavaScript。这种模式证实了 JavaScript 作为 Web 通用胶水代码的理论。
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 存在固有缺陷,但它对行业的影响最终是积极的,因为它提供了一个通用的执行环境,从而允许了更新、更强大语言的快速迭代。