When talking about programming, coding or web development, it can be hard to understand the technical slang, yet some expressions are used frequently such as “Backend” and “Frontend”. Two words that we hear more and more, but what do they mean? What is it and what is it for?
I have the habit of explaining these technical terms to my programming students on their first day, and today, here’s the explanation for you:
Backend and frontend are everywhere
In the field of computer development, we develop “applications”. These applications can be a website (eg. the website of the Wild Code School), or a web application (eg. Google Drive), or a mobile application (eg. Waze). To work properly, an application or website often needs what is called in tech jargon, a backend part (or backend) and a frontend part (or frontend).
Backend and frontend simplified
To better understand these two concepts, let’s step back from the technical terms for a moment and take an example from everyday life: postal services.
Let’s imagine the following situation: I need to send a letter to a company, in return they will have to send me a letter providing an answer to my request. In this example, the letter I have to send represents my search for information on a website (or web application).
Below, we will break down the various actions that result from the sending of my letter and all the necessary steps from its sending until me receiving the company’s response to my request. Several stakeholders will be involved in the following steps:
– the postman
– the mailbox
– the sorting center
– the post office
– the drawers in which the mail is stored
– the mail
Let’s now break down the process’ steps:
When sending my letter by mail, all the physical interactions that I will have while the mail is in my hands represents the front-end part of the business.
On the contrary, the entire transport and processing of my mail (in which I am not directly involved) represents the back-end part of the business.
Now you should better understand the sentence that was quoted above “The frontend is what we see and the backend is what we do not see”: I see my mail when posting it, I see the mailbox, I see the mailman => it represents the front-end part. But when my mail is sorted, stored, in transit, etc … I do not see it => this represents the back-end part of the system.
Concretely for an application or a website
The same concepts are found in the life cycle of a website or application:
- I see the website that I browse. To interact with the website, I click on links, or I fill in forms that I see, it’s the front-end.
- Once my click action is over, the website or application works autonomously: it receives my request, searches for the information that I requested (for that it will browse its database and analyze / secure the data), returning it to me, this is the backend part,
- Once the backend has returned the information, I can browse it again and interact with it, I’m back on the frontend.
Both sides of a website or application are essential (just as much as the sorting center and mailman), one can not work without the other just as with postal services, it is not the same person handing out mail and sorting it.
In the same way when developing an application or a website, both front- end developers and a backend developers are needed.
Comparing even further….
Going even further, one could talk about security or performance: La Poste (France’s national postal service) offers different shipping methods for my letter (with tracking, colissimo 24h, etc …) representing slightly different paths in the backend part of the process; on my website, I can vary the performance and security of my actions via a small programming difference of my backend.
In an app for instance, you often have to register by entering an email address and a password, before accessing your private and personalized area. Here, filling the form represents the frontend part: you view the action. While the securing of your account represents the backend: you cannot see, visually, that your account is protected, yet it is the case. Everything is done in the backend.
We could layout the same logic with 24-hour shipments and the processing performance of a website for instance.
What about “languages”?
The company La Poste allows you to send your letters, but you could also choose another company (DHL, Fedex, etc …). Each offering their own services, frontend and backend methods.
I will come back in a following article for more in-depth details about programming 😉
See you soon!