JavaScript 的诞生与死亡(2014)
JavaScript 的“死亡”与长寿
- 许多人认为 JavaScript 永远不会“死”,把它的寿命类比为 PHP,甚至是 C。
- 也有人区分“生物学意义上的死亡”和实际上的过时:像 COBOL/Fortran 一样,JS 可能会持续几十年,但变得小众。
- 还有人指出,大型语言模型大量接触 JS 代码,进一步巩固了它的地位。
- “以后再也不会有人写 JS”的预测被认为并未实现;尽管有 TypeScript,人们仍然在写大量纯 JS。
JavaScript、asm.js 与 WebAssembly
- 讲座里“JS 会成为编译目标”的想法在很大程度上成真了:许多语言都会编译到 JS 或 TS。
- asm.js 基本被视为已弃用,取而代之的是 WebAssembly(Wasm);有些人认为这实现了那一预测。
- 但也有人认为 Wasm 反而与该论点相矛盾,因为它明确不是 JS,而是被设计为真正的底层基座。
- 许多人觉得 Wasm 的进展比预期慢;由于无法直接访问 DOM,JS 仍然是必需的胶水代码。
语言语义与怪癖
- 关于使用
null还是undefined的争论:有人会避免把undefined作为有意值;另一些人则认为两者都是语言的基础,并被核心 API 使用。 - 讨论还涉及 IEEE 754
NaN语义,以及经典 JS 怪现象(+0/-0、类型强制转换)到底是缺陷,还是符合标准的行为。 - 有些人不喜欢 JS 这种“变异版 C”式的不一致;也有人说问题不在语法本身。
转译与“JS 即汇编”
- 一种反复出现的模式是:“我们发明一个更好的 JS,然后把它转译成 JS。”
- TypeScript 被广泛视为实际上的 JS 编写方式,尤其是在大型项目中。
- JS 常被描述为 Web 的新汇编层,即便上层使用的是更高级的语言。
Electron、跨平台应用与替代方案
- Electron 因为能用熟悉的网页 UI 最快覆盖 Mac/Windows/Linux 而受到称赞,尽管它很重。
- 批评者提到它占用大量内存以及客户端不稳定;有人甚至把“Electron 应用”视为原生支持差的代名词。
- 提到的替代方案包括:Flutter(对 Web/桌面质量评价不一)、Qt、基于 Rust 的 GUI、基于 Tk 的技术栈,以及纯网页应用。
Web OS 与更宏大的预测
- 有些人认为 WebAssembly 和基于浏览器的技术栈,是走向浏览器/Wasm OS 的一步;也有人指出 ChromeOS 和当前系统并不完全符合这一愿景。
- 演讲中提到的内核级 JS/asm.js 被澄清为虚构;这场演讲被视为推想型虚构。
讲座反响与相关材料
- 这场讲座因其呈现和前瞻性而广受好评,也常被用作演示灵感。
- 相关讲座“wat”和“Boundaries”也经常被推荐和称赞,尽管有人指出其中有少量技术性不准确之处。