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

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Application and Cybersecurity Blog
Application and Cybersecurity Blog
S
Securelist
K
Kaspersky official blog
Scott Helme
Scott Helme
C
CXSECURITY Database RSS Feed - CXSecurity.com
GbyAI
GbyAI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - Franky
Security Latest
Security Latest
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Y
Y Combinator Blog
T
Threat Research - Cisco Blogs
L
LINUX DO - 热门话题
C
Cyber Attacks, Cyber Crime and Cyber Security
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
月光博客
月光博客
I
Intezer
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
人人都是产品经理
人人都是产品经理
L
Lohrmann on Cybersecurity
Recorded Future
Recorded Future
Latest news
Latest news
V2EX - 技术
V2EX - 技术
T
The Exploit Database - CXSecurity.com
H
Heimdal Security Blog
F
Fortinet All Blogs
Cloudbric
Cloudbric
IT之家
IT之家
博客园 - 叶小钗
Microsoft Security Blog
Microsoft Security Blog
P
Proofpoint News Feed
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
PCI Perspectives
PCI Perspectives
AWS News Blog
AWS News Blog
H
Help Net Security
S
Security @ Cisco Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
Recent Announcements
Recent Announcements
Hacker News - Newest:
Hacker News - Newest: "LLM"
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
F
Full Disclosure
S
Schneier on Security
S
Security Affairs
T
Tenable Blog

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 Zero-config Debugging with Deno and OpenTelemetry | Deno Exploring Art with TypeScript, Jupyter, Polars, and Observable Plot | Deno Deno v Oracle Update 3: Fighting the JavaScript Trademark | Deno Build a custom RAG AI agent in TypeScript and Jupyter | Deno How to get deep traces in your Node.js backend with OTel and Deno | Deno toranoana.deno #20 登録受付中(2025年3月14日) | Deno Node just added TypeScript support. What does that mean for Deno? | Deno The Dino 🦕, the Llama 🦙, and the Whale 🐋 | Deno Publish a lint rule, get a prize | Deno Deno 2.2: OpenTelemetry, Lint Plugins, node:sqlite | Deno If you're not using npm specifiers, you're doing it wrong | Deno How Deno's documentation is evolving | Deno Introducing the JSR open governance board | Deno Intro to Wasm in Deno | Deno Announcing OpenAI on JSR | Deno Deno in 2024 | Deno Goodbye WinterCG, welcome WinterTC | Deno Build a SolidJS app with Deno | Deno Run your Next.js SSR app on Deno Deploy | Deno Solve Advent of Code 2024 with Deno and Win Prizes! | Deno Deno v. Oracle: Canceling the JavaScript Trademark | Deno Deno 2.1: Wasm Imports and other enhancements | Deno Build a Typesafe API with tRPC and Deno | Deno Self-contained Executable Programs with Deno Compile | Deno Build a Database App with Drizzle ORM and Deno | Deno Introducing your new JavaScript package manager: Deno | Deno Announcing Growthbook on JSR | Deno Build an Astro site with Deno | Deno How to convert CommonJS to ESM | Deno Announcing Deno 2 | Deno The Final Touches: What’s New In v2.0.0-rc.10 | Deno Announcing Stable V8 Bindings for Rust | Deno Deno 2.0 Release Candidate | Deno Secure, efficient private npm registries with Cloudsmith and Deno | Deno Painting the Plane as We Fly It: Designing JSR | Deno Introducing Web Cache API support on Deno Deploy | Deno Deno 1.46: The Last 1.x Release | Deno Protect your cloud spend with new Deno Deploy spend limits | Deno What we got wrong about HTTP imports | Deno Benchmarking AWS Lambda Cold Starts Across JavaScript Runtimes | Deno Announcing Supabase on JSR | Deno Deno 1.45: Workspace and Monorepo Support | Deno Introducing KV Backup for Deno Subhosting | Deno A Gentle Intro to TypeScript | Deno Announcing Hono on JSR | Deno How We Made the Deno Language Server Ten Times Faster | Deno How the Guardian uses Deno to audit accessibility and performance across their 2.7 million articles | Deno Introducing More Flexible Domain Association for Deno Subhosting | Deno The stabilization process of the Standard Library has begun | Deno Deno 1.44: Private npm registries, improved Node.js compat, and performance boosts | Deno How we built a secure, performant, multi-tenant cloud platform to run untrusted code | Deno The Deno Standard Library is now available on JSR | Deno How to document your JavaScript package | Deno Your Low Code Solution Needs an Escape Hatch | Deno Deno 1.43: Improved Language Server performance | Deno How Slack used Deno to save months of engineering effort in launching their new platform | Deno JSR Is Not Another Package Manager | Deno Announcing the Hookdeck SDK on JSR | Deno Announcing the Neon Serverless Driver on JSR | Deno An intro to TSConfig for JavaScript Developers | Deno How we built JSR | Deno How Netlify used Deno Subhosting to build a successful edge functions product | Deno Introducing Simpler Project Creation in Deno Deploy | Deno Deno 1.42: Better dependency management with JSR | Deno Introducing deployctl, the command line interface for Deno Deploy | Deno Introducing JSR - the JavaScript Registry | Deno How to add Monaco to a Next.js app and securely run untrusted user code | Deno Survey Results and Roadmap | Deno Deno 1.41: smaller deno compile binaries | Deno Webhooks suck, but here are alternatives | Deno
Oracle justified its JavaScript trademark with Node.js—now it wants that ignored | Deno
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