The Super-Brief History of JavaScript Frameworks For Those Somewhat Interested
Tags: javascriptframeworks, angular, react, vue
Published: 2018-04-02 18:22:37

---
title: The Super-Brief History of JavaScript Frameworks For Those Somewhat Interested
published: true
description: A relatively brief history of how we got here - a slew of JavaScript frameworks and the problems they're trying to solve.
tags: javascript frameworks,angular,react,vue
cover_image: https://thepracticaldev.s3.amazonaws.com/i/srlpey0jjze7dfz0ibho.jpeg
---

JavaScript frameworks have come a long way and any new developer is not only faced with learning a language but choosing with framework to learn first.

The choice available today is a result of some incredible innovation in a relatively short space of time. As recently as 2004, Google released Gmail which is regarded as the first everything-in-the-browser product we know today as Single Page Applications.

If you're just starting to learn JavaScript, you arrive at a good time, but there wasn't always so much choice and flexibility if you wanted to do anything interesting in the browser.

# Dynamic HTML
In the early 2000’s, JavaScript was largely in its infancy, and was mostly used to perform basic changes to a page. The highlights included mouse-overs, dropdown menus and scrolling text - things developers take for granted today with the power of CSS.

Back then, Internet Explorer dominated the web browser landscape (I know, weird right?) and since 1999, included a wrapper around a library Microsoft had developed for their own e-mail product, Outlook. The lovely but dauntingly named XMLHttpRequest object eventually became standardized across browsers and was the gateway to how we experience much of the Web today.

Crucially, this XMLHttpRequest allowed requests to be sent to a server, and a response processed, without having to refresh the browser or perform a full round trip. Until then, things like clicking a tab or posting a form meant the server processed that request and decided how to render the response, and the browser would spin away and eventually show the result.

Developers jumped on the functionality and saw the potential to create real desktop-replacement applications on the web. Asynchronous Javascript and XML, shortened to AJAX, was the phrased coined to describe this newfound ability.

# jQuery
jQuery wasn’t technically the first JavaScript framework, but its popularity exploded after it was released in 2006. jQuery aimed to solve many of the issues developers faced with subtle differences in web browser implementations, and it abstracted much of the functionality developers wanted into a clean and easy to learn framework.

With the potential to build applications that harnessed the convenience of the web, developers built larger and larger solutions that tested jQuery’s maintainability. Products like Gmail had demonstrated what could be achieved but it became clear more enterprise friendly tooling might be needed.

# Backbone & AngularJS
In 2010, Jeremy Ashkenas released Backbone, the first framework aimed at creating single page applications. Jeremy had seen how messy a huge jQuery application could become and wanted a cleaner approach to remedy the thousands of selectors and interwoven event handlers. Interestingly, Backbone didn’t require jQuery, it was an independent framework but certain functionality could be enabled if jQuery was present.

Around the same time, Adam Abrons and Misko Hevery created AngularJS, which soon after fell under Google’s care when Hevery took a job at the company. Angular was the first framework that provided a complete architecture for front-end application development. 

One of AngularJS’s main features was bi-directional data binding and provided a way to bind a model’s data to HTML markup and have changes update in real-time. Developers called this ‘automagic’. Angular also supported dependency injection and the ability to create reusable components.

# Knockout, Meteor, React
Knockout is another framework that provided a solution to bi-directional data binding, although it provides only a fraction of the functionality of AngularJS. Meteor too, had a significant following but in 2013, Facebook released its React framework and has since enjoyed huge popularity.

Many new developers first hear about React and make it their framework of choice. Despite this, React does has a relatively steep learning curve, but it also benefits from excellent documentation and an enormous community.

---
For a developer it’s very interesting to see the way frameworks have tried to solve the problems of their predecessors. I think Angular (certainly the most recent versions) share a lot with React and in turn they both share common goals with Vue, the new kid on the block.

Another consideration that has become increasingly important is how easily these frameworks can support mobile targets. Ionic and React Native have proven to be considerable players as teams attempt to standardize on JavaScript as a language for all means: server side with NodeJS, desktop and mobile browser, and targeting native devices with the help of additional frameworks.

---
In summary, JavaScript is a great language to learn and with these frameworks, almost anything is possible on any device. With each new release of a framework there is much evidence of learning from previous incarnations so there's never a better time to dive in and start to build your first application.