Great post, thanks for sharing. 👏
Only "recently" do we see a lot of OOP concepts finding their way into JS (especially through ECMA standardization).
Of course, the latter is mitigated through ECMA's standardization efforts that have added a lot of OOP ideas to JS.
There were three new features in ES6 relevant to FP: arrow syntax for lambdas, the Promise abstraction and tail call elimination. Browser vendors skipped the latter, because the teams in charge were biased for OOP and probably the respective companies as well. The Promise Aplus design process was also biased against FP, because the key players were again employed by the very same companies.
I think adding the option to do OOP in JS is a good direction to take, as letting developers choose which paradigm to use for each situation is really powerful. That power is another reason I see the same approach being adapted in Java 8+ and other languages.
The car / carpet thing is awesome. That's exactly how it used to be.
And I second what you said: JS has come a long way and it's good that we can use it as a full-grown OO language now.
It's also nice to see that so many popular languages are opening up to all different sorts of paradigms. Gives us developers lots of options and flexibility.
Of course, being a Scheme language with the requirement that it looks like Java was a surefire way to confuse anyone who first looked at the language.
Thank you very much for the insight. That is entirely news to me. It is interesting how much political/legal energy is put into what is otherwise technical decision making. 👍
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.