In my previous post I defined web applications (web apps) in terms of desktop applications, saying "Web apps are programs that aim to provide the same rich functionality as traditional desktop applications, through a web browser."
Thus begging the questions, what are desktop applications and why do we need web applications? And what is 'rich' functionality?
Do you remember your computer from the 80s or early 90s? Did it look something like this?
Most likely your home computer wasn't connected to any network at all, least of all the internet! All your programs had to be loaded and were run on your computer. Pretty much all those applications would have been desktop applications. Simply put, they ran on your desktop computer.
If your computer ran out of disk space, you couldn't install any more software. And if you didn't have enough memory your computer wouldn't run the program (or often simply became unresponsive or crashed!).
Meanwhile your office computer may have been connected to a local area network (LAN), most likely on a client-server architecture. Whilst some programs still needed to be installed on your desktop computer, a few applications and databases and files could instead be stored and run on powerful server computers which typically had many times the processing power, memory and storage capacity of the average client computer.
Your computer became a client of the more powerful server machine. Instead of running the program itself, the client could request information from the server, and the server would run the program and respond to the request by providing the file or requested information.
What did this mean for businesses? Well, it meant that the typical office computer didn't need all the business software installed on it, and it didn't need to store all the information it needed. That was pushed over to the server, from where everyone in the office could share access to the same data and software. For the business it meant that instead of installing and maintaining software on multiple clients, they could focus attention on a single installation on the server.
This meant that the client computers didn't even need the excess memory to execute the software. With smaller disks and less memory - networked office computers could be cheaper to purchase, and overall IT costs could be reduced.
The largest network of all...
With the arrival of the World Wide Web, the client-server model went global and spawned the birth of web applications.
The client now didn't have to be a corporate computer, and didn't need any special software to communicate with the servers. In fact, it could be any device that could run a browser. And the browser could be a universal client for any web application - in most cases you didn't need any other software. If you could access a web browser on your desktop, tablet or mobile phone, chances are that you would be able to access and run most web applications.
In most cases a web application is not concerned about your devices storage size or the amount of memory. The device sends a request to the server, the server processes the response and returns it. The browser interprets the result and displays it. Your device generally does not store or execute any part of the application.
So the ability to access any application on any device on a ubiquitous client like a browser, without having to install, store or even execute the software is a huge benefit over desktop applications.
What about rich functionality?
Remember how we said that desktop applications store and execute the program on the desktop computer? Well, the benefit of this is that the response time between making a request, processing it, and responding to it is limited only by the speed of the computer itself. The request and response data never leave the computer.
In most cases on a desktop application the request-response for user interactions is near instantaneous and the user sees almost no lag between the two. The ability to carry out operations on screen and get immediate feedback and results is what is referred to as 'responsiveness' or 'rich functionality'. Nowadays this falls under the umbrella of 'user experience' (also called UX).
In the client-server model the process is different.
The request needs to travel over a network (usually cables and other hardware like routers) to the server. The server takes the request and processes it, then sends the response back over the network to the requesting client. Remember also that the server is shared with other clients and so it might not be able to process the request immediately upon receiving it. The responsiveness of the application is limited therefore by many factors outside of the client computer. The user at the client device is of course oblivious to all this.
In an office environment the servers and clients computers may not be too far apart so the delay could be acceptable. However, when the same model is applied to the World Wide Web, the actual distances and speed of internet connections can became crucial factors. For those who can remember, in the early days of the internet and dial-up modems, a computer could take several seconds to load a fairly simple web page from a web server located on the other side of the world.
It was therefore impractical to replicate the speed of desktop applications on web applications. Quite simple, the technology software development tools, and web industry standards were not in place. Therefore most early web applications were far from 'rich' or responsive.
Fast forward to today however, most people, have a comparatively high speed connection - even from their mobile phones. Furthermore, the web standards and software development techniques and tools have also advanced to the point that with a few caveats it is almost feasible to replicate the UX of a desktop application with a web application.
The huge growth of cloud-based web applications is a testament to how much web applications have transformed the software industry and pretty much replaced much of desktop software. When was the last time you purchased a shrink-wrapped box of software?
If you have an old desktop application that you're still installing and maintaining on your business computers, have you thought about modernising it for the Internet age? Why not contact us and see what we can do for you?