DEV Community

Ryan Westlund
Ryan Westlund

Posted on

Why I Hate Frontend

I've always known I prefer backend to frontend, but lately I've put my finger on an extremely good way of explaining it: in backend I struggle to make it perfect, in frontend I struggle just to make it work.

In backend I have no trouble making a computer do what I want. None at all. The only trouble is in figuring out the most elegant way to organize it.

In frontend, I spend the entire time just trying to make the browser do what I want. Nevermind organizing it the best way. There are so many obscurities of layout and positioning and transitions and shit that I spend the whole work time doing something that's a given on the backend.

Discussion (27)

Collapse
macsikora profile image
Pragmatic Maciej

I think the biggest difference is human factor. FE is directly exposed to the user, user is unpredictable, and as FE engineer you need to understand how possible the app will be used, what to show, what to hide. What is better UX, what is more accessible UI. The second factor is multiple of difference in terms of user devices and how you adjust to it.

In contrary backend is mostly about data transformation. Your results are purely technical, data in db, data in response, FE is responsible for dealing with end user.

Collapse
jsf00 profile image
Saf Venture • Edited

Agreed👍

Collapse
jfbrennan profile image
Jordan Brennan

Agreed. It’s the human factor + the browser runtime is just so so different than backend applications.

Collapse
paraspl01t profile image
ParaSpl01t

Oh my god! You explained it perfectly.

Collapse
lionelrowe profile image
lionel-rowe • Edited

One thing I've often heard is that front end is never "finished". With back end, as long as performance is OK and the API is stable, you can pretty much definitively say "this feature is finished" and move on to implementing the next one. Sure, refactoring is much more subjective, but it doesn't affect the actual functionality of the code.

But with front end, you can endlessly improve on what you have, in terms of UX, visual design, accessibility, and so on. Maybe a feature already fulfills the user story and matches up perfectly with the wireframe, but it's not keyboard accessible, or the browser fails to save the state if the page crashes, or users don't get immediate feedback from their actions, or a hover state that wasn't shown in the wireframe is ugly or unintuitive. Is the feature "done"? Different developers and teams will each come to their own conclusions on that, and there's a high degree of subjectivity involved.

Personally I love the degree of creativity and flexibility involved, but I can totally understand why some people hate it.

Collapse
resurii14 profile image
Leslie

It is never finished. So true. :|

Collapse
shibby profile image
Jonathan D Herring

I have always enjoyed backend over frontend. It reminds me of baking a cake. Backend is the actual cake layers and fillings, where frontend is the outter icing and decorations. At first ascetics matters but flavor and substance is why we have a second slice.

Collapse
pjotre86 profile image
pjotre86 • Edited

Totally agree. I like to see it like that:

Backends you develop on the foundation of (more or less) solid operating systems.
Frontends on the other hand you develop against browsers. And even compared to ancient operating systems the browser is just a mindless squirrel. That's what you have to deal with in the end. Luckily there are so many frameworks trying to educate that squirrel. And Iuckily the squirrel is slowly but steadily growing up as well!

Collapse
dylanesque profile image
Michael Caveney

The front-end is just more complicated at the end of the day: I'm working on my first substantial web application outside of prod work, and I was shocked that the (relatively simple) back-end was basically done in 5 hours, while the front-end will take several orders of magnitude longer to "finish" when you consider data-fetching, optimization, improving the design, a11y, testing.......I could go on and on, but there are a lot more possible ways to accomplish, say, style and layout then server-side routing, to name an example.

Collapse
jfbrennan profile image
Jordan Brennan

“so many obscurities of layout and positioning and transitions” sounds like your beef might be with the actual GUI work. Getting proficient at visual implementations takes A LOT of practice!

Use a design system or CSS library and you’ll be way more productive. I like mine because it’s really simple and small (m-docs.org) but there’s a ton of good choices out there

Collapse
yujiri8 profile image
Ryan Westlund Author

I can't just introduce a new framework into the app at my job. An app already written, with 37000 lines of javascript.

