Hacker News new | comments | ask | show | jobs | submit login
JavaScript is a trademark owned by Oracle (uspto.gov)
157 points by yiransheng on Sept 20, 2014 | hide | past | web | favorite | 82 comments

This shouldn't be news to anyone who's old enough to remember the internet in the 90's. Back then Microsoft named their EMCAScript implementation "JScript" to avoid problems with Sun's trademark (I'm sure everyone on here is already aware that Oracle bought Sun a few years back).

However I don't think this trademark is worth anything to Oracle any longer. Trademarks need to be defended or they're lost. This is why Wordpress have strict rules about how themes and related websites cannot contain the name "Wordpress"; and why you often see ridiculous cases about large companies sending scary legal notices to independent enterprises but then quietly settling out of court for token licence fees like £100 a year.

Javascript has long since entered the public domain so I suspect it's too late for Oracle to capitalise on their acquired trademark.

Let's be careful with terminology here. I'm (also) not an IP lawyer, but as I understand it your use of the term 'public domain' here is inappropriate.

If you're arguing that JavaScript has become genericized - on the basis, presumably, that there are multiple institutions making available various implementations of JavaScript without acknowledging or licensing Oracle's trademark - I'm not sure that's correct, and typically that would only be settled in a legal case. Certainly, Google, for example, publishes V8 and describes it as a "JavaScript Engine" - and makes no trademark acknowledgement toward Oracle that I can see; if Oracle wanted to they could probably attempt to enforce their trademark rights there. Mozilla, who distribute SpiderMonkey as a "JavaScript Engine", acknowledge the trademark (though they still attribute it to Sun). Oracle's failure to continually distribute any product which makes use of their trademark might count against them, but if they wished to argue that Mozilla has continually exercised Netscape's exclusive right to use the trademark, they might be able to get a sympathetic judge to rule Google out of order for claiming V8 is 'JavaScript'. Without a legal ruling, the situation's not clearcut.

You're right, but I believe even Brendan Eich has said (while CTO of Mozila) he thinks the trademark is likely indefensible.

What's inappropriate about saying a term that is in wide, generic usage is in the public domain?

It's technically correct but not idiomatic.

Technically correct because by the definition that Wikipedia gives (http://en.wikipedia.org/wiki/Public_domain), non-enforcement of a trademark could lead to forfeit of the rights on that trademark, and that is one of the options mentioned in the definition.

But not idiomatic because the term is much more commonly used in copyright, rather than trademark, where it has a very specific legal meaning. A copyrighted work enters the public domain when the copyright expires (or in old cases, if the owner failed to renew the copyright).

I would say that it's not in wide, generic usage, but rather in wide, implicitly-specific usage.

That is, "generic usage" refers to things like people using "a kleenex" to refer to any facial tissue or "a xerox" to refer to any mimeograph. However, when people say "JavaScript", they always mean the exact same JavaScript: the one Oracle owns.

(It could be argued that they mean ECMAscript—but that's a bit like saying that people who say "pass me a coke" when what they have available are cans of no-name generic cola (with trade-dress explicitly reminiscent of Coca-Cola's, no less) are actually thinking they want any generic cola, rather than that they want a Coca-Cola and that the can you have to offer is merely an adequate stand-in.

The coke bit has regional variance. In the entire southern US "coke" is a fully generic term for all carbonated beverages: http://laughingsquid.com/soda-pop-or-coke-maps-of-regional-d...

Wikipedia lists "Coke" among marks that, while still protected, are often used generically: http://en.wikipedia.org/wiki/List_of_generic_and_genericized...

I think many marks on that list, including coke, could very well lose their status if someone were to bother to fight the legal battle.

"Public Domain" has a very specific legal meaning -- of which does not apply to this situation.

Are you a lawyer?

You don't need to be a lawyer to understand trademark law. But if you want to dismiss my point then there's plenty of case studies around; pick a few and investigate things yourself. I think you'll end up coming to the same conclusion as myself though.

Agreed that you don't need to be an attorney to understand trademark law. I work with some of the best in the business, and they think my understanding is nearly as good as theirs.

Wikipedia says: "Today, 'JavaScript' is a trademark of Oracle Corporation. It is used under license for technology invented and implemented by Netscape Communications and current entities such as the Mozilla Foundation." [1]

It's one of a long list of Java-related trademarks originally registered by Sun:


Maybe Sun originally intended it to be the name of a Java-related product, and when Netscape invented JavaScript, they found out too late that the name had already been trademarked by Sun, so they licensed the trademark from Sun instead of changing the name? I'm just guessing. Does anyone know the real history?

[1] https://en.wikipedia.org/wiki/JavaScript#Trademark

According to Crockford[0], Netscape called it LiveScript, originally. In their attempt to 'destroy Microsoft', they teamed up with Sun. One of Sun's original goals with Java was making it the client-side scripting language for the browser. However, Netscape had LiveScript. Apparently the negotiations almost broke down over this point.

In an enlightened moment, (probably) Marc Andreessen proposed renaming LiveScript to JavaScript (despite the fact that the languages have very little in common), and joy was had. Sun got the JavaScript trademark (and passed it on to Oracle), and Netscape got a perpetual exclusive license to use it.

When JavaScript was standardized to avoid Embrace, Extend, Extinguish, Netscape refused to share its license, and so the official language was renamed to ECMAScript, after the standards body. When Sun was bought by Oracle, it also got the trademark, and presumably, Mozilla inherited the exclusive license from Netscape.


[0] https://www.youtube.com/watch?v=RO1Wnu-xKoY#t=430

I was told by Robert Mathis that the name ECMAScript was picked as a draft name because they were unable to focus on standardizing the language due to all the fighting about the name. They figured the name was so awful that they would have to go back and change it before they finished the standard. Then they never got back around to changing it.

I thought the name "ECMAScript" was created out of necessity, presumably because Netscape had the exclusive license granted by Sun and using the name as part of the standard would affect that status?

They might as well have standardized it under the trademarked name, though. It seems that anything can be called JavaScript as long as it adheres to the spec (although strictly speaking Mozilla's JavaScript is versioned independently and the term "JavaScript" usually describes a superset of ECMAScript).

For anyone interested is JS history, this is the most comprehensive explanation of where JavaScript got its name I've heard (from Brendan Eichs POV)[1]. The podcast also deals with lots of other JS related history like what languages influenced it, the circumstances it was created under and the politics surrounding its conception. It's a great listen.

[1] http://javascriptjabber.com/124-jsj-the-origin-of-javascript...

This needs to be a parent comment. The episode was one of the best JJ episodes and a great JS backgound piece. Highly recommended.

FWIW, submitted here the other week, w/o comments:


It's right there in the Wikipedia article you linked to:

Although it was developed under the name Mocha, the language was officially called LiveScript when it first shipped in beta releases of Netscape Navigator 2.0 in September 1995, but it was renamed JavaScript when it was deployed in the Netscape browser version 2.0B3.

The change of name from LiveScript to JavaScript roughly coincided with Netscape adding support for Java technology in its Netscape Navigator web browser. The final choice of name caused confusion, giving the impression that the language was a spin-off of the Java programming language, and the choice has been characterized as a marketing ploy by Netscape to give JavaScript the cachet of what was then the hot new web programming language.

It was a marketing thing.

That's explains how LiveScript became Javascript but it doesn't answer the more interesting question: how did Netscape end up using a Sun trademark?

I don't really understand what remains unclear. The cited section explains that when Java got put into the browser, executives of both companies got together and decided that it would be good PR to rename LiveScript into JavaScript.

As Java was a trademark by Sun, they obviously had to register JavaSript as well (if they hadn't already done so - I did not look up the timeline, but it's not really relevant to the argument). Getting a license from Sun made it possible for Netscape to use the name without the Java trademark becoming diluted. Remember, if you don't defend your trademark, you'll lose it.

But Sun and Oracle have not demanded other users of Javascript obtain licenses.

True, but for a long time the only noteworthy "other user" was Microsoft and they kept calling it JScript for years even after they adopted the standard.

I'm not sure what exactly happened, but at some time after or during the lifetime of IE9 they stopped referring to their dialect of ECMAScript as "JScript" and began calling it "JavaScript". The most recent stuff I can find about JScript is about JScript.NET, which seems to be discontinued.

There's this issue filed on the Mozilla project back in 2000 that addresses this problem: https://bugzilla.mozilla.org/show_bug.cgi?id=44841

As Google, Apple and Microsoft are openly using the JavaScript trademark (without marking it as a trademark) these days, I'm going to go out on a limb here and guess that it's okay to use the term "JavaScript" to refer to an ECMAScript implementation that is compatible with the original JavaScript language developed by Netscape. This would probably preclude Adobe's ActionScript and other "enhanced" flavours of ES (e.g. JSX? I've never seen Facebook refer to JSX as "JavaScript <something>" in a way that would imply JSX is simply JavaScript).

As I understand it from Crockford's retelling and what I've read on the web and heard in podcasts, Sun was concerned that LiveScript could be seen as a competitor to Java if both were present in the browser. Netscape wanted Java but wasn't willing to kill off their scripting language, so they agreed to name it JavaScript to make it sound like the two are related (and JS being "merely" a scripting language, people would still prefer Java for "real" programs).

Apparently LiveScript was also originally planned to be more Lisp-like but then they went with C-like syntax because that was more popular at the time (see Java). And the entire language was cobbled together in a ridiculously short time frame (something like a couple of weeks?) and intended to be "beginner friendly", which is where a lot of the language's quirks come from.

Considering the original JS already contained the syntax Crockford would eventually define as JSON, you could say they managed to create not one but two languages at once. Say what you will about JS being a good language or not, but you have to respect that achievement.

Considering JS only became ECMAScript because Netscape was scared of incompatible copycats, you could argue JS as it is today wouldn't exist without Microsoft, too. Strange world, eh?

> Considering the original JS already contained the syntax Crockford would eventually define as JSON, you could say they managed to create not one but two languages at once.

No, the original version of JavaScript did not include object literals and array literals - the two foundations of JSON.

Object and array literals were introduced in JavaScript 1.2:


This is why old-school JavaScript programming had so much code like this:

  var obj = new Object;
  obj.prop = 'value';

  var ary = new Array;
  ary[0] = 'first';
  ary[1] = 'second';

Right, and note to grand-parent post: Crockford was not at Netscape so he's not the eyewitness you're looking for.

I created JS1.2 and SpiderMonkey in fall 1996, as described in that JS Jabber podcast. Find this part in the transcript:

"I started to rewrite the VM, pay off technical debt, and I wrote what became SpiderMonkey. The original Mocha VM was not SpiderMonkey."

Object and array initialiser syntax was inspired by Python of the time (1996 would be Python 1.x, x around 6 IINM), but I made property names literals when spelled without quotes, as identifiers (same as the implicitly quoted name on the right of dot in member expressions).

In ES6 (in imitation of computed property access using square brackets) you can finally compute property names in object initialisers too:

var obj = { [nameExpr]: valueExpr };

Okay, so you didn't create the syntax JSON was based on until JS1.2? What I was getting at remains true then, though: you created JS and you created the object and array literal syntax that Crockford then "discovered" (to quote Crockford) and defined as JSON. Even if you didn't do it in the same couple of days it took you to create the original JS itself ;)

Amazing. There is a bunch of stuff to ask for about JS API...

The eventual compromise was that JavaScript would be a playground for experimentation and learning; whereas, Java was designed for hardcore computer science-types. If you wanted to add rich functionality to your site, you'd use JavaScript to call into a Java library, which did the heavy lifting. (This was paraphrased from Brendan Eich's The Origin of JavaScript: http://javascriptjabber.com/124-jsj-the-origin-of-javascript...)

Of course, the web community embraced Shockwave/Flash over Java, and Java retreated to the server and mobile. Later, Steve Jobs was famously unimpressed with Macromedia/Adobe's forays into mobile and refused to ship a Flash interpretter in iOS. This led to the decline of Flash and a rising interest in creating a rich stack for client-side applications in JavaScript, bringing us to today's stack (canvas, WebGL, web audio, WebRTC, Ember/Angular/React, web components, pnacl/asm, etc.).

Gah. It’s such a weird naming choice. I still have peers confusing Java and Javascript...

It's sort of elegant, nicely rounds up the whole collection of weird choices in JavaScript's design.

They aren't "weird" design choices. Most of them are just plain bad design choices.

The more I use JavaScript (jquery), the more I fall in love with it!

I heard that if you try to run Java in a Javascript VM, it is silently coerced into almost the right JS code.

Most Java programs won't even parse.

So the Wikipedia says that the trademarked term "JavasScript", a word, is used under license for technology. That seems odd.

Can"t common use be used to nullify a trademark?

I don't think so.

Absolutely, companies like Kimberly-Clark and Johnson& Johnson for Kleenex and Band-Aid dedicate millions to ensuring you understand a clear distinction between the name and what it is. Hence the Jingle "That's why I'm stuck on Band-Aid BRAND and Band-Aids stuck on me." Emphasis mine. When do you ever hear the word Brand in a jingle or marketing message outside the 60's?" Only when the product is in danger of loosing it's trademark due to common use (or crappy naming teams like the ones at Microsoft).

Start calling it PhpScript or LispScript; there would be no loss of accuracy.

Arguably an increase of accuracy in either case. :/

Nothing to see here, everyone calls it ECMAScript.

But ECMAScript is a mouthful to say and sounds a bit like a skin condition, I don't think that's ever going to become the common name people use for it.

Agreed. You're not the only one who thinks so:

"ECMAScript was always an unwanted trade name that sounds like a skin disease." - Brendan Eich [1]

1. https://mail.mozilla.org/pipermail/es-discuss/2006-October/0...

In Germany, we pronounce it as one word.

Ecmascript and not E C M A script. Which makes it as easy to pronounce as JavaScript.

The complaint still holds though. Add "-osis" to get "ecmascriptosis", something that sounds more likely to be overheard in a hospital than at a Node meetup.

> E C M A script

Is anyone pronouncing it like that?

I propose we start a campaign to rename it EScript. I like the sound of that and we preserve the E for ECMA.

How about eek-script? That preserves the first two phonetics of ECMA and sounds about right.


Too close to Eichmann.

I've been programming JavaScript professionally for ten years and have interacted with thousands of JavaScript developers online and offline. I have never once heard anyone call the language ECMAScript except when they were specifically referring to the ECMA-262 specification.

Edit: After writing that I thought back, and now I do remember one time when somebody called the language ECMAScript when they weren't referring to the ECMA standard. I think this was the exception that proves the rule!

This is far from the truth, unfortunately. We will get there eventually, but everyone has to do their part in removing JS from their vocabulary.

Given the committee's track record, do you think they will manage to change script type= text/javascript by 2050, or it will take a bit longer than that?

That's a MIME type. Those don't get removed. They're also not necessary. The only reason to use the type attribute on the script element is to use a MIME type that isn't ECMAScript's so that the browser doesn't execute it as such.

You don't need to specify the type on a script anyway if you are using ECMAScript/JS.

They can always call it JScript.

(I know, that was the joke.)

Don't try to have a sense of humor on HN threads. You'll get modded into oblivion and have your joke disassembled and laid bare in an attempt to show how "unfunny" it might be. HN is serious business for serious people. Seriously.

Every word you said is completely accurate, and yet you had me laughing out loud; been a while since I have.

And me getting downvoted just kinda proves that.

Amongst many other trademarks. The one that irritates me is that we really really wanted to call the browser "Webrunner" and at the last moment of trademark clearance we heard that Taligent (the Apple/IBM thing) had already gotten it. I still have the jacket where we had the stitching done [1]. So we ended up calling it HotJava. Sigh.

[1] https://plus.google.com/u/0/+ChuckMcManis/posts/hdvbvWCvbuY

Under what circumstances would they be defending this trademark?

Unless Oracle makes web browsers, I don't think under any circumstance. They'd be up against the internet itself (not an over-exaggeration), and any tech giant you could imagine. From Apple, Google, Microsoft, I think we're done here, not to mention Mozilla, yeah, not going to go over well. They may be money hungry, but they're not moronic.

That's why there's ECMAScript - the official name of the spec ... nothing new.

Unity3d gets around this by calling their adaptation UnityScript.

Unity is actually pretty inconsistent about their naming. In some parts of their docs they call it UnityScript:


In other places they call it JavaScript:


And in the Unity Editor when you use the Add Component / New Script, they call it "Java Script"!

Everyone would be better served if Unity would call it UnityScript consistently, since as you mentioned, their language isn't JavaScript but is a fairly loose adaptation of it. It's more of a JavaScript-like language than real JavaScript.

I ALWAYS had a feeling that something was off about "JavaScript". I hope Oracle does not decide to start suing everyone using JS like node.js...

Oracle knows how to use the legal system to obtain money. It's one of their core competencies. If you know the history of Oracle, you know that's not sarcasm, it's just an observation. If they're not doing it now, it's because they (correctly) realize there's no chance they could make money with it, and I don't see that changing in the future. If they actually tried to sue someone for it, "JavaScript" would change to "ECMAScript" at the speed of "Find & Replace".

can you suggest any further reading on oracles legal prowess in this regard? sounds like an interesting read to me, but I'm unsure where to find it.

Well, good luck trying to enforce it... It's now a generic term for ECMAScript.

Strictly speaking, JavaScript is an implementation of ECMAScript, not merely a generic term.

IANAL, but it will depend on whether JavaScript is used by members of the public to refer to ECMAScript that isn't JavaScript (that's a mouthful).

