What Is a Web App?
Topics: Tech, Thoughts
Several years ago I happened to communicate with potential customers on job posting sites. I noticed that most of the customers used terminology that was a bit different from what I would use.
If they said something like, ‘I need an app’, it was about a mobile application. For me, ‘an app’ meant any type of application - a web application, a desktop application, a mobile application - but their use of this word was more particular. Customers would rarely mention a web application. More commonly, they would refer to a ‘website’ or a ‘web page’.
Let’s talk about what a web app means. What is the difference between a website and a web application, and what's a web page? Let's break it down.
The Web That Took Over the World
The nature of software evolved a lot in the last twenty five years. Twenty five years ago I was a university student, I studied software engineering, and most of our applications were self-contained. Each application had its own code, visual style, and data right in it. Everything was stored in the local computer.
We studied some ‘distributed applications’ and databases with multi-user access, but everyone imagined those applications as corporate systems inside companies that could afford expensive machines called ‘servers’.
Then the Internet started taking over the world. We got 56K dial-up modems and saw some web pages whose domain names we somehow guessed (Google was not the thing back then).
I would check websites of famous musicians and music gear pages - they all had nice pictures on them. Sometimes, I would even download the images and store them on my computer, imagine that. Apart from pictures, websites served as boards with information posted on them.
Some websites belonged to various businesses that wanted to be presented to the public online. A store could have a website with a list of products and prices. A musician could have a website with tour dates.
The great thing about it was, the owner of the website could change the information in just one place, and every visitor would be able to see the changes from his or her home. The only thing one would need to do it was a computer with a web browser installed - an application used to access and view websites.
Behind the Curtain: Understanding Websites
A web browser was what made websites so popular. Every computer had a browser installed and it was very easy to access information over the Internet - the user just needed to enter the website address in the browser address line.
The address was a URL - a domain name ending with .com, .net or a similar word. The browser knew how to process it through getting the domain name resolved to an IP address of a specific computer that we commonly called the server.
In its turn, the server had the information like products, prices, dates, cities, etc., pictures, videos, pages, fonts, styles, and everything else the browser needed to visualize the website. Whenever the browser requested the data, the hosting computer would ‘serve’ it with the information required.
The way the server responded to the browser requests was usually very simple. A simple query (with a page name) - data selection - response with the proper content.
This construction was what we called a website - or a web page.
But the concept became more sophisticated over time.
From Websites to Applications
Online sources say that Facebook was launched in 2004. There were other social networks launched at about the same time. They were a breakthrough even though they did not introduce any new technologies. Other websites were using the same tools already. But social networks took the possibilities of these technologies to the next level.
Social networks let users feel that there was something more interesting in the Internet than plain web pages. They allowed us not only to see some content, but to communicate with other people.
People communicating with other people meant the website had to take information from one person and pass it to another. That required a database for storing user profiles and posts along with some conditions related to the way that information could be accessed and shown to the public.
That combination of data storing and processing was what we called a ‘backend’. A backend meant a certain set of tools that allowed the developers to store data that could be run through logical constructions written in a programming language.
Business people would now want their web pages to be more sophisticated. So, the logic became more and more complex everywhere: in the database, on the backend, and in the browser.
This is how most websites turned into something bigger than online pages, into what aligns with our current meaning of web applications.
Evolution of Web Development
That pushed the world of web development forward. We web developers needed new tools and we got new tools from the software development community. The tools included web frameworks, open source libraries, relational and document-oriented databases, new versions of programming languages with better ecosystems, etc.
Over the years to come, we learned how to write large applications storing a huge amount of data… work with large codebases in online repositories… develop applications in distributed teams with common responsibility for the code state… cover the code by automated tests and keep the project functional at all times. Engineers had to level up their skills in web development.
We learned to speak business language and communicate with customers, because most web applications were still owned by non-technical people. People who knew their businesses and could explain their needs, but whose words still needed to be translated into technical requirements.
We learned how to decompose the code into multiple services and arrange various hosting services to serve one purpose. How to sharpen deployment tools to make production releases with zero downtime.
We learned how to make web pages in browsers look like native applications with sophisticated behavior. We also learned how to show these pages in mobile browsers and keep them handy and fully functional on phones.
And we are still adding more skills and possibilities to the list of what we can do. One of the recent upgrades we have got in the world of web development is so called machine learning (or deep learning) - a smart usage of artificial intelligence that enables a whole lot of data analysis on the backend.
Web Apps Around the World
If you look around and think about what the Internet has become, you will see really exciting projects. We have already said a few words about social networks, and I believe you know at least two of them: Facebook and Twitter.
In terms of technology, these two have gone beyond the original idea. They got smart AI bots, targeted ads, internal messengers, sentiment analysis logic for posts, APIs for developers, and many other things. They store a huge amount of data and serve the whole world, but their speed is lightning fast.
Apart from social networks, we know marketplaces like Amazon that also are about some kind of collaboration, but also have various kinds of payments and auctions implemented.
AirBNB and Booking.com allow one to find, review, and book an apartment for a vacation. YouTube and TikTok store many videos and provide the users with the ability to communicate around content.
There are online maps that can track your position and propose a route. Weather websites that can show you how clouds move across the sky almost in real time.
What else? You name it. They all are web based application examples. These tools have changed our world so maybe they are more than just websites.
What you see in the browser may look like a simple web page with some information about the service or a product you want to buy. But in most cases it hides really cool tricky things behind it.
I have a feeling that words like ‘website’ or a ‘web page’ do not represent that complexity. They are more suitable for someone’s profile or for a simple set of pages describing various services of, say, a travel agency.
But if the page you are on collects data, suggests suitable options, performs advanced search, connects you to other users, etc. - then we would call it a web application. Exactly in this lies the difference between a website and web application. And exactly such are the web application examples that we provided above.
The term 'web application' just sounds better and is a better description of what we can do - writing complex web based applications that are far more superior to what is known as websites.