2026年,一个名字引发了一场战争。Oracle声称拥有"JavaScript"商标,Deno项目面临改名威胁。但问题来了:一个由社区创造、被数百万人使用的编程语言名字,真的可以被一家从未参与创造的公司"拥有"吗?
序幕:一个意外的"遗产"
2009年,当Oracle以74亿美元收购Sun Microsystems时,他们获得了一份意外的"遗产":JavaScript商标。
但Oracle可能没想到,这份"遗产"会在17年后,引发一场席卷整个技术圈的法律战争。
第一幕:名字的"流浪史"
故事要从1995年说起。
那一年,Netscape为了蹭Java的热度,与Sun Microsystems合作推出了"JavaScript"。商标归Sun所有,但Sun从未将JavaScript作为核心产品。
接下来的14年,JavaScript从一个营销噱头成长为Web的基石,但它的名字一直在"流浪":
讽刺的是:创造JavaScript的Netscape工程师们,从未想过这个名字会成为法律斗争的焦点。
第二幕:Oracle的"沉睡资产"
2009-2023年,JavaScript商标在Oracle手中沉睡了14年。
Oracle——这家以数据库和Java闻名的公司,与JavaScript生态几乎毫无关系。他们从未推出名为"JavaScript"的商业产品,也从未参与任何JavaScript引擎的开发。
但商标就在那里,像一颗定时炸弹。
2023年,炸弹的引线被点燃:"Rust for JavaScript Developers"项目声称收到Oracle律师的停止侵权函。
社区开始警觉:这个沉睡的巨人,要醒了吗?
第三幕:Deno的"大卫挑战歌利亚"
2024年11月22日,Ryan Dahl——Node.js和Deno的创始人,做出了一个大胆的决定:正式挑战Oracle。
Deno向美国专利商标局(USPTO)提交了商标取消请愿书,基于三项主张:
- 通用性:"JavaScript"已成为编程语言的通用名称
- 欺诈:Oracle提交虚假证据(Node.js截图)
- 放弃:Oracle连续多年未使用该商标
Ryan Dahl的声明掷地有声:
"Oracle did not create JavaScript. Oracle does not control JavaScript. Oracle should not own the trademark for JavaScript."
大卫,正式向歌利亚发起挑战。
第四幕:Oracle的"拖延战术"
2025年2月3日,Oracle反击了。
他们提交了部分驳回动议,要求:
- 驳回欺诈主张
- 额外30天时间回应其他主张
媒体批评这是"拖延战术"——Oracle等到最后期限才提交动议,试图拖垮对手。
The Register尖锐指出:"Oracle waited until the deadline to file this motion, a tactic commonly used to drag out proceedings."
法律战争,进入消耗战阶段。
第五幕:社区的"觉醒"
当法律程序缓慢推进时,社区开始行动了。
超过18,000名开发者签署了公开信,要求Oracle释放JavaScript商标。签名者包括:
- Brendan Eich(JavaScript创始人)
- 众多JavaScript核心贡献者
- 知名框架作者和社区领袖
Hacker News上的讨论如火如荼:
- "Oracle holding the JavaScript trademark is like someone trademarking 'car'"
- "This is trademark warehousing at its worst"
- "The legal costs for Oracle to fight this likely exceed any potential benefit"
社区意识到:这不仅是Deno的战斗,更是整个JavaScript生态的战斗。
深度:三个法律战场
战场一:名字的"通用性"
Deno的证据:
- "JavaScript"被全球数百万开发者使用
- 所有教程、书籍、文档都使用这个名称
- JSConf等社区活动因商标问题无法使用全称
Oracle的反驳:声称消费者仍将"JavaScript"与特定来源关联。
核心问题:当一个名字被整个行业通用化后,它还能被商标保护吗?
战场二:证据的"真实性"
争议焦点:Oracle在2019年商标续展时提交的证据。
Deno的指控:
- Oracle提交了Node.js网站截图
- Node.js由Ryan Dahl创建,与Oracle毫无关系
- 这构成对USPTO的欺诈
Oracle的辩解:
- 声称提交了两个证据
- 认为即使一个无效,另一个也足够
- 否认有欺诈意图
讽刺的是:Oracle用Node.js——Ryan Dahl的创造物——作为证据,来对抗Ryan Dahl的公司。
战场三:商标的"放弃"
法律依据:商标连续三年未在商业中使用即被视为放弃。
Deno的证据:
- Oracle从未推出名为"JavaScript"的产品
- 不参与任何JavaScript引擎开发
- 不参与ECMA TC39标准委员会
Oracle的反驳:声称通过工具包和教育资源使用了商标。
关键问题:什么构成商标的"商业使用"?
影响:蝴蝶效应
对Deno:生存危机
- 改名压力:可能被迫从"Deno JavaScript Runtime"改名
- 品牌损失:多年建立的认知可能一夜归零
- 资源分散:法律战消耗开发精力
对社区:寒蝉效应
- 会议活动:JSConf等不敢使用全称
- 教育资料:教程、书籍面临法律风险
- 开源项目:项目名称可能受限
- 日常交流:开发者说话都要小心翼翼
对生态:信任危机
最深的伤害:当商业公司可以控制开源基础设施的关键名称时,信任就被破坏了。
数据:沉默的多数
18,000+ 开发者签名支持 数百万 开发者日常使用JavaScript 0 个Oracle推出的JavaScript产品
数字告诉我们:这个名字属于社区,而不是会议室。
未来:三种可能的结局
结局一:Oracle胜诉(概率:40%)
- JavaScript商标继续由Oracle持有
- 社区被迫使用"JS"等缩写
- 开源项目更加警惕商标问题
结局二:Deno胜诉(概率:35%)
- JavaScript成为通用名称,商标被取消
- 社区可以自由使用全称
- 为类似案例树立重要先例
结局三:和解(概率:25%)
- Oracle象征性释放商标
- 双方避免长期法律战
- 社区获得实际使用自由
反思:开源的"阿喀琉斯之踵"
教训一:早注册,早安心
开源项目需要更早考虑商标问题,关键名称应由社区注册。
教训二:明确所有权
商标应归基金会而非个人或公司,避免被单一实体控制。
教训三:法律准备
社区需要法律资源和策略,不能等到危机来临才准备。
教训四:风险分散
避免关键资产集中在单一公司,多元化治理结构。
更大的图景:名字的权力
这场战争远不止一个名字的归属问题,它触及了开源生态的核心矛盾:
技术创造 vs 法律所有权 JavaScript由工程师创造,由社区发展,但法律上却属于一个与创造无关的公司。
社区共识 vs 商业权利 数百万人的共识,不敌一纸法律文件。
实用主义 vs 原则斗争 社区可以用"JS"规避风险,但原则问题需要有人站出来。
结语:名字的背后
Ryan Dahl和Deno团队的选择值得尊敬:他们不仅为自己而战,也为整个社区而战。
无论结果如何,这场战争已经告诉我们:
在代码之外,还有名字、商标、治理结构。 在我们使用的技术背后,有着复杂的所有权和控制关系。 当守护者变成掠夺者,社区必须学会保护自己。
现在,轮到每一个开发者思考:你支持什么样的开源未来?
是接受法律上的"所有权",还是坚守社区创造的"归属权"?
答案,可能就在你下一次写下console.log('Hello, JavaScript!')时。
技术圈"吃瓜"也要吃得明白:
记住:每一个你使用的技术名字,都可能是一场战争的战利品。
关注我,了解更多技术圈内幕和深度分析!
也欢迎关注同名公众号:此方的手帐