In other words, I can call a fountain pen a biro and that shows that the trademark has become generic, it doesn't matter that I'm technically wrong.

This is how it works in Commonwealth jurisdictions anyway, haven't checked US law for about a year.

People generally bring up kleenex and xerox as the examples of trademarks lost to generic use (and someone upthread mentioned band-aid), but I think a more interesting example is coke. There are large regions of the US where "coke" is the general term for soda, so that the following invented example wouldn't raise eyebrows:

    A: Want a coke?
    B: Yes, a 7-up please.
(Or at least, it wouldn't raise eyebrows for the implication that a 7-up is a kind of coke.)

How is Coca-Cola dealing with this? Do they have a policy or a strategy?

It's the same. The issue is actual usage, not whatever meaning is correct.

JS is arguably a different trademark entirely from JavaScript.

I wondered about that. I would prefer it if we all started calling it JS (as many do), and pretended it stood for -- the language. Though I suppose we'd keep having to say "the language formerly known as JavaScript" in many contexts.

I also like the JS logo and its variations. I'm assuming Oracle could lay no claim to that . . .

A lot of JS developers call it "ECMAScript" these days. A lot more frequently than, say, ten years ago.

Mostly this is because we no longer care about JavaScript version numbers (I facepalmed when I saw a dropdown in JetBrains' WebStorm IDE that offered various "JavaScript 1.x" options as the language environment). Instead we only care about "ES 3", "ES 5" (i.e. ECMAScript 5.1) and "ES 6" (which frequently also refers to ES 7 and beyond). At the same time I see less and less references to "Harmony", probably because the spec that came out of it is now openly using a real version number.

Of course the irony here is that what people often think of as "JS" these days is not actually Mozilla's JavaScript implementation but that of V8, as used in Chrome, node.js and other places (probably because V8 is relatively painless to embed).

Well it's ridiculous, but if it can make ecmascript die, why not.

/troll /rant

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact