Thursday, August 21, 2025

(Misuse of) Javascript broke the web

Wow - JavaScript broke the web (and called it progress).

What a well-written, thoughtful analysis of things that have been making my developer life less fun for a decade. 

Some quotes:

The tragedy is, none of this is necessary. Once upon a time, we had a fast, stable, resilient web. But we replaced it with a JavaScript cargo cult.

Now it takes four engineers, three frameworks, and a CI/CD pipeline just to change a heading. It’s inordinately complex to simply publish a webpage.

[...]

Around 2010, something shifted. The iPhone was ascendant. Native apps were sleek, fast, fluid. Angular, the first mainstream JavaScript framework for the web, had just emerged. And suddenly, every CMO started saying the same thing in website briefs: “Can we make it feel like an app?”

Developers, armed with new frameworks and good intentions, said yes. JavaScript could, in theory, do seamless transitions and slick UI. So we built towards that promise. Or tried to.

Spoiler alert: we didn’t get app-like performance. We didn’t get better user experiences. What we got was an arms race of complexity.

[...] 

 And so, we rewrote the rules of web development around entirely different needs, almost overnight. Not content, not speed, not interoperability, not discoverability. Just code.

[...]

Fast forward to today. Ironically, after years of chasing abstraction and complexity, the JavaScript ecosystem is now scrambling to reintroduce the things we lost.

Server-side rendering? Back in fashion. Routing? Carefully managed. URL structures, metadata, even HTML output – all being rebuilt, one plugin at a time.

 If I disagreed with anything, it's this:

Today, we optimise for “DX” – developer experience. Not user experience. Not performance. Not outcomes.
 

For a certain subset of developers... not true. At all. It's a mess and everything is harder than it seems like it should be - complexity is not counted as a cost and "ability to follow it in your head" is not prioritized at all. 

If you are old enough to remember the old 8bit home computers - they used BASIC even though it was slow and interpreted - on machines that were already slow - because the run-eval loops is SO powerful. And for me, there's a through line to that technology, some early scripting in like Perl and what not, and the Evergreen/Buildless stack I prefer now - everything is transparent, everything shows its work. Ever since the rise of Angular my day job has been about building blackboxes, as if everything was a standalone binary app. 

No comments:

Post a Comment