惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
博客园 - 【当耐特】
雷峰网
雷峰网
宝玉的分享
宝玉的分享
IT之家
IT之家
J
Java Code Geeks
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Jina AI
Jina AI
博客园 - 叶小钗
V
Visual Studio Blog
Engineering at Meta
Engineering at Meta
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
云风的 BLOG
云风的 BLOG
美团技术团队
爱范儿
爱范儿
T
The Blog of Author Tim Ferriss
L
LangChain Blog
U
Unit 42
有赞技术团队
有赞技术团队
博客园_首页

Deno

Deno 2.8 | Deno Claw Patrol: an open-source security firewall for agents | Deno Fresh 2.3: Zero JS by default, View Transitions, and Temporal support | Deno Deno 2.7: Temporal API, Windows ARM, and npm overrides | Deno Build a dinosaur runner game with Deno, pt. 6 | Deno Build a dinosaur runner game with Deno, pt. 5 | Deno Deno Deploy is Generally Available | Deno Introducing Deno Sandbox | Deno Build a dinosaur runner game with Deno, pt. 4 | Deno Build a dinosaur runner game with Deno, pt. 3 | Deno Build a dinosaur runner game with Deno, pt. 2 | Deno React / Next.js Denial-of-Service Vulnerability: Deno Deploy users protected | Deno Deno 2.6: dx is the new npx | Deno Build a dinosaur runner game with Deno, pt. 1 | Deno React Server Functions / Next.js Vulnerability: Deno Deploy users protected | Deno My highlights from the new Deno Deploy | Deno Deno's Other Open Source Projects | Deno How Deno protects against npm exploits | Deno Help Us Raise $200k to Free JavaScript from Oracle | Deno Deno 2.5: Permissions in the config file | Deno Fresh 2.0 Graduates to Beta, Adds Vite Support | Deno Deno 2.4: deno bundle is back | Deno JavaScript™ Trademark Update | Deno What's coming to JavaScript | Deno A brief history of JavaScript | Deno Reports of Deno's Demise Have Been Greatly Exaggerated | Deno An Update on Fresh | Deno How Plaid migrated 100 services to a new database platform 5x faster with Deno | Deno Deno 2.3: Improved deno compile, local npm packages, and more | Deno Add JSR packages with pnpm and Yarn | Deno
Oracle justified its JavaScript trademark with Node.js—no...
Ryan Dahl · 2025-02-05 · via Deno

Yesterday, Oracle filed a motion to dismiss in response to Deno’s petition to cancel its “JavaScript” trademark. But instead of addressing the real issue—that JavaScript is an open standard with multiple independent implementations—Oracle is trying to stall the process and sidestep accountability.

Recap

Two years ago, I published a blog post asking Oracle to release the JavaScript trademark as a goodwill gesture. That got no response.

Last September, I published an open letter co-signed by Brendan Eich (creator of JavaScript), current TC39 editors, and over 16,000 JavaScript developers. Many were shocked to learn that Oracle even claimed ownership of JavaScript. Oracle still said nothing.

So last November, I filed a formal petition with the USPTO through my company, Deno, to cancel Oracle’s “JavaScript” trademark. Among other things, we pointed out that in 2019, Oracle renewed its trademark by submitting a screenshot of the Node.js website—a project I created—as proof of use, despite having no affiliation with it.

Our petition challenges Oracle’s trademark on three grounds:

  • Genericness – JavaScript is a widely used programming language, not an Oracle product.
  • Abandonment – Oracle does not control, maintain, or enforce the trademark.
  • Fraud on the USPTO – Oracle submitted misleading evidence in its renewal filing.

You can read the full peititon for cancellation here.

Oracle’s defense: “That specimen? Just ignore it”

Oracle has finally responded—but only to the fraud claim. Their argument: Yes, we used a screenshot from Node.js, but it doesn’t matter because we also submitted another specimen.

Here’s how they frame our petition in their filing:

“The Petition ignores completely that Oracle submitted two specimens. Moreover, on its face, the Petition fails to allege a claim of fraud as to the renewal in Class 42 because the specimen it touts as ‘fraudulent’ was submitted to support only the renewal in Class 9 and not Class 42.”

Oracle’s JavaScript trademark covers both software products (Class 9) and technology services (Class 42). Their argument is that the Node.js screenshot was only for Class 9 and that their primary specimen—an Oracle JET page—was sufficient for both.

“Petitioner has not challenged and could not plausibly challenge the JAVASCRIPT Extension Toolkit page from Oracle’s own website that Oracle submitted as its primary specimen in Class 9 and as its only specimen in Class 42.”

This raises serious questions:

  • If Oracle’s primary specimen (a screenshot of Oracle JET) was truly sufficient, why submit a screenshot of Node.js at all?
  • Oracle JET isn’t even a standalone JavaScript runtime—it’s a UI toolkit.
  • Has anyone even used Oracle JET, or is it just there to keep the trademark alive?
  • Oracle never explained why it used a screenshot from a project it had no connection to.

They even go as far as saying:

“Oracle does not concede that submission of the Node.js Specimen was improper. However, the Board need not address that question in connection with this Motion.”

Oracle isn’t denying that it used my project—it’s just arguing that it doesn’t matter. If a company misrepresents something in a legal filing, you’d expect them to acknowledge it. But Oracle hasn’t even addressed it. No apology. No explanation. Just an attempt to move past it as if nothing happened.

I created Node.js and released it under the MIT license to benefit developers, not so it could be used as a legal pawn by a Fortune 500 company. Now, instead of correcting their misrepresentation, they’re using it to stall the case.

Specimens used in 2019 renewal

Delaying the process

Oracle waited until the deadline to file this motion, delaying their response to the real issue: whether “JavaScript” is a generic term.

“This motion tolls the deadline to otherwise answer the Petition, and Oracle requests that the Board reset the answer deadline to at least 30 days after the date of its decision on this motion.”

Oracle won’t even discuss whether “JavaScript” should remain a trademark until they’ve finished dragging out this fraud claim.

This legal maneuvering puts us in a difficult position:

  1. Agree to drop the fraud claim, letting them get away with misrepresenting their trademark renewal.
  2. Spend months fighting this procedural issue before even getting to the real debate.

The real issue

The situation is self-evident to anyone working in tech: Oracle did not create JavaScript. Oracle does not control JavaScript. Oracle should not own the trademark for JavaScript.

JavaScript is defined by an open specification (ECMA-262), maintained by TC39, an industry group with representatives from Google, Apple, Microsoft, Mozilla, and others. The major implementations of JavaScript are in the browsers built by Mozilla, Google, Apple, and Microsoft. Oracle has no role in JavaScript’s governance, implementation, or evolution—yet it continues to wield this trademark as a legal cudgel.

This isn’t just about JavaScript. If Oracle can hold onto this trademark, what does that say about the trademark system as a whole? Should corporations be able to warehouse trademarks indefinitely, even when they play no meaningful role in the things they claim to own? Even when they commit fraud to maintain them?

A company with no role in JavaScript’s past or future has no right to control its name.

How you can help

  • Share this post and spread awareness about Oracle’s trademark claim.
  • Sign the open letter at javascript.tm
  • If you’re a journalist, reach out—I’m happy to talk.

Let one thing be clear: we are not intimidated by Oracle’s legal maneuvering, and we will continue to fight this case on its very strong merits. You can follow us here to be kept up to date.

Organizational Charts by Manu Cornet Organizational Charts by Manu Cornet

Discuss on HN