Let’s start from the top
Answering this question is a bit tricky because of a number of factors.
Some developers claim this is a weakness of the language, that it’s undefined and the language doesn’t know what it wants to be so everything is allowed and ultimately you can never write ‘pure’ code, on the other hand some developers claim this is a benefit and opportunity ( like I do ) because you can write code that BEST SUITS THE SITUATION!
This question is REALLY easy to answer!
‘Front-End frameworks to quickly and easily build UI?’ Yup, there are countless UI libraries out there but the 3 most popular right now are Angular 2 ( https://angular.io/ ), React (https://facebook.github.io/react/ ) and Vue (https://vuejs.org/)
‘Back-End?’ Sure! Node, npm and it’s libraries (such as express (https://expressjs.com/) will help you with that.
‘Desktop apps?’ No problem, download Electron (https://electron.atom.io/) and you’re all set!
“But I want to write smartphone apps!”, you say? Well then just go over to Nativescript (https://www.nativescript.org) or React Native (https://facebook.github.io/react-native) and start coding, they both compile down to native code!
For beginners it ain’t easy because they’re going to be attacked by an endless stream of names: gulp, grunt, bower, browserify, webpack, rollup, coffeescript, typescript, VS Code, github Atom, webstorm and the list goes on and on and on…
For veteran developers it’s an intense mental exercise to keep up with what’s current and useful and what new ideas / tools will be useful so they can focus on learning that new thing and ignore the ‘noise’.
That being said, it isn’t all doom and gloom.
Things will eventually settle and we’ll be left with a handful of really useful tools that will be used on 95% of projects but until then we’ll be using what seems to be a bajillion tools just to get a ‘Hello World!’ web app up and running.
This will probably get even better with time.
You can’t exactly say the same for most other programming languages.