Of course, it's far from perfect and through they years it got updated, although not as much as it should have. Luckily TC39, the committee responsible for evolving the language, decided to release one new version every year starting from 2016.
We already saw the first benefits of this work with ES6. All the new features (arrow functions, generators, modules, …) make it almost look like a new language.
The list goes on and on. After all, its initial purpose was to allow creating basic interactive pages far from what we are building today.
We need a new language. A language that is better suited to help us create the web of tomorrow. The problem is that browsers won't get one anytime soon.
During the Q/A I asked this question:
nope.— Jafar Husain (@jhusain) September 8, 2016
He also added that, since we have source maps, we don't even have to deal with the transpiled code anymore.
And that got me thinking: if I must use a transpiler anyway, why not choosing one that works with a better language? A language built to create rich web applications.
Well, I’m happy to tell you that we're already working on a low-level format, and it is called WebAssembly. It's not ready yet, but when it will be, new languages will flourish. These languages will be compiled and executed by the browser almost as fast as native code. And they won't have to be retro-compatible because developers will compile them, the source code won't be sent to the client.
Think of what assembly is to C but built for the web.
So, I don't know which programming language I will be using in 5 years. Elm is currently the top candidate, and it expressed intent to support WebAssembly at some point. What I can tell you is that in the future instead of having a new front-end framework every week we’ll have new front-end languages. And that, if you ask me, is a good thing.