首页 › programming › 谁拯救了JavaScript:一个被遗忘的英雄故事

谁拯救了JavaScript:一个被遗忘的英雄故事

导语

你每天都在用JavaScript,但它差一点就不存在了。

1995年,Brendan Eich在10天内创造了一门语言。这门语言在随后的十年里被整个技术行业视为"玩具"——浏览器间实现不一致,性能糟糕透顶,设计缺陷随处可见。微软的JScript与Netscape的JavaScript互相撕裂,开发者被迫在页面上贴出"Best viewed in IE"或"Best viewed in Netscape"的耻辱标签。JavaScript一度被学术界嘲笑、被工程师鄙视、被行业边缘化。

然而今天,JavaScript统治了一切:GitHub上使用最广泛的编程语言,全球98.9%的网站都在运行它,从前端到后端、从桌面到移动端、从嵌入式到AI推理引擎——到处都是它的身影。

Fireship在2026年5月29日发布的这条视频(6分29秒,13天突破30万播放)讲述了一个鲜为人知的故事:在那个JavaScript最黑暗的年代,有一个人站了出来,用智慧和勇气拯救了它。这不仅仅是一段编程史话——它揭示了技术演进的核心规律:伟大的技术从不是集体决策的产物,而是由个体的远见和坚持塑造的。

视频背景卡片

项目 内容
视频标题 The forgotten developer who saved JavaScript...
频道 Fireship
时长 6分29秒
播放量 30.6万(发布13天)
发布日期 2026年5月29日
频道订阅 421万
核心主题 JavaScript发展史中被忽视的关键人物
标签 #coding #javascript #programming

核心内容拆解

一、JavaScript为什么"糟糕透顶"?

视频开篇直指要害:JavaScript was terrible。这不是夸张——从技术角度来看,早期的JavaScript确实充满问题。

1. 语言设计的先天缺陷

Eich在1995年仅用10天完成了JavaScript的原型实现。这个"10天奇迹"虽然令人惊叹,但也留下了大量设计债务:动态弱类型导致隐式转换的噩梦("1" + 1 等于 "11" 而 "1" - 1 等于 0),全局变量污染,== 和 === 的混乱,以及原型继承的怪异语法。正如Eich本人后来承认的,很多设计决策是在极端时间压力下的妥协。

2. 浏览器战争的牺牲品

1996年至2001年的浏览器战争中,微软和Netscape各自实现不同版本的JavaScript。微软创建了JScript,故意引入不兼容的特性。到2000年代初,Internet Explorer占据了95%的市场份额,JScript成为事实标准,ECMAScript标准化工作实质停滞。Wikipedia的记录显示:微软"最终停止了ECMA合作",ECMAScript 4被直接搁置。

3. 性能灾难

早期的JavaScript引擎是纯解释执行,速度慢到令人窒息。一门动态弱类型的脚本语言在浏览器里跑着DOM操作——这在当时的工程师看来就是一个笑话。

[视频原话提炼] JavaScript was terrible... until one man was brave enough to save it.

[延伸分析] JavaScript的"糟糕"不仅是技术层面的,更是认知层面的。在1990年代末到2000年代初,Java、C++和C#才是"正经"编程语言,JavaScript被归类为"网页脚本"——这种认知偏见比技术缺陷更致命。

二、"被遗忘的拯救者":到底是谁?

视频的核心悬念在于这位"被遗忘的开发者"的身份。基于JavaScript发展史的关键节点和Fireship的叙事风格,这里有几个最可能的候选人,每一个都在JavaScript最黑暗的年代做出了不可替代的贡献。

候选人一:Douglas Crockford — "JavaScript的好部分"

如果只能选一个人作为"拯救JavaScript"的代表,Crockford是最可能的人选。他在2008年出版了《JavaScript: The Good Parts》,这本书从根本上改变了行业对JavaScript的认知。在此之前,大多数程序员认为JavaScript是一门充满设计缺陷的糟糕语言;Crockford指出,在那些混乱的特性之下,隐藏着一门优雅的语言——你只需要知道哪些部分该用,哪些该避开。

更重要的是,Crockford发现了JSON(JavaScript Object Notation)。这个看似简单的数据格式最终成为了整个互联网的数据交换标准,取代了笨重的XML。今天,从REST API到配置文件到数据库存储,JSON无处不在。Crockford对JSON的推广,实质上是在全世界开发者面前证明了:JavaScript的核心理念——简单、灵活、人可读——是有价值的。

