What is confusing about there being like 10 OpenJDK forks, but for all practical purposes they are identical even more so than linux distros.
And if you want paid support you ca choose for example OracleJDK, which is otherwise feature-equivalent to OpenJDK (as it is also just a tiny fork), which’s LTS version is free for the next LTS+1 year. This is the same model as Red Hat Linux vs Fedora.
Gets even worse with IBM/Eclipse marketing OpenJ9 with OpenJdk which has nothing do with the OpenJdk project and is a completely different VM implementation.
"You don't think 'oh, the lawnmower hates me' -- lawnmower doesn't give a shit about you, lawnmower can't hate you. Don't anthropomorphize the lawnmower. Don't fall into that trap about Oracle." -- Bryan Cantrill
You pronounce it as "javascript" in casual conversation, disregarding Oracle's trademark because they're not going to do shit about it. Not even Oracle. Xerox can't stop people from trampling all over their trademark in casual conversation and neither can Oracle.
Can’t you just call it ECMAScript, or are they somehow different these days?
Guy Steele told me once that Sun registered it with ECMA so they could tell people (governments?) that it was a registered standard and that ECMA was the easiest/fastest/most compliant way to get there.
I’d always thought that ECMA was a weird place to register it.
I always have had problem with this definition... what do you mean by "implementation"? in my head "implementations" are "programs".
Like... "C" is a specification, "gcc" is an implementation.
"Python" is a specification, "CPython", "PyPy", ... are implementations.
"ECMAScript" is a specification, "webkit", "spidermonkey", ... are implementations.
"JavaScript" is a (trademarked) specification, and also "ECMAScript" and "JavaScript" are "very very similar" (wink wink)
D20 is an open standard for a certain genre of tabletop role playing games, of which Dungeons and Dragons™ is an implementation. But D&D itself is an abstract concept, with two implementations: the open-game-licensed online “D20 SRD”, and the proprietary set of WotC-published core books.
That's one thing I never understood. For me they seemed like completely different languages. Now looking at history in Wikipedia, it seems that old version of ActionScript was based on old version of ECMAScript specification. And ActionScript 2 which introduced strict typing and classes (that look nothing like JavaScript) was partially based on ECMAScript 4(which was abandoned as being too different from previous ECMAScript 3). Latest version of ECMAScript is 13. So at this point it seems like latest versions of JavaScript and ActionScript(3) have as much common as D and Rust. They shared early history but afterwards diverged quite a bit.
How do you see them as diverged? I've spent a lot of time thinking about AS, ES4, and working with modern ES, and if anything I see them as having converged. The largest feature of ES4 that ES3 did not have was classes, which were added in ES6. The second largest feature was optional static typing. Optional static typing is nearly a defacto part of the language (from a community/ecosystem point of view) with the popularity of Microsoft's TypeScript superset.
With diverging I meant more about development process not the feature set.
They might have same features from the perspective of checklist. But path they developed and obtained those features is different, the syntax is different and there are probably also some subtle (if not big) differences in semantics. The similarities in feature list isn't result of 2 language "implementations" getting closer to shared specification, but at least partially looking at what features other programming languages have and then sooner or later developing their own version of those language features. I haven't read the ES4 specification or development discussions for ES6 so I can't tell whether differences are caused by ES6 classes being developed from scratch ignoring how they where described in ES4 or whether classes in actionscript were only very loosely based on the way ES4 described them. Either way the development of two languages at some point forked and further developed somewhat independently.
From what I understand graph is something like this:
ES2 -> ES3
ES3 -> ES5
ES3 -> ES4
ES3 -> AS1
ES4 -> AS2
AS1 -> AS2
AS2 -> AS3
ES4 -> AS3
ES5 -> ES6
Is Python-the-language fully specified now? Of course there are now a lot of PEPs, but I seem to recall (way back then, even before PEP3000 was a thing) that the Python "spec" was largely the "CPython" implementation (incl. bugs and all), and "CPython" was not actually a real name but emerged from a need to distinguish the original Python implementation from "Python-the-language" as well as alternative implementations such as PyPy, JPython/Jython, IronPython...
Normally standards bodies deliberate over the standard. IIRC Guy was saying that they just handed a document to ECMA and and it was stamped “approved”.
We're at about the right point in the timeline to start calling it YavaScript which both solves the trademark problem and keeps us on the path laid out in prophesy.
Could you successfully argue that its generic at this point? I strongly doubt anyone seriously thinks when you talk about Javascript, you're talking about only products and tools made by Oracle.
I am guessing that Oracle is worried that if they give up (or somehow lose) the JavaScript trademark, that may threaten their ownership of the Java trademark - the later is far more important to them than the former.
IANAL but seems like intentionally giving up the specific JavaScript trademark would actually help with that, since if a disagreement over JavaScript ever went to court and Oracle lost it could very easily domino into the Java trademark. Give it up and it never goes to court.
Good. Nice article and nice looking blog. But should have been a private letter to let Oracle save the face of "coming up with this goodwill gesture themselves".
I feel like this isn't a problem that needs solving.
The existence of a trademark doesn't prevent you using that trademark (as in referencing it like "this app is written in JavaScript".)
Clearly Oracle is not defending the trademark, and it is likely its too late to start. Worst case they pick on you, you change your docs to say Ecmascript.
Frankly it's safer where it is, than being released so the USPO or something can issue it to someone else.
A bigger intrinsic problem is lay-programmers confusing JavaScript with Java, and unfortunately there's no fixing that.
Well... Oracle is lead by the most ruthless, unethical, Machiavellian business person in tech and his devoted acolytes. They probably don't gaf. But it wouldn't surprise me for Oracle to decide on some last minute resurrection of the brand and start legal armageddon. (In fact, calling attention to the situation is probably the worst thing to do...)
That said, my guess is all they really want is for it to be a zero cost pain in the ass for Microsoft, Apple, Google, etc.
(Yes... You youngsters might think Bezos or Zuck might be gunning for that title, but they got nothing on ol' Larry. He's evil incarnate. There's reasons those other two are always in the news and Ellison is not. Think about it. Pure evil.)
a) Calling a person evil should be reserved for those that commit truly heinous acts. Not simply being a tough, shrewd businessman in an industry where you need to be.
b) Oracle's CEO is Safra Katz and has been for a while now. And pretty sure she has a lot more on her plate to worry about i.e. existential threat of AWS/Azure/GCP than fighting some meaningless lawsuit.
> shrewd businessman in an industry where you need to be.
Let me put it that way, if he was only as shrewd as "needed" he wouldn't be sitting there with billions to his name. Every billionaire is driving a wealth distribution that makes the lives of millions of people worse.
Yet somehow people like this manage to employ and fund the livelihoods of tens of thousands of people, established an ecosystem of skilled engineers, and deliver products that run huge swathes of the economy. I’m no particular fan of Ellison, but I’ve worked for a billionaire when he made his money, Mo Ibrahim. Just the nicest guy. His technical smarts and business sense helped launch a key stage in my career and I’ll always be grateful. He deserved every penny he made and everyone I know that worked for any of his companies, and his customers, did very well out of his hard work.
How many careers have you supported? How many products did you conceive and design that transformed an industry? How many families were fed and clothed by wages from your companies? I doubt you’ve done as much good for as many people in your whole life as Mo Ibrahim did in a day at the office. Now he’s off working to transform political culture in Africa.
My friend you need to get a grip. Mo Ibrahim employs people because he makes money off of them; not because he's a saint. Your phrasing makes it sound like Walmart employees should be licking the Walmart brothers boots for the opportunity to make them money.
Billionaires become billionaires by setting up systems and collecting rent. That's it. Whether that's good or bad is a different topic.
All I'm saying is that a system without leaders that have creativity and vision would be a poor thing. Ultimately the question is, who should be in charge of allocating resources. There's a major role for government but I think largely, but not exclusively, it should be private citizens that have demonstrated their ability to start and run businesses and create jobs and products. If you think it should be someone else, you're free to suggest an alternative.
You need billions to invest billions. For the most part those billions aren't piles of cash, they are the market value of shares in the companies they own and operate. To take that away from them, you'd be taking away control of those companies. Who are you going to give that control to instead?
Like trying to overthrow the government? Maybe secretly funding an insurrection? Don't mean to get political, as I was being hyperbolic for humor on a Saturday night, but you did demand proof.*
This crosses the line from "shrewd businessman" into the evil area. What's wonderful is when Larry's buddy Lindsey gets indicted, he's going to sing like a canary, and Ellison is going to finally get his just rewards. (LOL, just kidding. He's a billionaire.)
I must have missed the part where I was hired to define words for humanity.
I was just offering my opinion that there are people on this planet who have caused unspeakable misery not just genocide but industrialised misery. And that throwing around the term evil to apply to a tough and unquestionably unethical businessman devalues it.
Every big enough company will have absolutely zero moral and is simply a profit-maximizer AI. Any statement regarding ethics/morals/social issues is simply the result of a pro-contra table anticipating bigger profit from doing so than against.
It’d probably only be something that’d be relevant to worry about in e.g. technical documentation that ships with a commercial product. That’s the sort of use-case where I’d be worrying about what IP (including trademarks) are being referenced.
Exactly, if you don't defend your trademark, you don't effectively have one. It's not enough to have a trademark registered. You have to actively go after people when they infringe. It's not optional. You can't be selective about it either. Oracle has not done that.
There are countless examples of people using the javascript name, incorporating it in books, articles, products, derivative works, etc. So, effectively the trademark has not been defended for decades. All fine with Oracle apparently. They never objected or sent any cease and desist letters. Oracle would not stand a chance in a court trying to enforce it now.
Just call it JS already. Forget about the "Java" bit, as JS really doesn't have much to do with Java anymore. Forget about ECMA as well -- that's a mouthful -- though I strongly suspect that the people who design JS believe verbosity is a virtue in all of their naming schemes.
Just call it JS and invite the community to come up with whatever silly backronym they see fit. Just super? Jihad script? Jelly sandwich? Juniper spirit? Other languages have been doing it for decades, so why not?
> Oracle does not have any products using the trademark … Oracle doesn’t even participate in the development of any of the JavaScript engines
Strangely ignorant from Ryan - Oracle does maintain a JavaScript engine product - GraalJS. In fact is it possibly the only modern engine available under a commercial licence?
No, not really a fork. GraalJS is a new independent from-scratch implementation of JavaScript. It uses a pair of radically different execution and optimisation techniques known as self-specialising-ASTs, and partial evaluation, and runs on the JVM.
But a sibling project, Graal-Node.js, does include vendored code from Node.js in order to be compatible with Node.js applications. That's where the commits come from I'd guess.
145 comments
[ 2.3 ms ] story [ 198 ms ] threadI don’t think they’ll ever do it though, given the history of oracle
And if you want paid support you ca choose for example OracleJDK, which is otherwise feature-equivalent to OpenJDK (as it is also just a tiny fork), which’s LTS version is free for the next LTS+1 year. This is the same model as Red Hat Linux vs Fedora.
But that was of course your point.
What other way is there ?
https://livescript.net/ (But seems inactive judging by GitHub).
Actually a mostly quite nice little toy language. (Only the OOP part seems messed up a little bit; but besides that it looks quite clean).
Guy Steele told me once that Sun registered it with ECMA so they could tell people (governments?) that it was a registered standard and that ECMA was the easiest/fastest/most compliant way to get there.
I’d always thought that ECMA was a weird place to register it.
Like... "C" is a specification, "gcc" is an implementation. "Python" is a specification, "CPython", "PyPy", ... are implementations. "ECMAScript" is a specification, "webkit", "spidermonkey", ... are implementations.
"JavaScript" is a (trademarked) specification, and also "ECMAScript" and "JavaScript" are "very very similar" (wink wink)
They might have same features from the perspective of checklist. But path they developed and obtained those features is different, the syntax is different and there are probably also some subtle (if not big) differences in semantics. The similarities in feature list isn't result of 2 language "implementations" getting closer to shared specification, but at least partially looking at what features other programming languages have and then sooner or later developing their own version of those language features. I haven't read the ES4 specification or development discussions for ES6 so I can't tell whether differences are caused by ES6 classes being developed from scratch ignoring how they where described in ES4 or whether classes in actionscript were only very loosely based on the way ES4 described them. Either way the development of two languages at some point forked and further developed somewhat independently.
From what I understand graph is something like this: ES2 -> ES3 ES3 -> ES5 ES3 -> ES4 ES3 -> AS1 ES4 -> AS2 AS1 -> AS2 AS2 -> AS3 ES4 -> AS3 ES5 -> ES6
Is Python-the-language fully specified now? Of course there are now a lot of PEPs, but I seem to recall (way back then, even before PEP3000 was a thing) that the Python "spec" was largely the "CPython" implementation (incl. bugs and all), and "CPython" was not actually a real name but emerged from a need to distinguish the original Python implementation from "Python-the-language" as well as alternative implementations such as PyPy, JPython/Jython, IronPython...
Implementations of ECMAScript/JavaScript are things like V8 and Spidermonkey.
Well, yes that’s the reason why standards bodies exist :)
Hmm, I see the same was done with Dart…
We're at about the right point in the timeline to start calling it YavaScript which both solves the trademark problem and keeps us on the path laid out in prophesy.
...wait, no.
You still get to abbreviate it like JS, use the filename extension ".js", etc.
BeanJuiceScript
https://news.ycombinator.com/item?id=7605687
JS doesn't have to stand for anything. It's just 'JS', pronounced jay-ess.
The existence of a trademark doesn't prevent you using that trademark (as in referencing it like "this app is written in JavaScript".)
Clearly Oracle is not defending the trademark, and it is likely its too late to start. Worst case they pick on you, you change your docs to say Ecmascript.
Frankly it's safer where it is, than being released so the USPO or something can issue it to someone else.
A bigger intrinsic problem is lay-programmers confusing JavaScript with Java, and unfortunately there's no fixing that.
That said, my guess is all they really want is for it to be a zero cost pain in the ass for Microsoft, Apple, Google, etc.
(Yes... You youngsters might think Bezos or Zuck might be gunning for that title, but they got nothing on ol' Larry. He's evil incarnate. There's reasons those other two are always in the news and Ellison is not. Think about it. Pure evil.)
b) Oracle's CEO is Safra Katz and has been for a while now. And pretty sure she has a lot more on her plate to worry about i.e. existential threat of AWS/Azure/GCP than fighting some meaningless lawsuit.
Let me put it that way, if he was only as shrewd as "needed" he wouldn't be sitting there with billions to his name. Every billionaire is driving a wealth distribution that makes the lives of millions of people worse.
Really the problem is in government for failing to do its job of protecting the public.
How many careers have you supported? How many products did you conceive and design that transformed an industry? How many families were fed and clothed by wages from your companies? I doubt you’ve done as much good for as many people in your whole life as Mo Ibrahim did in a day at the office. Now he’s off working to transform political culture in Africa.
Billionaires become billionaires by setting up systems and collecting rent. That's it. Whether that's good or bad is a different topic.
This crosses the line from "shrewd businessman" into the evil area. What's wonderful is when Larry's buddy Lindsey gets indicted, he's going to sing like a canary, and Ellison is going to finally get his just rewards. (LOL, just kidding. He's a billionaire.)
1. https://www.washingtonpost.com/politics/2022/05/20/larry-ell...
I was just offering my opinion that there are people on this planet who have caused unspeakable misery not just genocide but industrialised misery. And that throwing around the term evil to apply to a tough and unquestionably unethical businessman devalues it.
Also there are those rumors, that they have 10 managers per developer, and 50 lawyers per manager.
Who knows, maybe Oracle enjoys suing people?
>Careful law abiding engineers bend over backwards to avoid its use
..do they really? It never occurred to me but maybe I don't qualify as careful and law abiding.
There are countless examples of people using the javascript name, incorporating it in books, articles, products, derivative works, etc. So, effectively the trademark has not been defended for decades. All fine with Oracle apparently. They never objected or sent any cease and desist letters. Oracle would not stand a chance in a court trying to enforce it now.
Assuming that is true (IANAL), do you want to be on the other end of that lawsuit, wasting your time and money?
ECMAScript is absolutely the worse name for it.
So anyway have you heard of GraalVM
Just call it JS and invite the community to come up with whatever silly backronym they see fit. Just super? Jihad script? Jelly sandwich? Juniper spirit? Other languages have been doing it for decades, so why not?
This is a non-problem for the world. I never heard of this being enforced in any way.
"LiveScript" was a great name, they never should have changed it.
jaja because we keep copying over node_modules
Strangely ignorant from Ryan - Oracle does maintain a JavaScript engine product - GraalJS. In fact is it possibly the only modern engine available under a commercial licence?
Because I doubt Ry would write this article if he was one of the top contributors to GraalJS which is what this graph says:
https://github.com/oracle/graaljs/graphs/contributors
https://github.com/oracle/graaljs/commits?author=styfle
But a sibling project, Graal-Node.js, does include vendored code from Node.js in order to be compatible with Node.js applications. That's where the commits come from I'd guess.
Compare:
https://github.com/oracle/graaljs/tree/master/graal-js
https://github.com/oracle/graaljs/tree/master/graal-nodejs