On July 11th Nicholas Zakas presented a talk on JavaScript web performance at the San Francisco and Silicon Valley Web Performance Group. Nicholas discussed strategies to speed up loading web pages. The highlight of the talk for me, though, was his abbreviated history of single-page web apps.
Before 2005: Pre-Javascript Era
Nicholas presented a brief history on how the origin of single-page web apps. Prior to 2005, most web developers were hesitant to use Javascript. Javascript was a bonus to HTML and CSS. Also, web browsers couldn’t run Javascript quickly enough.
2005: The Birth of AJAX
In 2005, AJAX was introduced. AJAX refers to asynchronously downloading content using Javascript in a web browser. Prior to AJAX, a web page would have to be reloaded to get new content. Now, a web page could load once and update itself on the same page. To implement AJAX in a website, however, required knowledgeable programming language skills. Soon after jQuery was introduced. jQuery lowered the barrier for designers to build AJAX websites.
2007: Atwood’s Law
In 2007 came the coinage of Atwood’s Law. Atwood’s Law states that if a web page can be written completely in Javascript, then eventually it will happen.
2008: Fast Javascript with Chrome V8
Although not in Nicholas’s talk, web browsers such as Chrome and Firefox became much faster at running Javascript code. Users noticed beforehand that Javascript was slow to use. Chrome’s V8 Javascript runtime was introduced in 2008 and made Javascript responsive and pleasant to use.
2010: Web MVC Frameworks
The next major milestone in Javascript usage came in 2010. In 2010 Backbone.js popularized the web MVC framework. A web MVC (model-view-controller) framework allows a developer to organize code to build bigger and better single-page web apps. Following after Backbone.js are newer front-end MVC frameworks including Knockout, Angular, and Ember.
Where are we now?
In reflecting on Nicholas’s talk, where are we now? Front-end web MVC frameworks Angular and Ember are growing: this year they have updates and new releases. Also, the Javascript ecosystem is growing. Node.js is a web server written in Javascript: this allows a developer to write front-end and back-end code in the same language. Meteor.js pushes the boundary further by sharing Javascript code between the front-end and back-end. Based on the growth of these frameworks, the single-page web app is here to stay.