Frontend Development is dead. Long live to Frontend Engineering!

Do you remember the good old times where all you needed to do was to write some good CSS and HTML?
Maybe a little bit of PHP, JSP or (if you were a skilled frontend dev) some Jade/Pug variables, imports and some jQuery code…
…well, it’s all dead. And that’s the greatest thing that could ever happen to frontend development.

Legacy is a developer problem

Being a developer means “never stop learning”.
On the backend, some technologies will last for decades. Just think about Java, PHP, Ruby (etc…); once you setup your server, it will serve your application forever.
Frontend is totally different: some APIs will be deprecated in a few years, some browser will evolve and some will loose support.
Some new frontend frameworks will replace some old/ugly/outdated libraries, and will help you to be more productive. You can’t ignore that.

To ride the innovation wave is a developer responsibility.
While jQuery was an awesome library in 2010, today is pretty useless, ugly and outdated.
Some frontend devs will face some difficulties while trying to bootstrap a modern user interface with React, Vue or Angular and that’s totally fine.
They just need to learn something new, ’cause that’s what developers do.

Fear of JavaScript

In the last years, JavaScript has become one of the most popular programming languages.
Some frontend devs still refuse to adopt it as an essential language for the frontend, and that’s extremely wrong.

The days where you could code an entire user interface with just HTML (or Jade/Pug) and CSS (SASS/Less) are dead. Get over it.

As a developer, sometimes you need to forget everything you learned in the past. Being good at coding with jQuery/Zepto/MooTools, doesn’t mean that you will be a good React/Vue/Angular developer.

After some years writing this:

this will be pretty hard to understand:

but that’s fine, you just need to learn something new.
The advantages of writing Vue/React/Angular components instead of some messy jQuery code will be clear really soon, as you move on studying reactive programming, component-based development and some other new technology.

Being good at JavaScript coding, today is an essential skill for every frontend developer.

I’ll say it again: SASS, Pug and jQuery are not enough.

Frontend Engineering

With Backbone and Angular, we definitely said goodbye to Frontend Development.
These two libraries started a revolution that lead to the Frontend Engineering, where web knowledge was important, but not enough.
Today, you need to know how to setup WebPack or Rollup in order to bundle your application. You may need to know how to use Lerna to manage multiple packages. And what about ESLint? Prettier? TypeScript or Flow? Yarn or NPM? Babel?
JavaScript is not just “a shitty frontend language”, like many developers say. It’s a complex, fast growing programming language that will help you more than you think.
Its community is full of smart engineers which comes from different experiences and will help you to find your way through the language.

The point about Frontend Engineering is easy.
User interfaces are getting complex and user experience will be compromised until you’ll find a way to optimize your code.
Think about how you wrote code in 2005: did you really care about scalability? Performances? Clean code? Tests?

Today we often work on the frontend writing complex algorithms, unit tests and care about performances and page/bundle size.
In 2005, writing good frontend code was easier, but even ugly code was accepted (in most cases).
In 2019, writing good frontend code is extremely hard, and ugly code cannot be accepted anymore. Why? Because today users have high standards, and performances, scalability, smooth animations, fast execution… everything matters.

Just be honest and say it: how many times did you care about the size of a library, before importing it into your project?
How many times did you refactored an entire script just to improve its maintainability?
How many times did you care about unit tests? And what about performances?

I’ll be honest: I often wrote down a quick and dirty solution, ’cause every developer I ever met, did the same. In the last 5 years I realized that I couldn’t go on like this, so I left jQuery, Zepto and embraced React and Vue. I learnt about ESLint, Unit Tests, clean code and studied algorithms and data structures.

This changed my life and my enthusiasm about programming.

The 2020 Frontend Engineer Mantra

  • Old technologies exposes exponential problems. As soon as you leave them, you’ll leave your problems behind.
  • SEO is important, but it’s not an excuse to avoid React/Vue/Angular. We have SSR and it works perfecty.
  • JSP, ERB, PHP are not enough. We are in 2019, we have Nuxt, Next and other great server side technologies. Adopt ’em.
  • Clean code is a must.
  • Algorithms and Data Structures can save your job. Literally. Study ‘em!
  • Tests are essential.
  • JavaScript is your friend.

Since Feb 2019 I decided to write a serie of articles called JSMonday, which talks about modern JavaScript, gotchas, ecosystem and more.
You can find all the articles on my Medium profile!