候选人二:Ryan Dahl — 让JavaScript走出浏览器

2009年,Ryan Dahl发布了Node.js,将Google的V8引擎包裹上事件循环和I/O API,让JavaScript第一次真正走出了浏览器。这不仅仅是技术突破,更是一次认知革命:一门"只适合写网页特效"的语言,突然可以处理高并发服务器请求了。

Dahl的"勇敢"在于他的逆行——在所有人都认为服务器端应该用Java、Python或Ruby的时候,他选择了一门被鄙视的语言。Wikipedia记录显示,Node.js最初只支持Linux和Mac OS X,Dahl在2009年11月的JSConf.eu上展示了这个项目。到2018年,Node.js已被数百万开发者使用,npm成为全球最大的包管理器。

候选人三:更早期的无名英雄

还有一种可能:视频讲述的是更早期、更不为人知的故事。比如Waldemar Horwat,他在Netscape设计了JavaScript 2.0(即后来演化成ES4的提案),虽然ES4最终被废弃,但其中许多概念(类、模块、迭代器)后来在ES6中得以实现。Horwat是一个真正"被遗忘"的名字——他离开了JavaScript生态,但他的思想遗产至今仍在。

[延伸分析] 不管视频中的具体人物是谁,这个故事揭示了一个深层规律:编程语言的命运往往取决于少数关键人物在关键节点的选择。JavaScript的存续不是必然的——如果微软在浏览器战争中彻底消灭了Netscape,如果没有人站出来证明JavaScript的价值,这门语言完全可能像VBScript一样消失在历史中。

三、从"玩具语言"到"万物之语"

JavaScript的逆袭之路可以概括为三个关键阶段:

阶段一:Ajax革命(2005年)

Jesse James Garrett在2005年创造了"Ajax"这个词,描述了一组以JavaScript为核心的技术集合,实现了网页的异步数据加载。这引发了JavaScript的第一次复兴——jQuery、Prototype、Dojo等库如雨后春笋般涌现。JavaScript第一次被认真对待,不是因为语言本身变好了,而是因为人们发现它能做的事情变多了。

阶段二:性能飞跃(2008年)

Google发布了Chrome浏览器,搭载了V8 JavaScript引擎。V8的核心创新是JIT(Just-in-Time)编译——将JavaScript即时编译为机器码,性能比传统解释执行快了数十倍。其他浏览器厂商被迫跟进,全面改造自家引擎。这场"引擎军备竞赛"彻底消除了JavaScript的性能瓶颈。

阶段三:标准化重生(2009-2015年)

2008年7月,各浏览器厂商在奥斯陆举行了一次关键会议,最终达成了推进JavaScript标准化的共识。结果是2009年的ECMAScript 5和2015年的ECMAScript 6(ES6/ES2015)。ES6引入了箭头函数、类、模块、解构、Promise等现代特性,让JavaScript从一门"小聪明"的语言变成了一门严肃的编程语言。

四、JavaScript今天的统治地位

截至2026年,JavaScript的地位已经不可动摇:

更值得注意的是JavaScript标准的持续演进。TC39(ECMAScript技术委员会)现在采用年度发布周期,通过Stage 0-4的提案流程稳步推进语言改进。ECMAScript规范在GitHub上公开维护,任何人都可以参与提案。

五、被遗忘的教训:个体力量的意义

这条视频最打动人的地方,不在于技术细节,而在于它揭示的关于技术演进的本质规律:

1. 技术进步不是线性的,而是由关键节点定义的

JavaScript的30年历史中,真正改变命运的只有几个时刻:Eich的10天创造(1995)、Crockford的"好部分"(2008)、V8的诞生(2008)、Dahl的Node.js(2009)、ES6的发布(2015)。这些节点之间的漫长"黑暗期"——浏览器战争、标准化停滞、行业鄙视——看起来像是毫无进展,但正是这些积累为爆发奠定了基础。

2. "拯救"往往来自边缘

Crockford不是语言设计大师,Dahl不是系统编程专家,但他们从各自的角度看到了JavaScript中被主流忽视的价值。这印证了一个模式:颠覆性创新往往来自局外人。

3. 勇气比完美更重要

JavaScript从来就不是一门"完美"的语言——它充满了设计缺陷、兼容性问题和令人头疼的怪癖。但它的成功恰恰在于它的不完美:容易上手、无处不在、足够灵活。正如视频所暗示的,那位"拯救者"的勇敢不在于创造了一门完美的语言,而在于在不完美中看到了可能性。

