DEV Community

Cover image for Front-End Beyond the Web
Ricardo Gouveia
Ricardo Gouveia

Posted on • Edited on

Front-End Beyond the Web

Countless articles discuss the time when the world stopped having "webmasters" and started having "front-end," "back-end," "DBAs," "DevOps," and others. This shift has spread from small startups to tech giants.

The specialization of professions is an old trend. I remember reading about it back in elementary school, studying the industrial revolution. It’s natural that, when aiming to create a richer web experience with more interactions, more effort, interdisciplinarity, and specialization will be required from those building it.

What is front-end, really?

According to Wikipedia:

Front-end web development is the development of the graphical user interface of a website through the use of HTML, CSS, and JavaScript so users can view and interact with that website.

The definition is not available in Portuguese. In a free translation: "Front-end web development is the practice of converting data into a graphical interface through the use of HTML, CSS, and JavaScript so that users can view and interact with that data."

It’s important to note this refers to web front-end development. If we want to understand what front-end truly is, we need to look at another definition:

Em ciência da computação, front-end, interface frontal ou parte frontal e back-end, parte secundária, parte de suporte ou parte de retaguarda são termos generalizados que se referem às etapas inicial e final de um processo. O front-end é responsável por coligir a entrada do usuário em várias formas e processá-la para adequá-la a uma especificação em que o back-end a possa utilizar.

In general terms, front-end is what obtains and preprocesses the data that will be sent to the back-end. And here’s where the reflection begins: there are many other ways to get user data that differ from applications made with HTML, CSS, and JS.

User interaction

I’ve had this idea for a few years, and I posted this summarized reflection on Twitter, which received some feedback. Based on that, I can propose and explain a new term, building on the previous definition:

Web front-end development: is the practice of converting data into an interface graphical, through the use of HTML, CSS, and JavaScript, so users can view and interact with that data.

With this definition, we don’t change the role of a web front-end developer, but we broaden the front-end field to new possibilities of user interaction. Back to the Twitter discussion, here are some possibilities to consider:

- Mobile app development

App development for smartphones has basically become its own field, gaining solid ground with smart operating systems like iOS and Android.

However, the output of this kind of development still considers many front-end concepts: it interacts with users, presents an interface (not just graphical), and collects and preprocesses data before sending it to a server.

The similarities between mobile development and front-end go beyond concept: the many frameworks for building mobile apps using web-native languages (and their paradigms) create a technical correlation between these areas.

So, we can consider mobile development as a type of front-end.

- Personal assistants

This term might feel abstract, but it’s easier with examples: Amazon Alexa, Google Home, and Apple HomePod.

Here, we abstract the graphical aspect even more: the interface is primarily audio. However, the user still interacts with the device, which needs to connect to a server to process data.

Without a doubt, personal assistants — whether devices or apps — are a kind of front-end.

- IoT / SmartWatches / SmartBands / Wearables

The broad category of the Internet of Things (IoT) is mostly made up of devices that can be classified as front-end systems.

In the two most popular examples: both the Apple Watch and MiBand rely on a smartphone to function (totally or partially) and have their data processed and/or stored by servers outside the user’s domain.

Beyond wearables, a large group of smart home devices connects to servers for basic functions. They all have sensors that interact with the user (or with the environment, which the user modifies, making it an indirect interaction) to gather information and execute actions. Many of these devices don’t have screens.

Front-end beyond the Web

The front-end’s dependence on screens is still strong, and that’s not a problem — it’s just a reflection of the world we live in today. However, we should notice the small signs showing that users no longer depend so much on isolated devices; one such sign is the drop in PC sales and the rise in tablet sales.

I still fully agree when I hear someone say the foundation for studying front-end is HTML, CSS, and JS. It still makes no sense to jump to a broader context for someone simply seeking the basics.

But for people who already have solid knowledge of these technologies, it’s worth being a bit more conceptual and reflecting on the future of human-computer interaction (which might not even be so "computer" anymore). This change isn’t going to happen — it’s already happening.

We’ll need UX professionals to shape, design, and test how users interact with these devices (and they’ll also face a big adaptation), and we’ll need developers to build the technical solutions that enable the intended interaction.

This text is deeply related to an old controversy about the "end of front-end." Maybe that was the motivation behind my reflection. But anyway, my intention is not to provoke those who gave this prediction, but to present another alternative — not an end, but an evolution of the field.

If this text made you think, contribute to it in the comments. It’s more of an introduction than a conclusion.

Top comments (0)