The Class of 2015
Future JS
The future of JavaScript is a yearly release cycle. Which means the future is now and also next year and the year after... We have ES2015 (née ESHarmony, ESNext, ES6 - it's had more names than a Metal Gear Solid character this year and work has already begun on ES2016/ES7.
This relatively (v5.1 came in 2011) rapid improvement of the language will hopefully strip away the nasty parts and instate new powerful, modern features. Inevitably there'll be features that won't be perfect or will fall by the wayside through lack of adoption but I guess that's the beauty of a yearly release cycle: these parts can be further improved or cut completely. It should also afford more modest releases that are less likely overwhelm devs!
Ch-ch-ch-ch-changes
So why does the web constantly feel the need for change? Why is JavaScript so fluid and undefined? These are pretty big questions. Today's answer will probably become redundant by Tomorrow anyway but it is interesting to consider the reasons. Perhaps it's down to the frontend gods - or lack of.
Whatever the reason, there are good arguments both for and against the adoption of new specs before they are fully approved/supported and raving about the latest framework or tool. I think there is a balance to be found: if we stick with our current approach we'll never advance but if we try everything all the time we'll never consolidate. It's hard to know whether something new is suited to your work without trying it - you may find it's great or it may prove that your existing toolset is way better.
So, should we give up? Peter-Paul Koch suggests that we should have a year without any new browser features or tools. He certainly makes an interesting point and I'm sure a few of us could do with a break now and then. But the flux and pace of the web is what makes it so amazing. There may come a time when progress is naturally slowed - when we run out of things to add or gasp something supersedes the web - so maybe we should make the most of this constant state of change while we have it.
Present JS
I say embrace ES2015+ as soon as you feel comfortable. Start small with a few key features and add the rest as you go. Classes feel natural (particularly with React), functions have never looked so good, the spread operator and Object.assign() are awesome (and cornerstones of super-quick state management with Redux). Adding these features is a breeze with Babel. You can choose to use as little of the new feature set as you wish, experimenting with and introducing new practices to your code as you need them.
Keep up with the latest discussions and proposals or just ignore it all. Catch ya later!