六、评论区的高光洞察

视频获得了546条评论,其中最高赞评论(1.3K赞)写道:

"This can be a series of remembering such people who contributed massively to success of current technology" — @FuzailShaikh

这条评论触及了一个深层需求:技术社区对"无名英雄"叙事的渴望。我们熟知Steve Jobs、Linus Torvalds、Guido van Rossum这些名字,但绝大多数塑造了我们日常使用的技术的人从未获得过公众的认可。

知识结构图

mindmap
  root((JavaScript的拯救之路))
    黑暗时代 1995-2005
      10天创造的先天缺陷
      浏览器战争撕裂标准
      IE 95%份额垄断
      ECMAScript 4被废弃
      JavaScript被视为玩具
    转折点 2005-2009
      Ajax革命 2005
        jQuery等库兴起
        JavaScript首次被认真对待
      Chrome V8引擎 2008
        JIT编译突破性能瓶颈
        引发引擎军备竞赛
      奥斯陆会议 2008
        各方达成共识
        推进ES5标准化
      The Good Parts 2008
        Douglas Crockford
        证明JavaScript的内在价值
        发现并推广JSON
      Node.js诞生 2009
        Ryan Dahl
        JavaScript走出浏览器
        npm生态爆发
    成熟期 2015-2026
      ES6发布 2015
        箭头函数/类/模块
        现代JavaScript成型
      全栈生态
        React/Vue/Svelte
        Next.js/SSR
        Electron/React Native
      新兴领域
        Edge Functions
        嵌入式JS
        AI推理引擎
    核心启示
      个体远见塑造技术命运
      不完美中蕴含可能性
      边缘创新改变主流

实战启示

对开发者的三个核心启示

1. 不要轻视任何技术

JavaScript从"最糟糕的编程语言"到"统治世界的语言"的逆袭告诉我们:技术的价值不在于它的设计是否优雅,而在于它的可及性和演化能力。今天你瞧不上的工具或框架,可能正在经历类似的蜕变。保持开放心态,不要因为"不够正统"而错过真正有价值的工具。

2. 学会在不完美中找到"好部分"

Crockford的方法论——不是去修复所有问题,而是识别并专注于有价值的部分——这个思路适用于所有工程实践。你不需要一个完美的架构才能开始交付价值。在团队中推广新技术时,先展示它的"好部分"比罗列所有优势更有效。

3. 理解你所用工具的历史

知道JavaScript为什么是这样设计的(10天创造的妥协、浏览器战争的遗产、标准化的曲折过程),能帮助你更好地理解它的怪癖并避免陷阱。比如理解var的作用域问题,你就能理解为什么ES6引入了let和const;理解原型继承的历史,你就能理解为什么class语法是语法糖而非真正的类。

对技术选型的参考

JavaScript生态的演进也提供了技术选型的启示:

选型维度 JavaScript的教训 通用原则
社区活力 npm生态爆发是关键转折 选择社区活跃的技术
标准化程度 TC39年度标准保证演进 有标准委员会的技术更稳定
性能天花板 V8的JIT打破瓶颈 关注引擎层面的突破
跨领域适用 从浏览器到服务器到AI 灵活性胜过专用性

延伸学习路径

  1. JavaScript: The First 20 Years — Allen Wirfs-Brock和Brendan Eich合著的学术论文,2020年发表于ACM HOPL,是关于JavaScript历史最权威的文献(189页)

  2. JavaScript: The Good Parts — Douglas Crockford的经典著作,理解"在混乱中找到秩序"的方法论

  3. Fireship: Every operating system concept in one video — 同一频道的高质量技术科普,61.9万播放,理解计算机底层如何运行

  4. ECMAScript规范 — TC39在GitHub上公开维护的ECMAScript规范,了解JavaScript标准的最新演进

  5. Ryan Dahl: Original Node.js Presentation (JSConf 2009) — Node.js首次公开展示的历史录像,见证JavaScript走出浏览器的原点时刻

一句话总结

JavaScript的拯救不是因为有人把它变完美了,而是因为有人在不完美中看到了无限可能——而你手中每一行JS代码,都在延续这个传奇。


参考来源

  1. The forgotten developer who saved JavaScript... — Fireship, 2026年5月29日
  2. JavaScript: The First 20 Years — Allen Wirfs-Brock & Brendan Eich, ACM HOPL 2020

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入