Instead they are doing doing the C++/Scala way: with complexity.
Good thing I have Clojurescript...
Instead they are doing doing the C++/Scala way: with complexity.
Good thing I have Clojurescript...
which depends on the JVM ...
ES6 has nothing to do with either C++ or Scala. It takes most of its new syntax from Python.
Which has a mature ecosystem managed by people experienced in maintaining software over a decade or more.
They can only discourage people to use the old stuff, if a better alternative is now available.
Come on, this is Node.js, not Win98.
I mean it's 8 years later and python is still feeling the issues from the 2->3 change.
I understand that some of the issue is lazy developers, but I really think that the majority of the problems would be caused by unmaintained code.
Websites frequently sit around un-touched for years, hell our company website has some js code that was written by me over 4 years ago and hasn't been touched since because there's just no need to screw with it. And i'll be honest, it's not going to get updated until something breaks, and I would consider myself someone who likes to be on the cutting edge and is willing to endure breaking changes in more things than i should.
I really think that by advocating for a "good" subset of the language, we can get all of the benefits of removing old stuff with very little of the downsides. Something like "use strict"; in javascript now. It removed many terrible things from the language in a way that you could mix old and new code together and get the benefits of both.
That worked great, and i really think it could work great again. Something like a "use es6" or something that removes a massive set of "bad ideas" in the language, but it does it in a per-file or per-function basis. Allowing new code to be written in a better way, and allows old code to keep going as it was for a very long time.
Had they been forced, a significant portion of users would have thought long and hard and jumped ship to a different language altogether, and Python "would be long forgotten by now".
EcmaScript itself has to be backwards compatible or newer browsers could not display older webpages any more which none of the browser vendors want.
There is breaking changes in the node standard library from time to time. That's the reason it was forked into io.js last year, and why they now use SemVer.
The real compatibility issue is the web ! I built a small website for an association several years ago, it still works.
What if Google Chrome decided to remove whatever JavaScript features I used at this time ?
Yeah, because it worked great for Python...