← Back to context

Comment by kristianc

3 hours ago

I'm sure I'm not alone in feeling the "deep expertise" OP laments was actually deeply inconvenient to many people. I understand that there's a good living to be made from knowing browser quirks, hand-rolling accessible components, mastering CSS specificity, but this is largely accidental complexity. More people building things is straightforwardly good, and if some of those things are slower or less accessible, that's a tradeoff people are entitled to make.

You can argue that abstractions hide consequences that fall on users who didn't choose them, but I'd argue back that LLMs likely have a better understanding of a11y conventions than I do as well.

The problem is, mastering accessibility, intuitiveness, compatibility, responsiveness, scalability, architecture, performance, and all those other less immediately visible, "forward-thinking" parts of UX/software development has always been difficult. Ultra high-level frameworks and now LLMs have, on the other hand, made it even easier to botch all of these and quickly roll out a half-baked MVP. The gap between "acceptable" and "decent" has thus been widening. As a protagonist of "decent", you have it increasingly harder competing against those pushing for "acceptable". And the push is understandable as well, it's MVPs that make money and details only "increase customer satisfaction" at best (and these days, who even cares about customers?).

The end result is more crunch and a sharp decline in software quality, maybe even job satisfaction in general. As an (unfortunately anecdotal) example, I started to find myself fixing up broken websites or removing elements that get in the way with dev tools and uBlock every once in a while, and have heard from other people on here that they have been doing the same (https://news.ycombinator.com/item?id=47390945

It gets worse when you realize that most of the money saved through these cuts only benefits the very top of the hierarchy.

  • > LLMs have, on the other hand, made it even easier to botch all of these and quickly roll out a half-baked MVP

    Compared to the status quo where people pretty much never consider these things, like accessibility, especially not for an MVP? How many people have never added written aria attribute? I would suspect 90%+ of people touching the frontend.

    The difference with LLMs is that (1) they have a latent rigor for things that you weren't going to spend time caring about anyways and, more importantly, (2) you can encode these things into prompts (AGENTS.md) and processes so that they happen even when you weren't going to invest the time with or without AI. For a lot of people this only means collecting some generic "skills" they found online yet it's still much better than what they were going to do pre-AI.

    That's why I think AI is saving software in some ways, not leading to worse software.

    Or, asserting that AI will botch software might hold more weight with people who have already forgotten how dogshit software was pre-AI.

    • I can somewhat see your point, but it is generally accepted that a wrong ARIA is worse than none, and LLM-assisted codebases, at least these days, only stick together thanks to testing, the more decent ones heavily emphasize in-depth human code reviews.

      If our hypothetical developer hasn't used any accessibility-related tags before, what chance is there that those parts of the website will receive adequate testing?

      3 replies →

    • I would much rather have software that works but lacks accessibility features than software that's broken but also has some broken accessibility features sprinkled in. The former is useful to many people, while the latter is useful to no one.

      But the key here is: LLMs don't have latent rigor, nor any other kind of rigor.

  • This is why the 'craft' should be left to open source for most commercial software. The business reality just doesn't care for it.

    Only when you have a PR problem does the business switch back to signalling quality, like Microsoft, although it remains to be seen if they still have the quality part. Most of the craftspeople get to say 'told you so' but also it looks like a sinking ship to them. Once the PR problem is gone, it's back to shipping at the expense of quality.

    This cycle conflicts with the idea of a craft, which is that you should do it that way all/most of the time. The business will stop caring about quality long enough that your skills will erode, making it a bad mix. Trying to practice a craft where you aren't in control of this cycle is corrosive to the spirit.

  • > As a protagonist of "decent", you have it increasingly harder competing against those pushing for "acceptable".

    Some people go on a bicycle because they can't afford a car. Should car makers see those people as a problem?

    > The end result is more crunch and a sharp decline in software quality

    If you have 10 people eating steak and 10 people starving, then giving rice to the starving people would also sharply decrease dinner quality.

    AI software is not the difference between good or bad, it's the difference between something or nothing.

    • > Some people go on a bicycle because they can't afford a car. Should car makers see those people as a problem?

      Contrary to what you seem to believe, cars and bicycles are different kinds of things, not two versions of the same fundamental type, so this rhetorical question doesn't make much sense (consider that also your legs provide the function of transportation but are nevertheless not a kind of car).

> I'd argue back that LLMs likely have a better understanding of a11y conventions than I do as well.

No, other people did. They wrote about it, and LLM can sometimes use that. Once they no longer write about it, what then?

> More people building things is straightforwardly good, and if some of those things are slower or less accessible, that's a tradeoff people are entitled to make.

That I agree with. The more the merrier, all else being the same. And if "AI" trickled into everything because of the undeniable improvements it leads to, the situation and most of the sentiments would be very different, I think.

But even then, people aren't entitled to the knowledge "created" by doing the work. If attribution and compensation were tackled in earnest, if you could only train on the materials of the people you pay to produce those materials, it might be much quicker and cheaper to just learn CSS.

  • > No, other people did. They wrote about it, and LLM can sometimes use that. Once they no longer write about it, what then?

    It can read the code? Historical discussions around it? Commit histories?

    > But even then, people aren't entitled to the knowledge "created" by doing the work. If attribution and compensation were tackled in earnest, if you could only train on the materials of the people you pay to produce those materials, it might be much quicker and cheaper to just learn CSS.

    OSS code and people’s public writings are available to anyone all the time. Common Crawl, the open source web crawl dump, has been around for over a decade. No one had any problem with these systems being developed on them, until they finally started to become useful, so what’s the sort of legal or ethical framework you’re pointing to?

    • > It can read the code? Historical discussions around it? Commit histories?

      Assume everybody is now using LLM because they're better, and because the people who created artisanal things in their free time out of sheer generosity no longer have free time, or any food at all, or simply no longer feel generous. And the few people who are such specialists that they would be slowed down by them only do proprietary work, for lots of money.

      What then? LLM learning from LLM doesn't really work, does it?

      This is not intended as some kind of gotcha, to me this is a huge elephant on the couch.

      > No one had any problem with these systems being developed on them, until they finally started to become useful, so what’s the sort of legal or ethical framework you’re pointing to?

      That it's perfectly fine for people to say "I was fine with that, but I'm not fine with this". They can give you detailed explanations for their individual decisions, every single one of them, but there is no point in discussing them in aggregate because that aggregate is an abstraction. And they're optional, too, it's not like people have to give an explanation, and aren't simply free to change their mind for no or for bad reasons.

      2 replies →

    • > It can read the code? Historical discussions around it? Commit histories?

      And if everyone bunkers up and all that open content dries up starting in 2026, let's say, what happens?

      8 replies →

  • > Once they no longer write about it, what then?

    The AI will no longer be able to reproduce new a11y conventions/guidelines, but if no one is writing about it, do any new a11y conventions/guidelines even exist at that point?

  • > They wrote about it, and LLM can sometimes use that. Once they no longer write about it, what then?

    That’s a good question but I suspect when new technologies come out, the normally indecipherable specs released by industry groups (which is why we needed blogs) will be deciphered by LLMs. Not saying this is good or bad (it’s likely both) just saying it.

Totally. Every "we're losing our craft" article has the same gloomy shape. That's enough of a bummer, but they also argue against themselves halfway through.

This one, for instance:

> But exactly which details are deemed “unimportant” is a very consequential and sometimes subjective decision. And eventually, the details always leak through.

Right, so you're saying this new technology will still reward deep technical understanding, because there's no way around it. I agree. Why is the whole tone of this thing "AI is making my craft a cheap commodity?"

Websites are largely better, technically, than they were 10 years ago. They're more full-featured, they're faster, SSL/a11y/responsiveness are stronger defaults. Content mills / SEO / news sites are a separate, terrible failure mode of ads and corporate incentives. That's not React's fault!

  • A craftsman's pride is an industrialist's nightmare! Software has been transitioning from a craft into an industrial process for the last two decades or so, and the software craftsmen of all stripes understandably do not like this!

>I'm sure I'm not alone in feeling the "deep expertise" OP laments was actually deeply inconvenient to many people.

And I'm sure I'm not alone in feeling that the convenience from ignoring the "deep expertise" and piling on hacks and lazy abstractions, all the way to modern multi-MB frameworks and Electron, is a regression.

Of course no one gives a shit about things like the user's computer/memory utilization. Or degraded experience. Or wasted bandwidth. Or the extra energy costs per 8 billion people - and the environmental impact.

>More people building things is straightforwardly good,

Is more people building public infrastructure "straightforwardly good"? If it means worse roads, worse bridges, systems that fail?

The same holds for software. And most things really.

I used to make a living doing frontend development, and quirks and knowing idiosyncrasies is a burden to your craft. Yes, it meant there were higher barriers to entry, but it also resulted in a lot of broken websites, and I can tell you it was never fun nor rewarding.

I think the original author has a much stronger thesis around AI devaluing the craft of coding, but his specific examples don't stack up.

> this is largely accidental complexity.

Is it? I know hating CSS is a fun pastime for folks around here, but maybe it’s just that building good, rich user interfaces that people can use is an inherently hard problem.

Sure, the browser is slightly more difficult due to maintaining backwards compatibility and multiple implementations, but I’ve yet to see a better UI framework/language that has to deal with the other constraints of the web platform.

  • >that has to deal with the other constraints of the web platform.

    Well there's your problem right there

    • Right - but those constraints are inherent to the medium. Like basically unconstrained screen sizes from large desktops to mobile, with the user free to resize anywhere in between (and can't be constrained in the way that 'real' apps often are). Input methods of both fine mouse control, and course touch.

  • > I know hating CSS is a fun pastime for folks around here, but maybe it’s just that building good, rich user interfaces that people can use is an inherently hard problem.

    That CSS and web never really addressed did they? There's almost nothing in the web platform to build rich user interfaces. You can barely do styled text.

    CSS and HTML are literally littered with accidental, ad-hoc, badly thought-out and badly designed one-off solutions, often to problems no one asked for. There's a reason it took until 2026 to animate `height: auto`. There's a reason why `article` "semantic" element has to be used when you display product cards or widgets. There's a reason why CSS scoping has been stuck in limbo for 10+ years. There's a reason...

    The web is one of humanity's greatest achievements. But let's not pretend that it's not a textbook study in accidental complexity.

"Frontend's Lost Decade" has nothing to do with a11y or semantic HTML. The original talk argues performance went to hell because of React and friends, which is why we have electron CRUD apps that consume 2GB+ RAM.

  • You could argue that most users do not notice or care about this at all so it's a completely reasonable sacrifice to make to have rich applications.

    • The bit that goes unsaid about Electron is... why?

      If the goal is a legitimate app that has the lifecycle of an app that you start up and then shut down today the answer is "just write a web application" and then it "just works" on Windows, MacOS, Linux, iOS, Android, Meta Quest, etc.

      Mostly people get pissed about Electron because they have 15 Electron apps running in the tray burning up resources all the time and popping up stuff that covers the tray and other tray applications in those (very rare) cases that you want to interact with something in the tray.

      It's a tray problem, not an Electron problem. That is, people use Electron specifically because they want to made rude applications which march all over your desktop in muddy boots: Electron is not a framework for writing well-behaved, polite, x-platform applications; you don't need that, you have the web! Electron is a framework for making rude applications that inhabit your tray, pop-up distracting notifications, etc.

    • People think they are upset about new technology, but what they are actually upset about is the general consensus being that the new technology has a better value prop.

  • And the irony is that the author of that talk spent that same decade busy shoving as much Javascript into browsers as possible. After all he's the originator and the main promoter of web components where every single thing including built-in browser functionality like form participation has to be done in Javascript.

    Edit: There's not just one lost decade of the web. There's the browser wars and IE stagnant dominance. There's the 2010s with millions of man hours spent on web components and starving other directions of resources or actively hindering them (e.g. scoped css was continuously postoponed because it's highly incompatible with Shadow DOM) while pushing everything into Javascript (and partly breaking JS e.g. with the bolted-on class-based OOP).

    It remains to see if Google's complete dominance breaks the web further

Most of software engineering is accidental complexity. Sharding, buffering, caching, load balancing, contention, async, functions, classes, recursion…

Big corporations behind LLMs are taking it all.

  • There's a huge difference between everything you mentioned, and dealing with 'browser quirks' like:

      <!DOCTYPE html>
      <!--[if IE 8]> <html lang="en" class="ie8 no-js"> <![endif]-->
      <!--[if IE 9]> <html lang="en" class="ie9 no-js"> <![endif]-->
      <!--[if !IE]><!-->
      <html lang="en" class="no-js">
      <!--<![endif]-->
    

    The points the author made simply aren't good arguments. Yes, frontend development was harder during those days, but not harder in a good or rewarding way.

  • That’s not what accidental complexity means. Accidental complexity comes from design errors that could have in hindsight been avoided, meaning that if those errors hadn’t been made (made by accident, literally), there wouldn’t be any accidental complexity. The items you list aren’t accidents that could be avoided, they are necessities in achieving relevant goals.

  • Sharding, buffering, caching, load balancing are mostly issues 99% of devs will never have to work on. It gets relevant on high load pages, but most stuff out there wont ever need it.

It doesn't seem to me that the author is saying 'AI bad, abstraction bad, knowing browser quirks GOOD'. Looks to me like someone making a specific claim about a trend where having an easier time getting off the ground can lead to a lower ceiling.

I'd read it kind of like 'The man and the butterfly' story. Or the Kant passage about how doves might wish air didn't exist, without realising that friction is exactly what permits them to fly.

Exactly. Nobody wants smalltalk programmers or IIS whisperers. You just have to embrace the idea that your skills become worthless every five years and move on.

> More people building things is straightforwardly good

I still don’t understand this perspective, how is it good when a growing portion of stuff that’s built is straight garbage?

  • Suppose the choice is between software that does what you want, but isn't very optimized, and the software not existing at all, rather than between shoddy and beautiful software that both do what you want, and maybe it will make more sense to you.

    • So apply a false dichotomy and it will all make sense? Still not buying it. Not everything needs to be solved with software, and brushing off negative externalities as “not very optimized” is irresponsible

  • Depends upon the filtering system.

    Consider indie games. If there are 10 of them and 5 are great, you don't need any filter. You look through 5 great and 5 not so great games and end up with 5 great ones.

    Now go to a world where indie games explode. But only 1 in every 100 are great. There are now 100,000 games, but most qualify as very low quality. There are now 1,000 great games (and a few of these might be the perfect game you dreamt of), but if you don't have a filter and are buried under 10s of thousands of horrible games, things feel worse.

    With a filter, you now live in a world where you can easily find most of those great games with only a few lower quality ones showing up. So as long as the filters that exist, whatever they might be, can handle it, more is better even if quality drops.

    Unless the quality extremely fast, say my previous example of 100,000 games but only 1 in a million was a great game. I think this level of quality drop is extremely unlikely. Instead, I suspect the real problem is if the filters can keep up, because they depend upon human effort, so it is possible to hit a point where they are overwhelmed and stop functioning properly. That's when things get worse. As long as the filters hold, more building leads to better outcomes even with a drop in quality.

>...and if some of those things are slower or less accessible, that's a tradeoff people are entitled to make.

It depends. My country (Germany) introduced accessibility laws recently which enforces you to build everything public with accessibility in mind. If a page doesn't meet the expected standard you can get extremely high fines.

Yes it's still bad there's no viable headless UI in browser one can really style and it has all the a11y etc. but need extra library for selects that work etc. Invented work for no good reason. The real complexity is in diversity of devices though nowadays in the frontend.

> I'd argue back that LLMs likely have a better understanding of a11y conventions than I do as well.

To make the obvious counterargument, “then you shouldn’t be creating websites at all”.

I don’t actually believe this, but I know people who do. Some would add “shouldn’t be allowed to”.

  • I wonder what went so wrong that "if you don't understand [thing] you shouldn't be building [thing]" is now considered a controversial statement.

    • If you're building bridges, this shouldn't be a controversial statement. Same if you're building cryptography software.

      It's debatable if the same should apply to the vast majority of software that is less critical.

    • That's not what I said, I said I likely understand it less than a 635B parameter LLM, and that using the LLM as a shortcut to that knowledge is something I'd consider perfectly acceptable. I might even become better at it through using the LLM.

      1 reply →

    • Well, there's degrees of understanding, as well as degrees of seriousness of the project. You can also learn a lot by building something.

      Some people are writing the Netflix homepage (where an outage costs millions of dollars), and some people are writing a blog for three readers.

> the "deep expertise" OP laments was actually deeply inconvenient to many people

This reminds me of the Upton Sinclair quote: “It is difficult to get a man to understand something when his salary depends upon his not understanding it.”

LLMs feel threatening to anyone who had an edge by knowing how to navigate domains with a lot of weird and complex behavior. It’s nice to feel like businesses need you if they want to solve a problem. It’s scary when a cheaper solution arrives that does 70% of that deep knowledge navigation at 1% of the cost.

Each time you say that an LLM "understands" something better than you do, you also say that you're not actually qualified to judge the LLM's understanding.

> More people building things is straightforwardly good

No it's not, its the opposite actually its very bad and leads to far far more noise in the system to sort through to find value as someone who's competent.

Making UI less accessible is specifically not a trade off people are entitled to make. Accessibility is a legal requirement. This is like arguing it's ok to use robot construction workers who forget to install wheel chair ramps because "gotta go fast".

Yesterday we saw on the frontpage that LLM’s can’t even accurately assess if California produces literally all the almonds in the world.

The really weird gaps and inconsistencies just make it to untrustworthy. I spend so much time vetting all the outputs that it often cancels out the time it saves me, and I find enough errors that I don’t have an incentive to streamline things/not vet it.

> that's a tradeoff people are entitled to make

The users are also entitled to hate your website or app. At what point do you admit you're just making excuses for cheap and sloppy work?

It really depends, up until recently (January) reading all the Temporal doc and doing the courses allowed me to frequently suggest to the current frontier model things they didn't remember. I don't know if this changed recently.

being able to increase both a11y and i18n even if imperfect are definitely a LLM value add; the problem is simply business. This doesn't make the heat->cash register bling.