2014 年,Gary Bernhardt 在 PyCon 做了一场题为《The Birth & Death of JavaScript》的演讲。形式很怪:科幻、喜剧,还把时间线一路讲到虚构的 2035。
但这场演讲不只是段子。它真正抓住的是 JavaScript 身上最反常的一点:这门语言从 1995 年开始背着一身历史包袱往前跑,被吐槽了很多年,却成了 Web 时代绕不开的基础设施。
这场演讲讲的不是预言,是一则技术史寓言
先把事实锚住。2035 不是新闻预测,也不是路线图。它是 Bernhardt 用来讲故事的未来框架,目的还是回看 JavaScript 和编程行业的演化。
| 问题 | 答案 |
|---|---|
| 谁讲的 | Gary Bernhardt |
| 在哪里 | PyCon 2014 |
| 题目 | The Birth & Death of JavaScript |
| 形式 | 科幻、喜剧,但带严肃判断 |
| 时间跨度 | 从 1995 到虚构的 2035 |
| 核心态度 | 不站队支持或反对;谈缺陷,也承认巨大影响 |
这场演讲今天还值得看,因为它没有把 JavaScript 写成神话,也没有写成笑话。它承认缺陷,同时承认结果:JavaScript 对行业的影响很大,而且总体偏正面。
这也是很多技术讨论最容易拧巴的地方。开发者会自然关心语言是不是干净、行为是不是直观、工具是不是顺手。这些当然重要。坏设计会变成每天的成本。
但产业不按审美发奖。
JavaScript 的胜利,核心不在语言设计多漂亮,而在它站上了 Web 这个入口。浏览器既是运行环境,也是分发渠道。只要 Web 扩张,JavaScript 就会被一起带大。
缺陷没消失,生态把它包起来了
JavaScript 的反常性在于:它的问题长期存在,但它的位置太关键。缺陷没有被魔法消灭,而是被工具链、框架、库、教程、招聘市场和团队经验一层层包住。
到某个阶段,选择 JavaScript 不一定是因为它最好。更常见的理由是:不选它的成本太高。
这和早期铁路、电力、报业有点像,不完全一样,但结构相似。早期标准混乱、利益交错、体验粗糙,并不妨碍它们成为基础设施。基础设施一旦铺开,社会会围着它重新组织。
“天下熙熙,皆为利来。”放进技术生态也不突兀。语言之争表面是品味,底层常常是入口、岗位、迁移成本和平台控制权。
对前端和全栈开发者来说,这个判断很实际:不要只按语法洁癖选技术。新项目可以追求更好的开发体验,但只要目标仍是浏览器和 Web 用户,JavaScript 生态就很难被绕开。
对团队技术选型来说,动作也很明确:已有项目别因为“语言不优雅”就轻易迁移。迁移不是改几行语法,而是重建工具链、招聘口径、测试体系和线上风险管理。除非收益能覆盖这些成本,否则多半只是把旧问题换成新问题。
对关心编程语言史的人,这场演讲给的教训更冷一点:技术胜利不等于技术完美。赢家身上常有偶然、绑定、惯性和商业激励。JavaScript 只是把这件事摊得很开。
真正该盯的是入口,而不是口水仗
我不太买账的一类讨论,是把 JavaScript 的命运压成“好语言还是坏语言”。这个问题太窄。它能解释一部分开发体验,解释不了产业结果。
更关键的变量只有两个。
一是 Web 入口还够不够强。只要浏览器仍是用户触达的核心场景,JavaScript 就还站在渡口。新的语言、新的框架、新的运行时可以改善体验,但很难单靠优雅推翻入口。
二是生态滚雪球还转不转。工具、库、文档、社区、招聘、存量项目,这些东西看起来零散,合在一起就是护城河。护城河不浪漫,但管用。
也要承认限制。生态强不代表开发者就该无脑拥抱一切 JavaScript 方案。生态越大,噪音也越大。框架更新、构建复杂度、依赖维护,都会把“基础设施红利”变成日常负担。
所以更现实的做法不是崇拜 JavaScript,也不是嘲笑 JavaScript。个人学习要看入口和岗位密度;团队选型要看迁移成本和维护能力;评估新技术要看它能不能进入真实分发链路,而不是只看语法截图。
回到 Bernhardt 那场演讲,最有意思的从来不是“JavaScript 会不会死”。2035 只是一个喜剧壳子。
真正的问题是:一个满身缺陷的东西,为什么能活成基础设施。
答案不浪漫。入口决定第一轮命运,生态决定后半场生死。JavaScript 的故事,就是技术工业里一次很典型的现实胜利。