Anyway, I doubt that would help with the issues I'm facing, unfortunately, as the kind of UI stuff I'm tasked with fixing is often incredibly specific and obscure, like making a tooltip popup animated instead of appear instantly, debugging issues with it appearing in the wrong position under some circumstances...

Collapse
jfbrennan profile image
Jordan Brennan

I feel your pain

Collapse
elias89 profile image
Elias

If you have to struggle with front-end -just- to make it work is because you probably need to learn more about front-end and if you struggle with back-end -just- to make it perfect it's because you haven't probably faced real world back-end problem.

In both of them we have areas to investigate, research, design, develop, make it shine, fix problems and learn.

Collapse
alainvanhout profile image
Alain Van Hout • Edited

It's rather easy to say 'you just don't know enough about it'.

Though come to think of it, that's exactly the problem with much of frontend (of which a large part css): to be productive with it, you need to know a lot of things, while for the backend work you need to understand a lot of thing (yes, that's a very broad generalisation, I know). The difference is that understanding can be carried over to other situations, while knowing dozens of css gotchas in no way helps you to deal with the other dozens of css gotchas.

To put it differently: backend technologies typically put great value in the 'principle of least surprise', while in particular css (though also other cross-browser stuff) apparently just ignores that principle (though partly there are historical reasons for that).

Collapse
elias89 profile image
Elias

Lot of people here talk about front-end mentioning only CSS, front-end is not just CSS.

And the problem with CSS is not CSS itself, it's the browser support which nowadays is totally different to what it was 10 years ago. Other than struggling with browser support, there are no problems with it, it's again..just learning how it works.

Collapse
yujiri8 profile image
Ryan Westlund Author

That was really abrasive.

Collapse
kamilliano profile image
kamilliano

I would advise you to try to stop pouring your emotions into technology. It has no feelings towards you, but instead, it slowly wraps itself around you to engulf and digest you inside its webbed and ever-changing body. As you struggle more, it just entangles itself firmly and drains the life essence at a faster pace...

But this is probably not technology but our old friend - human rut.

If you struggle with something, take a step back and try to understand why do you struggle. Identify what areas of knowledge you are weak in and try to break your weeks to measure how you will practice these to improve. You don't have to be perfect, accept to be good enough to do your job.

I used to tinker with the front end, but I didn't really enjoy it that much. Nowadays, I prefer to stick with data and automation, not because I love it, but I least dislike it. My interests are cognitive, behavioural sciences and computational psychology, so I try to read about this stuff at leisure.

Try different things to find out where you could see yourself in a couple of years. You don't have to beat yourself up on a path that you don't enjoy. Good luck.

Collapse
cullophid profile image
Andreas Møller

Personally i love working with the frontend but i agree that it's much harder than the backend.

Collapse
nokol profile image
Nokol • Edited

Css frameworks are a sweet lullaby

Collapse
luispinheiro profile image
Luis Pinheiro • Edited

I'm starting get full of front end also, i spend to many time doing de styles

Collapse
linhtch90 profile image
Linh Truong Cong Hong

What are the backend technologies you are using?

Collapse
yujiri8 profile image
Ryan Westlund Author

I've done web backends in Go, Python, Crystal, Rust, etc.

Collapse
resurii14 profile image
Leslie

Frontend and backend can be both pretty complex. But I think devs who are inherently artsy or visually creative tend to work well and enjoy frontend work.

Collapse
tvanderb profile image
Talon Vanderbeken

This is the perfect way of explaining it! That’s exactly what I experience.

Collapse
patarapolw profile image
Pacharapol Withayasakpunt

Backend seems uncomplex until I step into sysadmin and security territory.

CRUD can be pretty dangerous in my eyes.

Collapse
astrojose profile image
Joseph Emmanuel

This really relate to me. The fronted part drains me a lot compared to backend where i sometimes work flawlessly. .

Collapse
majklzumberi profile image
majkl zumberi

Totally agree😂 but i still Like frontend