JavaScript: Then and Now

Sean Para
Sean Para
Mar 31 · 4 min read

There are a number of widely used frontend JavaScript frameworks in use today. The main ones being React, Angular and Vue. However, these being the three main ones is a relatively recent development. Facebook released React in 2013, while Google released Angular 2 in 2016. The history of other JavaScript libraries used to make creating a frontend easier goes back a bit further.

The first widely used JavaScript frontend library was jQuery, released in 2006. jQuery offered a package of tools for DOM manipulation, and soon a standardized AJAX functionality. AJAX (Asynchronous JavaScript and XML) had been around in various forms since 1996, and began to be more widely used after the advent of Gmail in 2004. However, jQuery provided a more standardized way of performing AJAX requests. jQuery also provided a way to standardize JavaScript code across multiple browsers. Standardization was a major issue in web development at this time, as different browsers supported different standards and features. It was around this time that package management libraries like bower began to emerge, setting the scene for the next generation of frontend frameworks.

Another massive development that would have a far-reaching impact on the JavaScript community was the advent of Node.js. JavaScript, as it was developed in 1995, was intended to be solely a client-side scripting language. Node.js allowed JavaScipt to be run server-side, outside the browser. While it is beyond the scope of this article to really delve into it, Node applications became widely used and JavaScript became increasingly popular.

NPM was created in 2014 as a central repository the manage the ever-growing number of JavaScript packages, libraries, and frameworks. A few years previously, Single Page applications began to be more widely used, with Backbone.js being one of the earliest frameworks that provided allowed for their creation. Knockout and Ember were other examples of this type of earlier SPA framework, although all three have plummeted in popularity since this era. These libraries solved one of the main issues with jQuery, which was the difficulty of sharing data between different views. However, they were all soon overtaken by AngularJS, which offered a much more substantial framework for building web applications, including features such as two-way data binding and dependency injection. All of these frameworks, as well as Vue and React, effectively tie data to the HTML document, creating more responsive and robust websites.

Despite its popularity, AngularJS was re-written entirely and released as Angular 2. This process was concurrent with the release of React in 2013 and its rapid growth in popularity. Angular is a framework, meaning it has a Model-View-Controlled (MVC) architecture. React, on the other hand, is a collection of JavaScript libraries, and thereby much less opinionated, and unconcerned with interfacing the database. This greater flexibility could be a factor in its success, as well as the backlash from the development community Google’s rewrite of Angular, and Angular 2’s lack of backward compatibility with AngularJS. React also has a Virtual DOM, a representation of the DOM stored in memory as a JavaScript Object. The strength of the Virtual DOM is that when a page needs to be re-rendered, the Virtual calculates the difference between the previous and next view, and re-renders only the difference between the two. This is in contrast to regularly re-rendering, wherein the entire page re-renders each time something changes, even if it is a small difference. The Virtual DOM and its diffiing algorithm are the key to React’s superior performance and a more seamless UI.

Vue, the third major frontend framework widely used today, is a bit of an outlier in its origin. Rather than being backed by a tech giant like Angular and React, Vue was created and release by Evan You, a former Google employee who’d worked on Angular and sought to solve some of its issues, in 2014. Vue has a virtual DOM like React, but is a framework, not a library. It is, however, much less opinionated than Angular, effectively being a middle ground between its two more widely-used counterparts. Vue has gained increasing popularity in recent years and is very well-liked in the developer community.

Things have certainly stabilized in the past few years. JavaScript has been standardized, natively integrating many of the features that made jQuery so popular, like the Fetch API. Tools like webpack and babel have also largely eliminated the question of cross-browser compatibility or how to integrate the multiplicity of JavaScript libraries used in modern web applications. The future seems bright, as new frameworks like Gatsby.js integrate React rather than reinventing the wheel. Nonetheless, it seems certain that the libraries and frameworks associated with web development will continue to evolve and improve