But frontend stuff is messy. How do you tell a person what they're trying to do is wrong and they need to change their inputs? Oh, maybe we can highlight the input or we can pop a modal message. Haha, psyche! Users ignore that shit! Now what you gonna do, buddy?
Frontend is a mess because all you people are a mess.
The unfortunate truth is that if you're doing B2C or even B2B outside of tech companies, the second one will often come up...
Bad devs exist. Bad users do too. Thing is, you can't usually fire the bad users.
No dude, I have things to do and your little software is a tiny roadblock in my day. I dont want to become a fellow expert in your niche, do the thing and get out of my way.
Building UI for work and for consumers is completely different. I’ve done both, user attitudes are veeeery different. Building an ecommerce page is also very different to building an engagement trap for users to sit in.
Problems start when engineers/designers/producters don’t understand their users and their goals. Or when the user is not also the customer (this is the worst)
Where by people you mean management and sales, and by produce you mean add 150 different tracker scripts? :).
Snark aside, contempt for frontend dev and contempt for users are two different things; the latter has thoroughly infected the fields of UI/UX. It's most visible in webdev, because that's where most UI work happens. Second to that is mobile app dev, where it's just as bad.
Also, there are actually two somewhat distinct types of contempt for the user:
1) Paternalism - "users are idiots and need to be babysit at every step, or else they hurt themselves (or make us spend money on support)"; this one is pretty overt in UI/UX.
2) Exploitation - "users are livestock, the purpose of the site/app is to milk them as much as we can - whether it's taking their data, money, or both; the design must guide users to allow extracting maximum value from them before eventually discarding them"; this one is less talked about, even though it underpins many UI/UX patterns (not all of them known as "dark patterns").
A while back, I was supporting an e-sports event. We had professionals, competing for an awful lot of money who were deeply familiar with the game. We had taken mobile phones, etc from them so no distractions.
They were briefed before hand that all they had to do was wait until they were given the green light, and click the big OK button on their screen to enter the game. We added a giant modal with the OK that explained "press this button when you are told to". This was a last minute workaround for the fact that we could only tell how many people were in the queue for something, but not which of our expected players were not in the queue. Our telemetry tells us one person is missing, so we have to go walking around to find them. Found the guy, sitting in front of a giant modal saying "Click this when you are told to", and his response was "I didn't know I was supposed to click it".
Now add mobile phones, children, doorbells, cooking, neighbours, and this becomes widespread.
Reminds me of a quote I'm not too sure if it's authentic but it's way too believable: "There is a considerable overlap between the intelligence of the smartest bears and the dumbest tourists."
Like, over half the population is barely literate [1]. That's why we're seeing so, so many interfaces being "dumbed down", with options for "power users" being hidden behind ever increasing hurdles, font sizes and margins/paddings increasing, and visuals being dulled down. It's all being ground down to be palatable to an ever increasing amount of utterly braindead people.
[1] https://www.thenationalliteracyinstitute.com/post/literacy-s...
It reminds me of an online store in the beginning of 2000s
To buy a product, you had to drag&drop the product image over the shopping basket icon. It took me quite a while to figure that out, and I bet they lost a lot of customers.
[Edit: I acknowledge that a PM or manager may have forced the developer to do this, but it's just one example of many]
Sometimes the developers have to take the blame, instead of blaming "stupid" users. Some take that attitude to frameworks as well. If the users complain, they haven't understood how to use it correctly. Just look at the "how to make a todos in 5min" video on YouTube to be convinced of its beauty
Also, backend people can be arrogant as well, but it seems that for some reason new ideas tend to be picked up quicker in frontend, which unfortunately results in bad ideas spreading fast too.
It's only now, in the days of "vibe coding" that I would firmly put the sole blame on developers for bad application interfaces, because it's usually just one clueless person who is YOLOing code out into the wild. Everywhere else: hidden icebergs of complexity and you didn't know what led to the current state.
I like people. I really do. I especially love the users of the software I write, and go well out of my way, to craft the best UI possible.
But I am constantly being blindsided by knuckleheads; some of whom, are really, really smart, educated, and inquisitive people.
I write iOS apps, and spend many, many hours, testing and tweaking. Right now, I am completely rewriting an app, because I couldn’t get the UI right, at the final stage. I realized my fundamentals were borked, and that I needed to go back to the ol’ drawing board, as Wile E. Coyote would say. Many developers would have shipped, but I have the luxury of being able to redo it (I have done it before).
It’s a cool trick, and one that I’d probably use, if I was dedicated to Web design, the way I am, to app design.
As a backend guy who considers himself extremely fortunate that nearly all of his users/customers are technical, this got an audible chuckle out of me.
Not saying that you're totally wrong, but I think this difference is not necessarily a deliberate decision by individual engineers, or caused by personality or skill level.
The employee market demographics surely play a role, but this is about concretions, not generalizations.
There is no lack of (often poor) generalizations when it comes to the skills and requirements demanded by BE and FE roles, respectively.
Not wanting to dismiss your idea / the grain of truth. But IMO you are falsely generalizing.
Also, there are not only FE devs claiming to be "full stack" when they don't know HTTP basics.
There are also BE developers with similarly daunting knowledge gaps.
Or in other words, in both worlds there are juniors masquerading as seniors and the other way around, depending on the organization.
Sure, there are some guidelines and best practices, but there are just infinite ways to display information to people. You can't just look at a technical specification for how well X/Y/Z performs because design is subjective and humans are all different. Whereas none of your users will complain if you use Redis (or similar) for caching something on the backend.
For example, every Thunderbolt dock's internals are basically the same, while the outer shell tries to be as different as possible.
Before WWW was a thing we already had user interfaces and the fact that current users frequently prefer those ancient, text user interfaces over modern ones tells a real LOT.
That's like saying "You need user interaction? Here you go, here's a frontend."
From time to time I dip my toe in and try new things, but as productive as I can get with Astro, the illusion vanishes as soon as I have to understand any of the plumbing.
Fortunately, I can still party like it’s 1999 just fine: just yesterday, I worked on a janky brutalist web app (the same way I did back in 2002, cribbing from the O’Reilly “Dynamic HTML: the Definite Reference”) and “deployed” it with rsync to pico.sh. It’s practically unstyled and I didn’t even use jquery, but it works.