首页 › programming › 拯救JavaScript的被遗忘英雄:Crockford如何重塑Web

拯救JavaScript的被遗忘英雄:Crockford如何重塑Web

导语

每个程序员都知道 Brendan Eich——那个用10天写出 JavaScript 的传奇人物。但几乎没人提到过另一个人:没有他,你今天大概不会在用 JavaScript 写代码。2026年5月30日,Fireship(YouTube 300万+订阅的编程顶流频道)发布了一条6分29秒的视频《The Forgotten Developer Who Saved JavaScript》,24小时内冲上143万播放,直指一个被编程史遗忘的关键人物——Douglas Crockford。

这个人的贡献有多炸裂?他发明了 JSON(没错,就是现在每天传输数十亿次的那个数据格式),他写了第一本让开发者认真对待 JS 的书,他创建了第一个 JS 代码检查工具。在 JavaScript 还被当作"玩具语言"的黑暗年代,Crockford 是那个站出来说"这语言有救"的人。Fireship 这条视频虽然只有6分钟,但信息密度极高,把 JavaScript 从"过街老鼠"到"世界主宰"的转折点讲得清清楚楚。这篇文章,我们把它彻底拆开,再补上视频来不及讲的故事。

视频背景卡片

项目 内容
视频标题 The Forgotten Developer Who Saved JavaScript
频道 Fireship (Jeff Delaney)
时长 6分29秒
播放量 143万+ (发布24小时内)
核心主题 Douglas Crockford 如何通过 JSON、"JavaScript: The Good Parts"等贡献拯救了 JavaScript

核心内容拆解

一、JavaScript 的"黑暗时代":1995-2005

视频开篇就点明了一个残酷事实:JavaScript 在诞生后的前10年里,是全行业公认的"垃圾语言"。

这不是偏见。JavaScript 从设计之初就带着原罪——Brendan Eich 在1995年仅用10天就完成了初版实现,为了赶 Netscape Navigator 2.0 的发布期限。结果?全局变量泄漏、隐式类型转换、== vs === 的混乱、with 语句的灾难性设计、prototype 继承让人摸不着头脑……这些问题让 Java、C++、Python 背景的程序员对 JS 嗤之以鼻。

视频特别提到了几个让开发者抓狂的经典案例:[] == ![] 返回 true,"1" + 1 得到 "11" 而不是 2,typeof null 返回 "object"(这个 bug 到2026年都没修复)。在1990年代末到2000年代初,"JavaScript 程序员"几乎是一种侮辱——这意味着你不是"真正的程序员"。

我的延伸分析:视频没有深入讲的是,JavaScript 的糟糕声誉部分源于浏览器大战。IE 和 Netscape 各自实现不同版本的 JS(JScript vs JavaScript),跨浏览器兼容简直是噩梦。开发者花在 document.all vs document.getElementById 上的时间,比写业务逻辑还多。jQuery 后来之所以能横扫天下,正是因为 John Resig 用一层优雅的 API 抹平了这些差异。但真正为 JavaScript 奠定理论基础的人,不是 Resig——而是 Crockford。

二、Crockford 的"异端"发现:JavaScript 里有好东西

视频的核心转折点:2001年,Douglas Crockford 做了一件没人做过的事——他认真读完了 ECMAScript 规范文档。

听起来不可思议对吧?但当时确实没人认真对待这份规范。ECMAScript 标准文档被公认"质量极差"、"难以阅读"、"令人费解"(这是 Crockford 本人的评价)。但就在这份混乱的规范中,Crockford 发现了一个惊人的事实:JavaScript 的设计并非全是垃圾,它里面藏着一门优秀的函数式编程语言。

具体来说,Crockford 发现了 JavaScript 中被忽视的宝藏: - 一等函数(First-class functions):函数可以作为参数传递、作为返回值、赋值给变量 - 闭包(Closures):函数可以记住创建时的词法作用域 - 对象字面量(Object literals):无需类定义就能创建对象 - 动态类型(Dynamic typing):灵活但需要纪律约束 - 原型继承(Prototypal inheritance):比经典继承更强大,只是被误解了

