Web developers: remarkably untalented and careless?
This passage here from John Gruber’s review of some new macs struck me in particular:
Web browser rendering is surprisingly resource-intensive — partially because modern HTML, CSS, and Javascript are remarkably complex, and partially because most web developers are remarkably untalented and careless programmers
I disagree with Gruber’s take on a lot in tech, but I think this is an accurate representation of what people in tech who aren’t web devs think of web dev.
Our problem is this is the only rational conclusion to draw from experiencing our work.
Of course, my line is that web dev isn’t unique in kind (most of software dev is pretty bad, I even wrote a book about it), but my specific corner of it – web dev – is unique in degree: the web experience is so much worse, on average, and so much more dysfunctional than even the most mundane shitty native app that most people have access to.
The field as a whole either keeps denying there’s an issue or blames somebody else. Usually they blame ads and analytics, but if they were the only problem, then ad blockers would be a genuine cure-all.
I always try to point out that the entire software industry is dysfunctional. It isn’t just web software that’s bad. The software industry management class is woefully undereducated about the issues inherent in software development, which is why they don’t push back against the bad advice they get on web dev.
But the people they’re getting that advice from? By and large influential web devs. Some of them senior. Some of them just senior on Twitter. But, React and its ilk are popular. Most web dev use these frameworks voluntarily, even when working on their personal projects.
- “Single-Page Apps are vastly superior to any alternative in terms of User Experience… No I haven’t done any user research to back that up.”
- “We need to base our app on React because the only way for us to realistically scale up recruitment is with a popular framework… No, we aren’t hiring.”
- “We would be fine if it weren’t for all the cruft that sales and marketing makes us add… No, we don’t have a UX designer on the team. Well, Joe does that. He’s one of our full-stack devs. He used to be a UX designer.”
And you can’t really just pin the blame on individual technologies.
Sure, Single-Page-Apps and React are objectively not fit for purpose for most websites and web apps. Sure, most frameworks bake in affordances that – over time – pretty much guarantee code bloat and buggy navigation.
But, y’know, our UX design is also awful.
Like, genuinely bad.
Most web apps – even when wrapped in Electron – have the usability and aesthetics of a 1990s enterprise Windows app trying to fit in at pride. Same old, same old, just this time with more colours and grossly misplaced attempts at casual banter.
(Seriously! What’s up with the grossly inappropriate UwU, creepy intimate, backstabber tone of modern software copywriting? Fuck off! You’re a tool, not my friend!)
Or, look at any time web software intersects with social behaviour. Both our collaborative and social software misunderstand basic human psychology to such an extent that it literally costs people their jobs, endangers their lives, and even leads entire societies to destruction (see Meta for a few examples).
Don’t get me started on accessibility.
Next to nothing we do as standard in this industry is right. Many of us – still a minority – have been pointing this out for years, always ignored, and now this is how the world sees us:
Remarkably untalented and careless.
So, just this once, I’d like to suggest that everybody in web dev point their dysfunctional novelty seeking (of which I suffer as well) in the direction of HTML and CSS. See how much can be done without JavaScript. It’s a lot! Then look at writing more lightweight JavaScript that’s layered on top of the HTML as enhancements. Because it’s an enhancement and not required for functionality, you can cut the line higher and use newer tech without worry.
See how refreshing that feels.
Really, really start to invest in user research (actual research) and UX design.
The stuff we put out is starting to look embarrassing.
We’re pretty much the one part of the field of software that would be genuinely justified in throwing out the old ways and trying something new.
That, in and of itself, is an opportunity.
We might not be able to convince our managers, but we can try.
If we’re vocal enough as a group, we can make sure that the misplaced tactics that led us here cease to be uncontroversial standard practices.
We can plant seeds of doubt, and those seeds can grow into the thin end of the wedge.
While you’re here. I’m working on a course on testing and import maps – two things that I think go great together and solve many problems. The pitch page for the course is still a work in progress and I would really appreciate some feed back on it. So, if you have time, have a look and see what you think. Then, if you have the time, let me know what you think on Mastodon, Bluesky, or via email. All feedback is greatly appreciated.