How We Build Web Applications
In 2017 we have a greater variety of websites and approaches to building web-based software than ever before. We use websites every day. We use web-based applications every day. Since 2004, when Gmail introduced the world to "AJAX-powered", application-like interfaces online the web has steadily evolved towards delivering experiences on-par with what we expect from personal computing devices.
When it was initially created, the web was envisioned as a collection of "pages." Websites were mostly concerned with delivering content. At first, the content was mostly textual. Then, websites began to embed images, audio, and video. Today it would be hard to imagine a web in which text, image, audio, and video did not cohabit the same pages. This blending of media types has fundamentally changed entire industries, which we can see by looking at the number of videos on a newspaper website, or the audio versions of articles available on magazine websites.
Over the years, more than just the content of web pages changed. As technology continued to develop, we were frustrated with the way in which web pages were slow and clunky to use. Every click on a website caused a new page to load, and if we wanted to see updated information we needed to refresh the page, which also took time.
As mentioned earlier, Google released the public beta of Gmail in 2004, and that introduced the broader web audience to a pattern known as "AJAX" (Asynchronous JavaScript and XML). AJAX was a development pattern that leveraged a feature of browsers called XHR (XMLHTTPRequest) which allows JavaScript to make a request to the server without refreshing the page.
The ability to receive new data from the server without refreshing the page meant that it was now possible to build websites that could truly function like native applications on your desktop. Moving between emails in Gmail was a lot like using Outlook on the desktop, and it made web-based email a much more enjoyable experience.
The adoption of this technique caused interest in JavaScript to grow rapidly, and it led to the development of major helper libraries like jQuery. All of this effort around using JavaScript to enhance web pages was rolled into a trend and labelled "Web 2.0." The Web 2.0 era ushered saw a significant rise in the adoption of web technology by the general public and the creation of major new players online including Facebook and Twitter.
So much has changed that it's useful to take a close look at how we build web applications today, and why we've adopted these tools and techniques.