2008年,Crockford 将这些发现集结成书——《JavaScript: The Good Parts》。这本书只有170页,却彻底改变了整个行业对 JavaScript 的看法。O'Reilly 出版,ISBN 978-0-596-51774-8,至今仍是 JavaScript 开发者的必读书目。

我的延伸分析:这本书的影响力怎么高估都不为过。在它出版之前,"学习 JavaScript"意味着学习所有语法特性(包括大量设计失误)。Crockford 的革命性观点是:你不需要学完整语言,你只需要学好的部分,主动避开坏的部分。这种思路直接催生了后来的 ESLint、TypeScript 的严格模式、甚至影响了 ES6+ 的设计哲学——新标准实际上是在把 "The Good Parts" 编入语言本身。

三、JSON:改变互联网的数据格式

视频花了相当篇幅讲述 Crockford 最具影响力的发明——JSON(JavaScript Object Notation)。

2001年,Crockford 在 State Software(一家创业公司)工作期间,正在寻找 XML 的替代方案。当时的 Web 服务几乎全部使用 XML/SOAP 进行数据交换,但 XML 的冗余标签和复杂解析让开发者苦不堪言。Crockford 意识到 JavaScript 的对象字面量语法天然就是一种数据描述格式——它比 XML 简洁得多,且 JavaScript 可以直接 eval() 解析(虽然后来证明这有安全隐患)。

2002年,Crockford 注册了 json.org 域名,发布了 JSON 的规范。2006年7月,JSON 被正式标准化为 RFC 4627。今天?JSON 是全球使用最广泛的数据交换格式,没有之一。从 REST API 到 NoSQL 数据库(MongoDB、CouchDB),从配置文件到流式传输,几乎所有的现代 Web 应用都在使用 JSON。

一个有趣的细节:Crockford 曾给自己的软件 JSMin 加了一个特殊的许可证条款——"The Software shall be used for Good, not Evil"(本软件仅可用于善事,不可用于恶事)。这个条款导致 JSON 的 Java 实现一度不被认为是"开源软件",甚至被 Google Code 拒绝托管。直到2022年,Crockford 才将 JSON 的 Java 实现改为公共领域许可。

四、JSLint 和 JSMin:工具链的先驱

视频还提到了 Crockford 的另外两个重要贡献:

JSLint(2002年)——这是有史以来第一个 JavaScript 静态代码分析工具。在 JSLint 之前,JavaScript 没有任何形式的质量检查工具。JSLint 强制执行严格的代码规范,禁止使用 ==(必须用 ===),禁止使用 with 语句,要求所有变量先声明后使用。虽然 JSLint 以"固执"著称(Crockford 本人曾说 "JSLint will hurt your feelings"),但它开创了 JavaScript 代码质量工具的先河,直接影响了后来的 JSHint 和 ESLint。

JSMin(2003年)——第一个 JavaScript 代码压缩工具。它移除代码中的空白和注释,大幅减小文件体积。在没有 Webpack、Vite、esbuild 的年代,JSMin 是前端性能优化的必备工具。

我的延伸分析:今天我们习以为常的整个 JavaScript 工具链——linter、minifier、bundler——它们的哲学源头都可以追溯到 Crockford。他不仅发现了 JavaScript 的"好部分",还构建了工具来帮你只写"好部分"。这种"通过工具强制代码质量"的思路,后来被 ESLint、Prettier、TypeScript 编译器继承并发扬光大。

五、Crockford 的思想遗产:从 "Good Parts" 到现代 JavaScript

视频最精彩的部分是展示了 Crockford 的思想如何渗透到现代 JavaScript 的每个角落:

ES5 Strict Mode(2009年):"use strict" 的引入直接受到了 Crockford "避开坏部分"理念的影响。严格模式禁止了 with 语句、禁止未声明的变量赋值、禁止八进制字面量——这些全是 Crockford 在《The Good Parts》中指出的问题。

