首页 › programming › 一个被遗忘的开发者如何拯救了JavaScript

一个被遗忘的开发者如何拯救了JavaScript

导语

2026年5月底,Fireship(421万订阅)发布了一条不到7分钟的视频,标题叫"The forgotten developer who saved JavaScript..."。视频讲的不是Brendan Eich(JavaScript创造者),不是Ryan Dahl(Node.js作者),也不是Dan Abramov(React核心开发者)。它讲的是一个几乎被整个前端社区遗忘的名字——Jeremy Ashkenas。

这个人,一个人,在2009到2011年间,先后创造了Underscore.js、CoffeeScript和Backbone.js三个项目。它们分别解决了JavaScript没有标准库、语法丑陋、前端没有架构三大痛点。更重要的是,这三个项目的理念全部被吸收进了现代JavaScript和现代框架中——arrow function、class、解构赋值、SPA路由、响应式数据绑定……你今天写的每一行JS代码,都有他的影子。

但他从未创建公司,从未建立个人品牌,从未在GitHub上拥有百万粉丝。当他的三个项目逐一被时代淘汰时,他安静地转身,去做数据可视化和互动新闻了。这就是一个"拯救了JavaScript却被遗忘"的故事。

视频背景卡片

项目 内容
视频标题 The forgotten developer who saved JavaScript...
频道 Fireship
时长 约6分29秒
播放量 发布一周内迅速攀升(Fireship平均单视频50万+播放)
核心主题 Jeremy Ashkenas与三大JS基础项目的传奇故事
发布日期 2026年5月29日

核心内容拆解

一、2009年的JavaScript有多糟糕?

要理解Ashkenas的贡献,得先理解他面对的JavaScript是什么样子。

2009年的JavaScript生态,用一个词形容:蛮荒。ES5刚刚发布,但浏览器支持参差不齐。没有let和const,只有var——这意味着变量作用域满天飞。没有箭头函数,写个回调要敲function() {}这几个字母无数遍。没有class,面向对象编程要靠prototype链手动拼接。没有模块系统,所有东西挂在全局变量上。没有Promise,回调地狱(Callback Hell)是每个开发者的日常。

我的延伸分析:当时的前端开发者社区有一种普遍的焦虑——JavaScript"不够严肃"。Python有优雅的语法和标准库,Ruby有Rails生态,Java有企业级工具链。而JavaScript呢?它只是浏览器里用来操作DOM的小脚本语言。这种焦虑直接催生了一个问题:JavaScript配得上"成为一门真正的编程语言"吗?

Jeremy Ashkenas的回答是:不配。但我可以改变它。

二、Underscore.js:给JavaScript装上"标准库"

2009年,Ashkenas发布了Underscore.js。这是一个提供100多个实用函数的工具库,涵盖数组操作(map、filter、reduce、each)、对象操作、函数组合、模板引擎等功能。

在今天看来,这些函数不过是JavaScript原生就有的东西。但在2009年,Array.prototype.map和Array.prototype.filter还没有被主流浏览器广泛支持。Underscore.js实际上做了两件事:

  1. Polyfill:在不支持ES5的浏览器中提供现代数组方法
  2. 范式转移:将函数式编程范式带入了JavaScript社区

视频核心观点:Underscore.js让JavaScript开发者第一次体验到了"数据在管道中流动"的编程体验。你不再需要写for循环和临时变量,而是用_.chain(data).filter(...).map(...).value()这样的链式调用。

我的延伸分析:Underscore.js的影响力远超其代码本身。它直接催生了Lodash——John-David Dalton基于Underscore创建的更高性能分支。Lodash后来成为npm上下载量最大的包之一,而它的一切起点,都是Ashkenas的那100多个函数。更深远的影响是:当ES5的Array方法在2012-2014年逐渐被浏览器原生支持后,开发者发现——这些API的设计,几乎就是Underscore.js的翻版。

三、CoffeeScript:编译出未来

2010年12月,Ashkenas发布了CoffeeScript 1.0。这是一个"编译到JavaScript的小语言",核心理念是:JavaScript的问题不是能力不够,而是语法太丑。

