Hacker News new | ask | show | jobs
by kangalioo 16 days ago
The "frontend skills" whose growing irrelevance are bemoaned in this article consist largely of navigating a minefield of unintuitive edge cases, browser incompatibilities, historic baggage, exceptions to exceptions to exceptions.

Modern frontend, or the "tower of leaky abstractions", is finally a common-sense mental model for web development. Supplanted by force on top of an exploding bag of eccentricities that is web standards and conventions. The fact that it works at all and is merely a little leaky is an accomplishment in itself.

7 comments

> a common-sense mental model for web development.

You are contradicting yourself. Either its a "minefield...of edge cases..." Or it's a common-sense model. Not both.

I'm convinced we're still in this minefield of edge cases, not in a situation where we've solved all this, and where the tech to build "frontend" is clean, predictable, free of historical baggage etc etc etc.

All we have done, is plaster over these foundational mistakes and invcompatibilities. We haven't solved them. React doesn't solve the fact HTML was never designed to be a UI toolkit. Next.js doesn't solve the fact that JavaScript is full of design mistakes that prohibit it from ever becoming a safe, sane, reasonable (literally) language. Tailwind doesn't solve the problem of CSS being haphazardly introduced to style a markup which was never designed to be styled. Etc.

All LLMs now do, is having the "knowledge" of the horrors under the plaster, in a statistical model that was trained on examples from an era where 99% of the examples are hardly more than plastering to fix the ever reappearing cracks in the previous layers of plaster.

No, they are saying that the frameworks and tools discussed in TFA have made it look coherent. For the most part we have not worried about compatibility for a decade. All abstractions leak a bit but in practice it holds up quite well, well worth the cost savings and flexibility for many apps.
This is wrong. The underlying runtimes, HTML/CSS/ES implementations got much better, they constantly fight incoherences that old timers remember and at the same time add new powerful features.
Certainly.

But many of yhose foundations are wrong.

Mostly, because they were designed and implemented in a way that cemented them in place.

Is HTML the right abstraction for UI toolkit? If not, can we ever move towards an alternative that is? Maybe via wasm, IDK. Or css? Where we can never change the legacy (body has a margin, select is untylable) only add new, alternatives next to it (flex, datalist).

JavaScript is the only option, but it's fundamental design (weak typing, no parallelism, make it a poor choice for anything of scale. Which is why anything large or complex gets built in other languages that transpile, or that are somewhat available (wasm, webgl) as alternative.

Point being: yes, it is improving. So fast that an oldtimer like me cannot keep up. But all that improvement is tethered to foundations that are wholly unsuitable for what we want to use it for.

Agreed, TFA is lamenting the loss of a golden age that never existed. I was there. IE6-only plain JS was replaced by buggy jQuery which was replaced by unmaintainable Angular SPAs which was replaced by monstrous React codebases.
I think your ignorance is showing.

There is far more to it than all that.

I've interviewed far too many nextjs experts who couldn't do anything else. That's not a skill, that's just knowledge, which at this point is freely available.

That being entirely unfair. It is still a skill. They still learning stuff. It does not help them to be trapped in a bubble. But nothing is not transferrable. Things we learn, even if they are only a React can't write vanilla JS, it's still unfair to say they have no skill.

Just not a correct interpretation. Many skills start that way and even some people make a whole career mastering one thing and one thing only.

Not saying being trapped in React land unable to break out is good. But being able to create something, even if it's just with Nextjs is still a good thing.

We should hate on the businesses that force us to take shortcuts, value quantity over quality. They wanted boot camps with code monkeys.

Right, they have no knowledge and yet they can get shit done that is good enough for many use cases. That is precisely the point.
All while working for peanuts. Win for everyone, except workers.
im not clear what makes that not a skill?

other people cant do anything with nextjs, or anything with any front end at all.

its applied knowledge, understanding how nextjs works, and using it to build some application

Libraries come and go, but understanding the web means mostly html, js (in the form of web APIs), and css.

I've also been using react professionally since 2015 and I've yet to see a nextjs application in the wild. It seems to mostly confined to the startup sphere.

I'm not an expert, but I do ship frontends that muggles (the public) get to see, and my understanding is that frontend is like the yellow brick road in the Wizard Of Oz - if you don't veer of a small set of okayish best practices, then you can deliver a pretty good experience with a small set of boring and established libraries. But if you start interacting with FOTM amazing frontend frameworks of today (or even worse, of yesterday), have to cater for the weird quirks and preferences of other devs who do things in a very particular way, or 'ingenious' hacks and weird stuff held together by hopes and dreams and duct tape, the complexity and the number of ways these worlds can interact rises exponentially.
Yet, understanding which tower, level and room that leaky abstraction is in is still a very valuable skill that LLM-s might not see. Just because something is not designed perfectly from the ground up by a committee does not mean it's okay to just forget everything, shut the book and let the machine calculate.

I'm doing the latter btw, so I know what they get wrong, but it won't fool me into building an unmaintainable mess. My frontend skills come in real handy every time the agents go off the rail.

That's true and it also seems like the bundle of C, Unix conventions, and so on, is similar in a way, but older and so we're more used to it.
modern front end is still an absolute cluster. ask claude to use react on a greenfield project: brings in tanstack, mui, tailwind, shad something or nother, all kinds of stuff. Then when you run into an issue and ask AI to fix it, you watch AI argue with itself in real-time about potential bugs in browsers and in these libraries has opened my eyes to the absolute mess that is modern UI.