Towards a unified theory of web performance
infrequently.org
infrequently.org
Addressing the "unified theory of web performance" the article proposes:
> The mission of web performance is to expand access to information and services.
> We expand access by reducing latency and variance across all interactions in a user's session to more reliably return the system to an interactive state.
> We work to improve the tail of the distribution (P75+) because that is how we make systems accessible, reliable, and equitable.
We performance is not just about expanding access by reducing load times. It's about improving the user experience. It can be viewed as a subset of UX concerns, or a specialization of it.
Take for example Cumulative Layout Shift (CLS), a web performance metric that measures how much a page shifts as it loads. CLS is about reducing jarring user experiences by stabilizing the way content renders as it loads. Therefore fixing latency issues will not fix CLS issues, nor will fixing CLS issues allow others expanded access to information and services. Reducing layout shift will just make the user experience suck less.
Businesses go under a lot, too. Often because nobody connects the dots. Gordon Ramsey did an entire show on the arrogance of small business owners.
It doesn't 'depend'. It's physics. "Explaining Thermodynamics and Information Theory to people praying for a miracle" is immediately after "off by one errors" on the Hardest Things list.
We should stop buying servers when it stops being cost effective. That may or may not be 3x the number of servers we have now. It could be we're already over provisioned, or that you should only buy 2x, or maybe you can afford 5x, or 9x, and the number may change over time as the costs of maintenance and the number/value of your users rises and falls.
If your bloated SPA loads tens of megabytes of JS and makes fans spin on all your users' computers, ... will you think about Amdahl's law, or is it fine then?
That said, it's kinda _easier_ to just simplify and say CLS is a webperf thing and CWV are webperf metrics, because going into the nuance just dilutes the entire framing.
What do you define as performance then? And how is it different from speed?
CLS is a bit of a loner as there really aren't other metrics these days that also capture non-perf signals. But again, this distinction of CLS as a non-perf metric is for webperf nerds only, IMO.
Also funny is "Gmail loads orders of magnitude more resources and makes more requests than full page reloads" but "it's fine because we can change just a part of the page and add chat there that no one asked for"
Ten years later we still have backend-rendered and frontend-rendered camps. Some of my rollercoaster ride has been filled with useless pursuits (coffeescript! I used to love how clean it was. Old style angularjs jargon like `$scope` and directives. The list goes on...). But overall I strangely think it has been worth it to keep up. The main champions have been SQL, HTML, and JS -- I use them heavily, across whatever newfangled trend I'm pursuing. I'm thankful a lot of what I learned over the years is still applicable, even as I (willingly) get yanked around by the hottest trends.
Reminds me of the article "Browsers are pretty good at loading pages, it turns out" [1]. It's really shocking that we've got technology that from an a priori standpoint has the capability of making web browsing faster, yet consistently due to poor development practices somehow it manages to make everything worse.
[1] https://carter.sande.duodecima.technology/javascript-page-na...