CoffeeScript引入了这些语法特性:

CoffeeScript语法 对应的现代JavaScript
-> 和 => 箭头函数 () => {}
class Animal ES6 class 语法
{name, age} = person 解构赋值
"Hello #{name}" 模板字符串
name? 可选链 name?
args... 展开运算符 ...args

看到这张表了吗?CoffeeScript在2010年就引入了ES6在2015年才标准化的几乎所有语法糖。 Fireship在视频里用一句话概括了这个事实:"CoffeeScript didn't die. It became JavaScript."

视频关键数据:CoffeeScript在GitHub上一度超越jQuery,成为Star数最多的项目。Ruby on Rails的创建者DHH在2011年宣布Rails默认支持CoffeeScript。在Node.js社区,2012-2013年间大量项目使用CoffeeScript编写。

我的延伸分析:CoffeeScript的成功揭示了编程语言演进的一个核心规律——"编译到X"策略。当你无法改变一门语言本身时,你可以创造一个更好的语法,然后编译回去。这个策略后来被反复验证:

CoffeeScript是这个策略在前端领域的第一次大规模成功实践。它的衰落也不是因为失败了,而是因为它的使命完成了——ES6吸收了它的精华,让它在语法层面变得多余。

四、Backbone.js:前端架构的第一块基石

2010年,Ashkenas发布了Backbone.js。如果说Underscore.js给了JavaScript工具,CoffeeScript给了它语法,那Backbone.js给了它架构。

在Backbone之前,前端开发没有统一的架构模式。jQuery时代,开发者把DOM操作、数据获取、事件处理全部混在一起,形成后来被称为"jQuery Soup"的意大利面条代码。

Backbone.js引入了四个核心概念:

Model      → 数据模型(数据+业务逻辑)
Collection → 模型集合(数据列表+排序/过滤)
View       → 视图层(DOM渲染+事件绑定)
Router     → 路由器(URL→视图映射)

视频关键案例:Backbone.js被大量知名产品采用——LinkedIn移动版、Foursquare、Trello、Airbnb、Hulu、SoundCloud、Walmart移动端。它几乎是2011-2013年间复杂前端应用的事实标准。

我的延伸分析:Backbone.js的影响力不在于它自己的代码有多好,而在于它定义了前端架构的讨论框架。它提出了三个至今仍是前端核心的问题:

  1. 数据如何与UI同步? → Backbone的事件驱动模型直接启发了React的单向数据流和Vue的响应式系统
  2. URL如何与应用状态关联? → Backbone Router是所有现代SPA路由的先驱
  3. 组件如何拆分? → Backbone的Model/View分离影响了后来的Flux架构和组件化思想

五、为什么Ashkenas被遗忘了?

Fireship视频最打动人的部分,是讲述Ashkenas的"消失"。

三个项目,每一个都曾统治前端生态。但到了2026年:

三个项目,三种"被取代"的命运。但取代它们的,恰恰是站在它们肩膀上的新一代工具。

Ashkenas本人呢?他没有像Dan Abramov那样加入Meta(React团队),没有像Evan You那样围绕Vue创建公司,也没有像Ryan Dahl那样发布"Deno"来替代自己的Node.js。他在DocumentCloud和《纽约时报》做着数据可视化和互动新闻的工作,获得了2015年Gerald Loeb新闻奖——这是新闻界的最高荣誉之一,和编程社区毫无关系。

我的观点:Ashkenas被遗忘的原因,恰恰也是他最值得尊敬的地方。他创造工具是为了解决问题,而不是为了建立个人帝国。当问题被更好的方案解决后,他安静地离开了。这种"解决问题然后消失"的开发者精神,和今天"先建立个人品牌再开源项目"的模式形成了鲜明对比。

六、一个开发者的蝴蝶效应

让我用一条影响链来展示Ashkenas的工作如何改变了整个技术世界:

Underscore.js (2009)
  → 前端社区接受函数式编程
  → Lodash fork → npm最大包之一
  → 原生Array方法的设计参照

CoffeeScript (2010)
  → 证明"编译到JS"策略可行
  → TypeScript采用相同策略
  → ES6/ES2015吸收其语法
  → 今天所有JS开发者都在用它的遗产

