> Why do you think front-end development is in such a constant state of change?
Browsers have been resistant to change and meeting standards for the longest time. This resistance to change has meant that the core libraries (i.e. vanilla Javascript) have been inadequate for large-scale front-end applications. Today browsers are much better than they used to be about keeping to spec, and the days of old IE hacks in your front-end code are mostly gone. In addition, you had other hacks in the front-end (using tables/floats and other arcane CSS tricks to get things to render properly)
These issues caused a surge in wrappers to appear to 1) encapsulate all of the hacks and 2) present a better interface than core JS had. jQuery was the biggest player at this time and you were crazy to try and develop without it. People became accustomed to jQuery and then started to iterate on that (we got Promises, we got people thinking about how to encapsulate and automate changes with an API, we got people thinking about how data should be bound to components). Backbone, Angular, and Ember all appeared to try and solve these issues
Fast-forward a few more years and you have a new set of problems and proposed solutions. Tools started getting complex and people would fork off new ideas
Today the browsers are better than they were years ago, and I expect we'll eventually revert to vanilla JS, but there are a couple of issues that the browser still hasn't solved:
* How do you componentize CSS with JS in a sane way? Loading everything into a global namespace is kind of crappy
* How do handle a growing language specification? Unlike server-side languages where you control everything, browsers may be on different versions, etc - how do you still write portable code?
* How do you efficiently cache, transport, and invalidate your assets? There are multiple schools of thought here, and I believe HTTP 2.0 will have a big effect on this
TLDR; the community is moving faster than the browser and building their own solutions to hack around problems, thus you have a lot of churn as problems evolve and the browsers get better