ES6+ 的设计哲学:let/const 取代 var(解决变量提升问题)、箭头函数(简化函数表达式)、class 语法(更清晰的构造器模式)、Promise(取代回调地狱)——每一个特性都是在消除 Crockford 标记出的"坏部分"。

TypeScript 的崛起:Anders Hejlsberg 在设计 TypeScript 时大量借鉴了 Crockford 的理念——通过类型系统来约束 JavaScript 的"坏部分",同时保留"好部分"的灵活性。

mindmap
  root((Douglas Crockford 的遗产))
    理论贡献
      JavaScript: The Good Parts (2008)
        识别语言中的优秀子集
        "只学好部分,避开坏部分"
        影响 ES6+ 设计哲学
      深入解读 ECMAScript 规范
        发现函数式编程内核
        重新定义 prototype 继承价值
    工具发明
      JSON (2001-2002)
        全球最广泛使用的交换格式
        取代 XML 成为 Web 标准
        RFC 4627 / RFC 8259
      JSLint (2002)
        第一个 JS 静态分析工具
        "会伤害你的感情"
        催生 JSHint → ESLint 生态
      JSMin (2003)
        第一个 JS 代码压缩工具
        开创前端性能优化领域
    对现代开发的影响
      ES5 Strict Mode
      let/const 取代 var
      TypeScript 的设计理念
      ESLint/Prettier 工具链

六、为什么 Crockford 被遗忘了?

视频提出了一个引人深思的问题:为什么 Brendan Eich 无人不知,而 Douglas Crockford 却鲜为人知?

答案是多方面的:

  1. "救火队员"不如"创始人"吸睛。创造一个新语言(Eich)天然比拯救一个现有语言(Crockford)更有叙事吸引力
  2. Crockford 不爱出风头。他在2019年从 PayPal 退休后,几乎淡出了公众视野,不像其他技术大佬那样活跃在社交媒体
  3. JSON 太成功了,以至于人们忘记了它的发明者。就像没有人会感谢 HTTP 的设计者一样
  4. 争议性。Crockford 的 "Good, not Evil" 许可证争议、对经典面向对象的激进批评、以及一些被认为过时的观点,让他在某些社区中的形象变得复杂

七、JavaScript 的今天:Crockford 梦想的实现?

2026年的 JavaScript 已经是全球使用率最高的编程语言。npm 上有超过300万个包,JavaScript 运行在浏览器、服务器、移动端、嵌入式设备甚至数据库里。

Crockford 当年标出的"坏部分"——var、with、全局变量泄漏、隐式类型转换——在现代 JavaScript 中要么已被废弃,要么有了更好的替代方案。他标出的"好部分"——一等函数、闭包、对象字面量——如今是每个开发者的基本功。

但 Fireship 在视频结尾留下了一个值得深思的观点:JavaScript 的成功不仅归功于某一个"拯救者",而是整个社区共同努力的结果。Crockford 点燃了火种,但让 JavaScript 成为今天的样子的,是数百万开发者和无数开源贡献者的集体智慧。

知识结构图

flowchart TB
    subgraph 黑暗时代["JavaScript 黑暗时代 1995-2005"]
        A1["Brendan Eich<br>10天写出 JavaScript"] --> A2["浏览器大战<br>IE vs Netscape"]
        A2 --> A3["语言设计缺陷<br>全局变量/隐式转换/with"]
        A3 --> A4["业界共识:<br>JS 是玩具语言"]
    end

    subgraph 转折点["Crockford 的转折 2001-2008"]
        B1["2001: 深读 ECMAScript 规范"] --> B2["2002: 发明 JSON"]
        B1 --> B3["2002: 创建 JSLint"]
        B1 --> B4["2003: 创建 JSMin"]
        B2 --> B5["2006: JSON 标准化 RFC 4627"]
        B4 --> B6["2008: 出版 Good Parts"]
        B6 --> B7["核心观点:<br>JS有优秀的内核<br>只需避开坏部分"]
    end

    subgraph 影响["对现代开发的影响"]
        C1["ES5 Strict Mode<br>2009"]
        C2["ES6+ 新特性<br>let/const/箭头函数/Promise"]
        C3["工具链进化<br>JSHint → ESLint → Prettier"]
        C4["TypeScript<br>Anders Hejlsberg"]
        C5["JSON 成为<br>Web 交换标准"]
    end

    A4 --> B1
    B7 --> C1
    B7 --> C2
    B3 --> C3
    B6 --> C4
    B2 --> C5

    style 黑暗时代 fill:#2d1b1b,stroke:#ff6b6b,color:#fff
    style 转折点 fill:#1b2d1b,stroke:#51cf66,color:#fff
    style 影响 fill:#1b1b2d,stroke:#339af0,color:#fff

