The entire concept of a backend and frontend exists from a now ancient implementation model called the “client-server” model.
In short, you have one computer handling all incoming connections through the internet. All these clients are coming to a server via an IP address and asking for information, one at a time.
Frontend development is the creation of logic/code at the client side and backend development is the creation of logic/code at the server side. This can apply to websites, multiplayer video games, desktop apps, mobile apps, chat apps and pretty much any software that is following the “client-server” model.
Your browser, whether on phone, tablet, or computer, is a client software. It is an app which runs code to interpret the information on the server. It is the exact same thing as a Massive Multiplayer Game’s client where you have to download the assets of the video game and play on your computer. The client or browser downloads assets/content from the server and runs it just like a video game client.
Even in video games there is frontend development and backend development. It is literally the same thing, but different languages and styles of coding. In a video game the game client downloads the video game assets, the most current updated logic and runs with a connection to the server.
In the frontend of a website, it downloads the assets(HTML/CSS/Images), updated logic(Javascript) and runs with a connection to the server to update the client with all the goodies the server has to offer.
Why Do We Need Both?
The real question here is, why do we need a frontend. They exist together because a pure server app would be impossible to deliver from a distance while remaining mobile and portable to each device. The frontend exists because we need to find a way to make the server universal to each piece of machinery.
Honestly, it is genius. By creating a standardized front-end blueprint (internet browsers) we allow a server to work on every device, relatively the same. It can be Firefox, Brave or Chrome on phone, tablet or computer, yet the server works on all of them.
Why? Because we have a frontend that is standardized across devices and companies. We need both because, well, we need to make the server universal to allow us to deliver a product to as many devices as possible.
What Technologies Exist for Backend?
Backend development exists for almost every programming language. In terms of video games, it is probably all of them. In terms of websites and the internet, it is most of them. Theoretically, so long as we are indefinitely skilled, we can create a backend server out of most to all languages.
We can even take a client-sided game engine, like Unity, Godot or Unreal, and create a custom backend server to run multiplayer games in any language. We can even use web frameworks to create a backend for a video game or create our own custom server-sided framework all from scratch, creating the front end in Unity/Godot.
The exact same concept applies to websites but the front-end is already mostly built. To keep things simple, we developers like to use pre-existing frameworks which make coding a backend extraordinarily fast (with moderate skill at least).
For frontend we can at this point use plain HTML/CSS/JS or we can use builders which, when compiled, create a set of HTML/CSS/JS, like React, Angular and Vue. To explain this a bit. This is a frontend framework.
Basically, you create your own way of coding through a framework, separate from HTML/CSS/JS, then compile all the code from the framework down to client side HTML/CSS/JS and deliver that on the server. This is the whole concept of React, Angular & Vue.
Anyway, for backend web development there are many frameworks in every language from Javascript’s Node to C++’s Crow where we can learn to create a backend easily. At least, easier then making it on our own in that language.
Funnily enough, we can “stack” these frameworks, using a backend framework/language on top of a frontend framework/language. We call this a tech stack. If we were a programmer who can do frontend and backend, we would call ourselves a full-stack programmer.
Anywho, I hope you learned something…
Happy Coding!
Resources
Client-server model: https://en.wikipedia.org/wiki/Client%E2%80%93server_model
Frontend/backend wiki: https://en.wikipedia.org/wiki/Frontend_and_backend