In this post, we'll dig a little deeper into the tekkie area. We will deal with two technical terms that IT people like to use. Since these terms appear in different environments, they add some confusion. So, learn about the backend-frontend difference with concrete examples from the digital signage industry.
What do Frontend and Backend mean?
Complex software solutions, especially web-based ones, can divide into two areas. The term frontend describes the user interface that is visible and interactive for the user. The backend works invisibly in the background and involves the part that processes data and user actions.
The terms are also often used outside of web software. However, sometimes this leads to strange, rather confusing excesses. The well-known Typo3 CMS calls the administration area, backend and the publicly visible part frontend. I think this is historically grown nonsense because it distorts the terms and causes confusion.
Frontend – The visual part of your work
When you work with a software, you are in the frontend area. This contains three components:
The so-called user interface (UI) with its forms, input masks, and menus.
The view area, with data visualization (lists, tables, graphs) and images as well as videos
The design of the application or website
Frontend development deals a lot with graphics, layout, and user experience (UX). Frontend developers usually consist of designers or graphic artists with programming skills. They are trained to create user interfaces that are as efficient and user-friendly as possible.
Their programming skills are therefore typically limited to frontend languages and their frameworks.
Good Design and markup languages for frontend development
JavaScript is a typical programming language for front-end development, not only for websites. It has made enormous progress in the last 20 years in terms of standardization, performance, and efficiency. Meanwhile, there are powerful libraries as well as frameworks such as jQuery, React, Angular, Vue, etc. So-called frameworks are pre-programmed frameworks that make it easier for programmers to work on complex projects.
In the early 2000s, ActionScript with Flash was also popular. Away from web programming, other front-end programming languages exist, such as the declarative QML. The user interface SMIL Players for Android based on QML, for example.
For layout and data visualization in web projects, HTML is recommended with CSS. HTML marks out the content and CSS brings it to the optical forefront.
By the way: HTML is not a Programming Language
If someone introduces themselves to you as an HTML programmer, you now know that they are a beginner or an imposter. HTML is a markup language that you use to tag content and has no programming commands. Correct would be UX, frontend or JavaScript developer.
Backend – The Data Access Level
The backend processes, calculates, stores and exchanges the data entered by the user with other applications. Typical backend software are databases, web servers or so-called microservices. The user is usually unaware of this. Those components work in the background.
The tasks of backend developers consist of programming the so-called business logic and defining interfaces. They are trained software engineers, often master several programming concepts and are familiar with databases as well as software design.
Graphics, design, or knowledge of user guidance are rather less important for these programmers.
Good Backend Languages
The following languages are common for backend development:
Python
Java
PHP
C#
Ruby
Perl
SQL
JavaScript
Two notes:
SQL is not a real Programming Language
SQL is considered a query language and is also not a programming language. With SQL, no arbitrary programs can be written because it is not Turing-complete (Wikipedia).
Thanks to powerful frameworks like Node.js and Deno, many developers have also been using JavaScript as a backend language for some years. Opinions on this vary. The advantage is that everyone in the project uses the same language, and Node.js is extremely performant in the network.
However, I don't believe in pushing a limited frontend language into a backend with a notoriously unstable Node.js, for the sake of not requiring programmers to learn another language. Good developers use the most suitable programming language for each task.
What is a Full-Stack Developer?
So-called full-stack developers work in both frontend and backend development. They are skilled in several programming languages and serve as a bridge, as they understand interrelationships better.
Frontend and Backend in Digital Signage
can, of course, also be divided into frontend and backend. Here it is clear to see how complex the topic becomes when we leave the area of web applications and take a holistic view of a digital signage solution.
After all, there is software that only performs frontend tasks and software that only acts as a backend.
Frontend & Digital Signage
In our industry, we can refer to the so-called digital signage widgets as typical frontend components. The data usually comes from a microservice backend, and the widget displays the information graphically on your screens.
A digital signage player can also be considered a frontend application. It fetches content from a web server and displays it on the screen. The viewer only sees the content or touches a touchscreen to get specific information.
Backend & Digital Signage
A Digital signage proxy can be considered as a pure backend software. This ensures that the screens make optimal use of the available Internet line and do not download any contents twice.
The Digital Signage CMS, as a typical web application, is both by definition. The subscriber who uses it to create his playlists uses it as a frontend. The player or the proxy use it as a backend. Where the latter, as just noted, serves as a backend for the player.
Why the Separation into Frontend and Backend?
Software is divided into frontend and backend for better scalability of the project development. While software engineers and database programmers develop the backend, designers and UX programmers work on the frontend. In this way, several specialists code efficiently and independently of each other in different areas. Communication and data flow take place via defined interfaces.
By the way, there are even more subdivisions to conceptually divide software. Among others, the so-called MVC pattern (Model-View-Controller), which divides web software into data, view, and control components. I want to avoid expanding on that here because it will go beyond the scope. Only so much:
The art of software development is to divide large requirements into small individual tasks and solve them one after the other. This requires organization, communication interfaces and clever splitting of tasks.
This allows numerous specialists to work together on a project in a highly selective manner, without interfering with each other's work. The genius lone programmer, who controls the world with his fingertips in the basement and penetrates the most isolated systems within seconds, exists nowadays mostly only as a Hollywood cliché. Programming is teamwork!