A "Brief" History of the Web Part 3
Tags: codenewbie, javascript, node, webdev
Published: 2021-10-03 01:53:38

It was 2006, AJAX was being widely adopted to build dynamic web experiences. As web apps became more complex, there was a need to make building them simpler. Thus the dawn of the framework wars began.

# The First Generation
I can't talk about the first frameworks/libraries without mentioning [jquery](https://jquery.com/) of course. In this wave, libraries mainly focused providing some UI widgets, DOM manipulation, and AJAX. [Dojo Toolkit](https://en.wikipedia.org/wiki/Dojo_Toolkit) appears to be the first framework ever released in 2004. jQuery was released in 2006, along with [mootools](https://en.wikipedia.org/wiki/MooTools) and [yui](https://en.wikipedia.org/wiki/YUI_Library). However, that fact that you probably only recognized jQuery is testament to its domination.

# The Second Generation
In 2009 JavaScript was updated to EcmaScript Version 5, with growing platform capabilities and user expectations a second wave of frameworks began. Frameworks likes Angular in 2009, Backbone JS in 2010, Ember and Meteor in 2011 were on the rise. Two-way data-binding and templating were the features you would typically see in these frameworks. React was released in 2013 and two promising frameworks called Vue and Polymer were released in 2014. 

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wmw9jhvhfupafllahsc0.png)
[Image Credit](https://twitter.com/michaellnorth/status/720030263905005568/photo/1)

On the server side, an interesting development happened in 2009. [Nodejs](https://en.wikipedia.org/wiki/Node.js) was released as the first server side runtime for JavaScript. Now you can write your sever-side scripts and your client side code in JavaScript!

# The Third Generation 
EcmaScript version 6 was released in 2015, this brought many quality of life improvements like arrow functions, template literals, let & const, promises and the fetch API. 

In this generation much attention was paid to state management, building UI components an optimizing their rendering with concepts like virtual DOM in the case of react. In 2015 Ember had a major update and in 2016 Angular JS was 'rebooted' to Angular [much to the dismay of many dev teams](https://jaxenter.com/angular-2-0-announcement-backfires-112127.html).

![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/reiamfs7fa2ll39dwpts.png) 

One may argue that the framework fatigue really [began to be felt here](https://www.breck-mckye.com/blog/2014/12/the-state-of-javascript-in-2015/). Many developers were overwhelmed at the amount of diversity and the of fear having to learn a new framework ever so often was real. 

In 2016, interest in React surpassed Angular and Vue's popularity saw steady growth. Popularity in [Aurelia](http://aurelia.io/) was also on the rise. By 2017 Angular took a clear 3rd place behind Vue and React at the top.

# Conclusion
While there were still new frameworks appearing, many took solace in how things seem to have settled down at the top. In the next post we shall catch up to the web today.

Have you been in dev during these years? Perhaps you have been burned by the Angular Upgrade? Did you use Redux with React? Please share!

# References
* [History of Front-End Frameworks](https://blog.logrocket.com/history-of-frontend-frameworks/)
* [The State of JavaScript 2015](https://www.breck-mckye.com/blog/2014/12/the-state-of-javascript-in-2015/)
* [The State of JavaScript 2016](http://2016.stateofjs.com/)
* [The State of JavaScript 2017](https://2017.stateofjs.com/)