How do you know you’re building an application for tomorrow rather than one that meets the needs of the past? In the next couple posts I’ll cover the evolution of website technologies in three broad stages so that you can get a better handle on what you should expect if you are developing a new web application (web app).
But first, a disclaimer: My thoughts are primarily relevant to those who are developing a web app, not a website. What’s the difference? The distinction is really a matter of degrees on a spectrum rather than a categorical distinction.
On one side of the spectrum, you have pure web sites. These are the modern equivalent to a publication like a newsletter, brochure, book, etc. Web sites are relatively static in terms of how a user interacts with them. The content may change, but the primary activity of a user is consumption. The user’s interaction with the site is primarily aimed at extracting information.
On the other side, there are web apps. Web apps are applications that happen to be delivered through a web browser. Think of your traditional desktop application that you load up on your computer. Let’s call these sorts of programs desktop apps. You double click the desktop app’s icon, then presto, you have your accounting software loaded on your screen. Web apps are similar in function, but they’re loaded in a web browser.
Web apps have a distinct advantage over desktop apps specifically because they live in the browser. A desktop app runs on operating systems like Microsoft Windows, Apple OS X or Linux. Let’s say you own a Windows desktop and an Apple laptop. With a desktop app, you need both a Windows version and a Mac version. With a web app, you just need a compatible browser. Most modern web apps run in recent versions of Mozilla Firefox, Google Chrome, and Apple Safari. What this means is that most modern web apps run on any modern Windows or Apple system. If a web app is well designed, it’ll even run on tablets and smartphones via their mobile browsers.
Do you see what just happened? With a traditional desktop app, you’d have to write four applications if you wanted to support Windows, OSX, Android and iOS. With a web app, you get all four for roughly the price of one. Sure, there are compromises that need to be made, especially when you’re working with mobile devices, but those can be mitigated (those details will have to be for a different series of blog posts).
Let’s focus back on web sites versus web apps. Many sites you visit are somewhere in between the two extremes on the spectrum mentioned above. For example, for you, olivetech.com is a web site, by the definition above. However, for me, it’s a web app because I can login to it and create content, manage various information, etc.
In the following posts, I will focus on three stages to the evolution of web technologies for web apps:
- First generation (Server rendered / Round trip web pages)
- Second generation (Server rendered / Ajax apps)
- Third generation (API / Single Instance Apps)
I hope that you will come to appreciate the different options you have so that you can make the right decision when it comes to building your next web project