I love JS, but reading ECMA6 specifications, I have the feeling it keeps on being late: it introduces OOP when Functional Oriented Programming is the new trend!
It's no different to<p>- Java with Functional Programming concepts in Java 8 - which was already there for FP-oriented languages like Haskell and Scala.<p>- PHP, with OOP on PHP 5 - which was already there for Java, C++, C#.<p>I'm not aware of the innovations of other languages, but I'm pretty sure it's not just JavaScript. It's not also about being "late". It's just extending the language to cater more features to a wider developer audience as well as providing a more flexible language.<p>Just because someone bought a smartphone first doesn't mean I can't own the same exact model or do the same exact thing.
Classes != OOP. JavaScript has had OOP, not quite since its inception, but quite close to it; it merely follows a different paradigm when doing so. In fact, ECMAScript 6's notion of classes is explicitly defined as being not much more than syntactic sugar over the existing paradigm.<p>As for functional programming, JavaScript has had that in some form for years. The addition of tail calls in ECMAScript 6 is an improvement for people who want to use this paradigm, but the language has had most of the old mainstays since at least ECMAScript 5, and some (like closures) date back further than that.