Comment by karolusrex
15 hours ago
These type of comments often come from a place of arm-chair reasoning where you might not sit on the experience of working hands-on in a large team on a large product. While it’s probably true that X kB sufficient, that amount of performance optimisation is usually not warranted at this scale. Maintaining a design system, working with scoped classes, legacy code, and dealing with the complexities of chunking and probably further challenges we are not aware of from the outside. It seems like a common sentiment on HN (maybe not you in particular) is that engineers should drop everything and work overtime on optimizing performance, when it comes to web apps
This sort of comment has completely lost the forest for the trees.
You’re conflating scale with bloat. At large orgs the problem is that nobody is willing to step back and say “this sucks”. Trying to get this fixed involves getting 6 teams to agree upon something with no clear owner for the outcome and with everyone incentivised for not being blamed if one of the other groups tanks the effort.
> engineers should drop everything and work overtime on optimising performance
No, we’re asking for it to be taken seriously by the organisation. I work in games, and on large projects we usually have a small team (2/3 people of a team of 80-100) who are constantly working on this stuff. Their work is “subjective” improvements but often it’s just building tooling and telling other groups what they need to fix.
I think part of the difference is that in gaming if performance sucks then there's a real community of people who push back and it will affect sales directly. In web development at least for the majority of sites (e.g. not on the level of usage of Github) usually people just stop visiting your site, so you don't see public pushback as much.
If a decent portion of your audience literally cannot even play the game because its performance is too bad or it can't run on their hardware, then that immediately affects your bottom line. And at least until recently, you couldn't really push fixes for it once the game was delivered. And so I think at least a little bit of that mindfullness for performance has carried over to the modern day, though I will say that I do think that performance optimization does seem to subjectively be getting worse even in gaming.
In web dev, while it is true that it affects your bottom line, it's a little bit less obvious. And in the eyes of most management teams that's always something that can be prioritized later since you could always update it after you shipped a feature. Also, there was very much a culture of "the browser will handle it."
Not to mention, most devs are using the hardware that is many times better than their consumers.
To be really clear, the performance of GitHub’s website has basically always been terrible. I don’t know why. It has bothered be forever. And it’s weird - GitHub doesn’t actually render much content. But it often takes seconds to load that tiny bit of content. I often clone entire repos locally rather than browse them on GitHub just so I don’t have to wait for their webpage.
To continue the comparison, cyberpunk can render night city in 16ms. Which makes me embarassed for GitHub that they can’t render a list of files and a static markdown readme in under a second.
> If a decent portion of your audience literally cannot even play the game because its performance is too bad or it can't run on their hardware, then that immediately affects your bottom line
There is a small, but very vocal group that complain about 30 vs 60fps, and yet there are games that push for 120/240 on consumer hardware (valorant and overwatch both run at very high frame rates on very low specs). As I said, it’s about prioritising it. _Why_ it’s being prioritised doesn’t really matter.
> also there was very much a culture of “the browser will handle it”
That is very clearly still the culture.
> most devs are using the hardware that is many times better than their consumers.
My last work PC was a 32 core 4GHz machine with 256GB RAM, a 4090, and 16TB of NVMe SSD’s with 10GB fibre. Our target platform was 9GB RAM, and an 8 core 1.1GHz processor, yet we still managed (just about).
And how that happens in gaming? Pretty curious now.
Frame rates are very important, so we prioritise them. That’s about it. The same “bloat” is often found in internal tooling in games. Unreal is a great example of it, nobody _really_ cared about how long packaging a build took, it got ad hoc improvements, but then epic decided to invest in it and its improved monumentally in the last 2-3 years. (Disclaimer, I worked there when nobody cared and was responsible for some of those as hoc changes)
Isn't this backwards? Optimizing assets becomes more important with scale, not less. Not saying it is actually prioritized that way or that it would be easy but IMO the more traffic you have the more important it is to be frugal with bits.
Yeah. Sites like GitHub pay a lot of money every month for servers. At scale, a bit of performance work can save you millions on your bills. And make your site run faster for users at the same time.
> that amount of performance optimisation is usually not warranted at this scale.
Indeed, you need to waste a few years hurting user experience before investing a few years into migration and writing another "improved performance" blog post.
> that engineers should drop everything and work overtime on optimizing performance
The opposite, they should work less instead of more doing a worse job that results in scraping all their output later in a redesign
The beauty of functional CSS is that you can progressively transform everything. GitHub runs on entire modularized codebase, they can clean up the entire codebase within weeks, days if they use agents and see the effects of performance instantly.
The shitty team excuse.
Performance is not complicated. You measure something and compare the numbers. Through my career I have encountered the following failures repeatedly:
* The complete inability to measure things. This is common among people with low social intelligence. Many people in this line of work cannot measure things and form all kinds of bullshit excuses. Cannot do it all as if they are disabled. Sometimes it is laziness, sometimes it’s autism masking, and sometimes it’s stupidity/ignorance where they believe they shouldn’t have to or are superior from convention alone.
* The shitty team argument. It’s common for people to intentionally avoid or discard measures because there is fear superior performance may indicate an operating deficit. The last thing anybody in software wants is to change approach if they are on a shitty team, because corporate developers are allergic to training people. This is often justified by asking what happens if you work on a team or about new hires.
* Throwing performance data away and lying about it. This is very common when performance data provides evidence that current conventions or favorite tools harm performance. If, for example querySelectors measure 100,000 times slower than some other approaches developers will pretend the performance evidence just doesn’t exist.
* Guessing. When people suck at what they do they invent their own performance realities. When people guess at software performance they are supremely wrong more than 80% of the time and tend to be wrong by multiple orders of magnitude.
You’re confidently making a lot of assumptions that don’t generalize.
For example:
> performance is not complicated
Not to mention all your assumptions about the motivations of people who don’t do optimization well. That one can’t possibly generalize.
They are not generalizations. They are frequently repeated observations. The ability to operate from evidence is what determines if you are working with real professionals or children pretenders.
1 reply →
I would like to half agree to this.
Saying "Performance is not complicated" is not wrong. People and the systems set up for an application make it complicated. Its harder to check and verify.
I work in UI performance and the biggest thing slowing me down is always people
You measure and improve the metric, but at what cost, when should you stop? Have you worked on a 1mill+ loc web app?
You improve performance for a variety of reasons. You stop when you have competing evidence. The other 99% of the time it’s just developers making bullshit excuses.
And it's specially easy for the case of CSS: less CSS, more faster.
> This is common among people with low social intelligence
lol What? It's always amusing to me when someone makes absolute claims like "the industry" when having seen < 0.1% of it.
"big company can't make fast website"
nah
Yes, good points, but also with modern LLMs you can vendor the design system around and cut it to the bone on every app. If your organization ships a worse solution than Claude slop, do you really want to stick with it?