实战启示

对 JavaScript 开发者的启示

  1. 掌握"好部分"就够了。如果你还在用 var、还在写 == 比较、还在忽略闭包和一等函数——2026年了,这些都是 Crockford 20年前就告诉我们要避开的"坏部分"。把代码里的 var 全部替换成 const 或 let,用 === 代替 ==,这些小改变就是 Crockford 精神的最佳实践。

  2. 理解工具链的哲学根源。每次你用 ESLint 规则禁止某种写法时,你实际上在践行 Crockford 的理念——通过工具来强制代码质量。下次配置 .eslintrc 时,记得这个哲学的源头。

  3. JSON 不只是数据格式,更是一种设计哲学。Crockford 选择 JSON 的核心理由是简洁。在做 API 设计时,问问自己:我的数据结构是否像 JSON 一样简洁明了?过度复杂的数据格式是技术债的温床。

对所有程序员的启示

  1. 深入理解你使用的工具。Crockford 最大的贡献来自他认真读完了没人愿意读的 ECMAScript 规范。在2026年,有多少开发者真正读过 HTTP/2 RFC、WebAssembly 规范、或者你正在使用的框架的源代码?深入底层,才能发现别人看不到的价值。

  2. "Less is More" 的编程哲学。Crockford 的核心思想是:一个语言不需要所有特性都好,只要好的部分足够强大就行。这个思路同样适用于架构设计、API 设计、甚至产品功能设计——学会做减法。

  3. 历史感让你成为更好的工程师。了解 JavaScript 为什么长成今天这个样子,能帮你理解为什么 typeof null === "object" 不是一个 bug 而是一个历史遗留问题,为什么 Array.isArray() 比 instanceof Array 更可靠,为什么 Promise 比回调更好。知其然更知其所以然。

延伸学习路径

  1. JavaScript: The Good Parts — Douglas Crockford 的经典著作,170页,2026年读来依然醍醐灌顶
  2. Crockford on JavaScript - Google Tech Talks — Crockford 在 Google 的系列讲座,深入讲述 JavaScript 的设计哲学
  3. JavaScript: The World's Most Misunderstood Programming Language — Crockford 的个人网站,收录了他关于 JavaScript 的所有文章
  4. ECMAScript 规范 — 像Crockford一样,认真读一遍规范,你会发现很多被忽视的宝藏
  5. 30 Years of JavaScript: 10 Milestones — 2025年 JavaScript 30周年回顾,完整的时间线梳理

一句话总结

Douglas Crockford 不是创造了 JavaScript 的人,但他是让 JavaScript 值得使用的人——他教会了一个行业如何从一门混乱的语言中提炼出优雅的内核。

参考来源

  1. The Forgotten Developer Who Saved JavaScript - Fireship — 本文分析的核心视频
  2. Big Thinkers: Douglas Crockford - Build5Nines — Crockford 的深度介绍
  3. 30 Years of JavaScript - The New Stack — JavaScript 30年里程碑
  4. In 1995, a Netscape employee wrote a hack in 10 days - Ars Technica — JavaScript 诞生背景
  5. Trending Developer YouTube Channels & Videos — May 2026 - Developer Educators — 热门开发者视频数据

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