Backbone.js (2010)
  → 定义前端架构讨论框架
  → 直接影响Angular (2010)、Ember (2011)
  → 启发React (2013)的数据流思想
  → SPA路由成为所有框架标配

知识结构图

mindmap
  root((Jeremy Ashkenas的遗产))
    Underscore.js 2009
      函数式编程范式
      100+工具函数
      催生Lodash
      影响ES5 Array API设计
    CoffeeScript 2010
      编译到JS策略
      箭头函数 → ES6
      class语法 → ES6
      解构赋值 → ES6
      模板字符串 → ES6
      启发TypeScript
    Backbone.js 2010
      前端MVC架构
      Model/View/Router
      SPA路由先驱
      启发React数据流
      影响所有现代框架
    被遗忘的原因
      不建个人品牌
      不创建公司
      转向数据新闻
      获Gerald Loeb新闻奖

实战启示:给2026年开发者的四条思考

1. 最好的工具是让自己过时的工具

Ashkenas的三个项目都"死"了,但它们的理念全部活了下来。这揭示了一个深刻的工程哲学:你创造的工具最高级的形态,是成为基础设施的一部分,让使用者甚至不知道你的存在。 就像你每天用TCP/IP上网,但没人记得发明TCP的具体工程师。Underscore的map/filter变成了原生方法,CoffeeScript的箭头函数变成了JS语法——它们的消亡恰恰是成功的证明。

2. "编译到X"是最强大的技术杠杆

CoffeeScript验证的策略,至今仍是突破语言限制的最有效手段。TypeScript、JSX、Sass、Tailwind CSS——全部采用了"编译到下层语言"的方式。如果你在设计一个新工具或DSL,先问自己:能不能编译到已有的东西上? 这比从零开始构建整个生态要高效一万倍。

3. 解决问题比建立品牌更有价值

Ashkenas从未在Twitter上经营"JavaScript之父"的人设,从未创建SaaS公司把开源项目商业化,从未在会议上巡回演讲。他写代码解决问题,问题解决后就去做下一件事。在2026年"开发者网红"满天飞的时代,这种纯粹的工具创造者精神值得重新审视。

4. 每一个"理所当然"的背后都有人

你今天写的const fn = () => {},背后是CoffeeScript在2010年的大胆实验。你用的router.push('/home'),背后是Backbone.js在2010年定义的SPA路由概念。你调用的array.filter(x => x > 0),背后是Underscore.js在2009年带来的函数式编程启蒙。了解这些历史,不只是情怀——它能帮你理解为什么今天的技术栈是这个样子,从而在未来做更好的技术选择。

延伸学习路径

  1. CoffeeScript, the Rise of "Build Your Own JavaScript" — Jeremy Ashkenas本人在InfoQ上的演讲,亲自讲述CoffeeScript的设计哲学
  2. The history of Single Page Apps: From jQuery to React — 从jQuery到React的完整SPA演进史,理解Backbone.js的历史位置
  3. Jeremy Ashkenas - Wikipedia — 某百科条目,包含完整的生平和项目时间线
  4. The Developer Who Quietly Saved JavaScript — Zeebrain的深度分析文章,26000+字的详细技术解读
  5. Fireship原视频 — 6分29秒的高密度讲述,值得反复观看

一句话总结

Jeremy Ashkenas用三个项目教会了JavaScript社区什么是函数式编程、什么是优雅语法、什么是前端架构——当ES6把这些全部变成原生特性时,他安静地转身去拿了一个新闻奖,连告别都省了。

参考来源

  1. The forgotten developer who saved JavaScript... — Fireship — 本文分析的核心视频
  2. The Developer Who Quietly Saved JavaScript — Zeebrain — Jeremy Ashkenas技术影响的详细分析
  3. The Unsung Hero Who Revitalized JavaScript — Frank's World — 延伸解读文章
  4. CoffeeScript, the Rise of "Build Your Own JavaScript" — InfoQ — Ashkenas本人的技术演讲

本文由「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学通信知识星球海报-扫码加入