Originally published on Medium

Lately, many people around me, developers, CTOs and even some PMs have used the term "modern frontend" to make me understand that he meant something much more complex than it was a few years ago. All this made me reflect on the substantial change that the world of frontend development has undergone in recent years and to realize how even the professional figure of the frontend developer is completely different from a few years ago.

Let's start with some historical context

My first approach to programming: 2009

When I created and put my first website online I had just entered high school and the frontend world was basically "a bit of html, css and javascript" mounted on a php page and for the more enterprising a magick wand called "jQuery"

My own IT professor called developing web pages "a game to play when you didn't want to program with C"

https://miro.medium.com/max/700/1*2Ra3sbxmcZnXgYjs5LO7pw.png

The current situation: 2020

The three main actors of web programming always remain html, javascript and css, it seems that nothing has changed.

https://miro.medium.com/max/700/1*4spIyRkRQmBq_4DLN8wQOQ.png

but with the growth of the power of computers and browsers we started looking for new javascript libraries to structure and optimize the code at its best, like React, Svelte, Vue and Angular,

we tried to find more developer-friendly ways to write the css, in order to make it more manageable for large projects where maybe many developers put their hand, like Less, Sass, Css-modules and Styled-components

we have created tools to support the development with these new libraries so that in any case the code readable by the vast majority of browsers was automatically created like Webpack, parcel and Rollup

we started creating reusable modules and managing them with package managers such as npm and yarn, we realized that we could divide the frontend from the backend by making them communicate viarest api or Graphql query, we realized that our applications could manage really a lot of data and therefore that state management libraries such as redux, vuex or mobx could help, we understood that a typed language could be more comfortable for working in teams or single tasks without having to go crazy with integrations and Typescript was born, we understood that our code must be tested with the same importance with which the backend must be tested, therefore finding solutions for unit, integration and behavioral test.

but above all we understood that the task of a frontend is no longer limited to writing simple support code to embellish a php page, nor to having to run necessarily on a browser and, more importantly, that the frontend developer is not the "artist" brother of a developer.

https://miro.medium.com/max/700/1*Zw0Eu-uwRkZj91vg9ihKLQ.png

The figure of the frontend developer has turned into a frontend engineer

A frontend engineer must deal with: