JavaScript 今天30 岁了,但连自己的名字都不属于自己
12 月 4 号,JavaScript 迎来 30 岁生日。
一门 10 天赶出来的语言,现在跑在 98.9% 的网站上,有 1650 万开发者在用它。从浏览器脚本到服务端运行时,从桌面应用到移动端,甚至嵌入式设备都有它的身影。TIOBE 2024 年度编程语言排行榜上,JavaScript 排第 6。
但 30 周年这天,社区没怎么庆祝。大家更关心的是另一件事:JavaScript 这个名字,到底能不能从 Oracle 手里抢回来。
10 天写出来的语言
1995 年 5 月,Netscape 的工程师 Brendan Eich 接到一个任务:给浏览器加一门脚本语言。
时间表很紧——Navigator 2.0 Beta 版要发布了,必须赶上。
Eich 花了 10 天(据他回忆是 5 月 6 日到 15 日),搞出了第一个原型。这不是夸张,是真的 10 天。
他后来自己说:
当你看我 10 天写的东西,它像一颗种子。是一种有力的妥协,但仍然是一个非常强大的内核,后来长成了一门更大的语言。
这门语言最开始叫 Mocha,后来改叫 LiveScript,最后因为市场原因蹭了 Java 的热度,改名 JavaScript。
1995 年 12 月 4 日,Netscape 和 Sun 联合发布公告,宣布 JavaScript 正式诞生。28 家公司为这门新语言背书,包括 America Online、Apple、AT&T、Borland、HP、Oracle、Macromedia、Intuit、Toshiba 等科技巨头。
有意思的是,Oracle 当时是 JavaScript 的支持者之一,新闻稿的媒体联系人里还有 Mark Benioff(后来创办了 Salesforce)。没想到 30 年后,Oracle 成了社区想要摆脱的"商标持有者"。
Sun 联合创始人 Bill Joy 说:
JavaScript 是 Java 平台的完美补充,天生就是为互联网和全球化设计的。
America Online 技术总裁 Mike Connors:
JavaScript 带来了跨平台的快速多媒体应用开发能力。
HP 的 Jan Silverman:
JavaScript 代表了专门为互联网设计的下一代软件。
Netscape 和 Sun 还计划把 JavaScript 提交给 W3C 和 IETF 作为开放标准。后来 JavaScript 确实标准化了,但官方名字叫 ECMAScript——因为商标问题。
1996 年 3 月发布 1.0 版本后,JavaScript 的野心远不止当初设想的"胶水语言"。
从玩具到基础设施
当年 JavaScript 的定位是"胶水语言",让不会编程的人也能在网页上加点交互。
没人想到它会变成今天这样。
几个关键节点:
2009 年 - Node.js 诞生
Ryan Dahl 把 V8 引擎搬到服务端,JavaScript 不再只是浏览器里的玩具。前后端同构成为可能。
2015 年 - ES6 发布
let/const 替代 var,箭头函数,Promise,Class 语法... JavaScript 终于像个正经语言了。
2012 年 - TypeScript 发布
微软给 JavaScript 加了类型系统。2017 年只有 12% 的 JavaScript 开发者用 TypeScript,到 2024 年这个数字涨到了 35%。现在大型项目几乎都是 TypeScript。
框架时代
React、Vue、Angular 轮番登场。整个前端生态围绕 JavaScript 建立起来。现在有人的整个职业生涯都建立在某个特定的 JS 框架上。
嵌入式领域
JavaScript 甚至跑到了微控制器上。Espruino 项目让你可以在 24.95 美元的小板子上写 JavaScript,功耗低到 0.06mA,还能跑蓝牙。有个智能手表 Bangle.js 2,一块电池能用 4 周,上面跑的就是 JavaScript。
名字的问题
JavaScript 这个名字,商标属于 Oracle。
Oracle 2009 年收购 Sun 的时候一起拿到的。但 Oracle 自己根本不做 JavaScript 相关的产品,商标就这么放着。
问题来了:因为商标在 Oracle 手里,社区做事很尴尬。
- 不能叫 JavaScript Conference,只能叫 JSConf
- 官方规范叫 ECMAScript,不叫 JavaScript
- 写书、办会议、做项目,用 JavaScript 这个词都有法律风险
Brendan Eich 2006 年写过:"ECMAScript 一直是个没人想要的商业名称,听起来像皮肤病。"
讽刺的是,Oracle 甚至不是 OpenJS Foundation 的成员,跟 Node.js 的开发也没有任何关系。
Node.js 和 Deno 的创始人 Ryan Dahl 看不下去了。2024 年 9 月他发起了 "Free the Mark" 运动,发布了一封公开信,28,600 多名开发者签名支持。
签名的人里有几个重量级的:
- Brendan Eich - JavaScript 创造者本人
- Ryan Dahl - Node.js 创造者
- Michael Ficarra、Shu-yu Guo - JavaScript 规范编辑
- Rich Harris - Svelte 作者
- Isaac Z. Schlueter - npm 创始人
- James M Snell - Node.js TSC 成员
- Jordan Harband - JavaScript 规范荣誉编辑
- Matt Pocock - Total TypeScript 课程作者
- Wes Bos、Scott Tolinski - Syntax.fm 播客主持人
11 月正式向美国专利商标局提交申请,要求撤销 Oracle 的商标。
理由有三:
- 通用化 - JavaScript 已经变成通用名词了,就像 aspirin(阿司匹林)一样
- 弃用 - Oracle 三年多没用这个商标做任何商业用途
- 欺诈 - Oracle 2019 年续期商标时,提交的使用证据是 Node.js 的截图。Node.js 跟 Oracle 没有半毛钱关系
公开信里说得很直白:
Oracle 从来没有认真推出过叫 JavaScript 的产品。GraalVM 的产品页面甚至都没提"JavaScript"这个词,得翻文档才能找到它支持 JavaScript。
公开信还指出,Oracle 2019 年续期商标时提交的"使用证据"是 nodejs.org 的截图和 Oracle JET 库。Node.js 根本不是 Oracle 的产品,JET 只是 Oracle Cloud 服务的一个 JavaScript 库,跟市面上成千上万的 JS 库没什么区别。
按美国法律,商标 3 年不用就算放弃。Oracle 既没用这个商标,又眼睁睁看着它变成通用名词,两条都占了。
2025 年 2 月,Oracle 申请驳回诉讼中的欺诈指控。6 月,商标审判和上诉委员会驳回了欺诈指控,但撤销申请继续审理。8 月,Oracle 首次正式回应,否认 JavaScript 是通用名词。
官司预计要打到 2026 年。
Deno 团队正在众筹 20 万美元的法律费用,用于发现阶段的调查取证,包括做公众调查来证明普通人不会把 JavaScript 和 Oracle 联系在一起。
30 年后的 JavaScript
现在的 JavaScript 和 1995 年的已经是两门语言了。
当年的 var 被 let/const 取代。当年的原型继承有了 Class 语法糖。当年的回调地狱有了 Promise 和 async/await。
ES2025 刚发布,又加了一堆新特性。
工具链也完全不同了:
- 打包器从 webpack 到 Vite,Vite 8 刚用上 Rolldown,速度又快了一大截
- 运行时从只有浏览器,到 Node.js、Deno、Bun 三足鼎立
- TypeScript 成了事实上的标准
- 1650 万开发者,比很多国家的人口都多
Brendan Eich 当年 10 天写的种子,长成了一片森林。
顺手推几个项目
既然聊到 JavaScript 生态,推一下我做的几个开源项目:
chat_edit - 一个双模式 AI 应用,聊天 + 富文本编辑。Vue 3.5 + TypeScript + Vite 8 技术栈,可以自己配 API key 部署。
code-review-skill - Claude Code 的代码审查技能,覆盖 React、Vue、TypeScript 等主流技术栈,按需加载不浪费 token。
5-whys-skill - 根因分析技能,排查问题的时候用"5 个为什么"方法论。
first-principles-skill - 第一性原理思考技能,适合架构设计和技术方案选型。帮你拆解问题本质。
感兴趣可以去 GitHub 看看。