How web bloat impacts users with slow devices
danluu.com
danluu.com
This problem is compounded by several factors. One is that older/slower phones cannot always use fully-featured browsers such as Firefox for mobile. The app is takes too many resources on its own before even opening up a website. That means turning to a pared-down browser like Firefox Focus, which is ok except for not being able to have extensions. That means no ublock origin, which of course makes the web an even worse experience.
Another issue is that some sites will complain if you are not using a "standard" browser and the site will become unusable for that reason alone.
In these situations, companies frequently try to force an app down your throat instead. And who knows how much space that will take up on a space-limited device or how poorly it will run.
Many companies/sites used to have simplified versions to account for slower devices/connections, but in my experience these are becoming phased out and harder to find. I imagine it's much harder to serve ads and operate a full tracking network to/from every social media company without all the javascript bloat.
Talk about a catch-22 situation. The modern web is useless without adblocking. Especially when you get forever scrolling pages with random ads stuffed in there.
I fully support people being able to make some money off the useful things they build on the internet, whether it's some random person who built a thing, or the New York Times or even FB or Google, but there has to be a better local maximum than online advertising.
Random recent example: Nike. Popping useless errors upon checkout in the webshop. Support: "oh, we're so sorry, just try the app, k bye".
Another example of major companies with broken websites more often than not: (European) airline booking websites.
And major companies think this is totally fine and doesn't damage their brand? I mean not being able to create a functioning website with unlimited funds in 2024 is not a bad look?!
But I have zero sympathy for giants, like Slack. If I do a "Request the Desktop Site", then it suddenly works(albeit with lot of scrolling) on my Firefox(iOS), but if I disable the "Request the Desktop Site", then it blocks everything and forces me to download the app from AppStore.
Sadly, the downloaded app looks like an optimized mobile version of the site.
And honestly, that app is going to be a browser shell with a (partially) offline copy of the website in it, 9 times out of 10...
If you're lucky. The main UI may just be a website, but as a native app is has a greater ability to spam you, track you, accidentally introduce security vulnerabilities, etc.
Thanks for your work, one of the things that I really liked about Nokia was the passion for performance.
On the flip side: I was on the Meego project and we joked that we had the most expensive clock application ever created, because it kept being completely recreated.
Are these Androids actually less powerful than an 11 year-old, base-spec MacBook?
Yes. Definitely. a Macbook Pro from 2013 has between 4-16GB of memory for one thing. The lowest spec phone in the article (Itel P32) has 1GB. A 2013 Macbook Pro has a 4th gen i5 processor. This phone has a MediaTek MT6580. It's not even in the same ballpark.
This is a bit of an extreme example, but the fact is that a very large number of people in many areas of the world use phones like these.
This is where the blog post falls short. It assumes the software someone uses to access these websites is a constant, chosen from a small selection of browsers controlled by companies that seek to profit from proliferation of online advertising. The software used is not a variable in this "study".
Most of the sites on the list presented, namely the ones where we are just reading, listening or watching (cf. performing some commercial transaction), can be accessed using software not controlled by so-called "tech" companies on older hardware even with today's bloat and the experience will be faster than if trying to use the bloated software from so-called "tech" companies. (That software comprises both the browser and the gratuitous Javascript software that these browsers will run automatically without any input or choice from the user.)
As for users with the lowest-end devices like the Itel P32, Dan's chart seems to prove that no amount of incremental optimization would benefit them. The only thing that might is a wholesale different client architecture that sacrifices features and polish to provide the slimmest code possible. That is, an alternate "lite/basic" mode. Unfortunately, this style of approach has rarely proved successful: the empathy problem returns in a different guise, as US-based developers often make the wrong decisions on which features/polish are essential to keep versus discarded for performance reasons.
Why does this need to be the "alternate" choice though? What does current Discourse provide that e.g. PhpBB or the DLang forum do not? (Other than mobile friendly design, which in a sane world shouldn't involve more than a few tweaks to a "responsive" CSS stylesheet).
I think flipping the question makes more sense, why do you think some forums switched to or started using discourse instead of just using phpbb? I can guarantee you that it's not just to follow a fad or whatever, most niche or support forums don't care about that.
Why shouldn't the default be: does this website work in Lynx? I think that's a damn good baseline.
And in response to the other parent post, on a (almost) new iPhone, both news sites & Twitter continuously crash and reload for me. I'm not sure what the state of these other popular sites are because I don't use them.
I live in a poor Southeast Asian country.
People with small data plans don't use data from efficient websites, they use wifi which is omnipresent.
30GB of data on a monthly plan is $3.64. Which is about 4-6 hours of minimum wage (minimum wage is lower in agricultural areas).
But more to the point, people don't use data profligately like in the West. Every single cafe, restaurant, supermarket, and mall has free wifi. Most people ask for the wifi password before they ask for the menu.
I've never seen or heard anyone talk about a website using up their data too fast.
It honestly sounds like a made up concern from people who've never actually lived in a developing country.
People here run out of data from watching videos on TikTok, Instagram, and Facebook. Not from website bloat.
I live in a major city in the Philippines, and free WiFi is becoming more of a rarity nowadays. Not even Starbucks and other big chain restaurants, malls, and cafes offer WiFi anymore because of how widely available data is. They expect you to bring your own data and tether if you want to browse or do some work.
In more rural areas, WiFi is definitely not widely available. On the rare chance it’s even offered, it’s usually “piso WiFi” paid by the minute.
That 30GB plan is more than some people with phones earn here
I think one way for first world country citizens to empathise with this is how people behave when on roaming data plans during overseas trips. One does keep to public WiFi as much as possible and keep mobile data usage to a minimum or for emergency purposes.
Is this because the website usage doesn't add up or because they don't have the tools to track which sites are using how much data?
>It honestly sounds like a made up concern from people who've never actually lived in a developing country.
I once loaded a site that loaded approx 324mb "Super resolution" image (I knew it was high res, but I thought it was like 30-40 mb at best). Took care of 1/3rd of my monthly data in a single page load.
You mean, the one developing country you live in.
You are also missing the full spectrum of users. People don't just browse the web for fun. They look for important information like health or finance information, they might not want to do that in a public place or they might not be able to put it off for when they next have wifi.
If you are building an e commerce website it might not matter, but you could be building a news site, or any number of other things.
Also applies to bloatware shipped with computers. To the point where I was offered a $50 “tune up” to a new laptop I purchased recently. Imagine a new car dealer offered you that!
Remove the mcafee nuisance popups and any browser "addons" that were badged/branded. and IIRC we charged more than $50 for that service back then.
And the if I’m in a place with a shitty signal, forget about it, this problem is 10 times worse.
I’m not even talking about the cluttered UI where only a third of the page is visible because of frozen headers and ads, I’m talking about the size of the websites themselves that are built by people who throw shit against the wall until it looks like whatever design document they were given. A website that would have already been bloated had it been built correctly that then becomes unusable on a slow internet connection, forget slow hardware.
All that is to say, I can’t imagine what it must be like to use the internet under the circumstances in which you described.
I can only hope these people use localized sites built for their bandwidth and devices and don’t have to interact with the bloated crap we deal with.
I’m in Canada and have a single digit plan and I just upgraded from an almost decade old flagship. Most websites are torture.
that would last for a few hours of lightweight (not youtube/images/etc) browsing now.
In another world this mode dominated UI/UX design and development and the result was beautiful and efficient. Where design more resembles a haiku than an unedited novel.
We don't get to live in that world, but it's not hard to imagine.
If we had modern computers in 200X, we wouldn’t just have music on our myspaces, we’d put whole games there I bet.
But it is gaining popularity with the unexpected rise of htmx and its 'simpler is better even if it's slightly worse' philosophy.
I work with parolees and they get the free "Lifeline" phones the federal govt pays for. You can get one for free on any street corner in the poor 'hoods of the USA. They are the cheapest lowest spec Android phones with 15GB data/month. That data is burned up by day 3 due to huge Web payloads and then the user can't fill out forms he needs for jobs/welfare and can't navigate anywhere as he can't load Maps.
But if you’re in that middle world country AND your official language is English, you’re gonna have a hell of a slow time.
My philosophy is nearly completely different, I ask myself what the minimum maintainable code is that would produce the equivalent of a well hand coded HTML+CSS+JS website. Usually the result is magnitudes smaller.
One of those people asked me how I did realtime list filtering on 1000 table rows and still have it load fast ans perform well on mobile. While that isn't really a feat, all I sid was deliver the whole data on the first request and then hide non-filtered data dynamically. That means the webserver didn't have to do anything wild, orher than deliver the same cached data to everybody who filters that list and because this was the only javascript going on on that site it was (to them) unusually performant. If you look at a comparable table row from their solution (some framework, didn't have much insight into it) the resulting html was 80% boilerplate that they didn't even use.
Web development is too entrenched and many wandered too far from the essentials of web technology.
If you mainly target people in the US or EU, there's perhaps something to be said for not optimizing too aggressively for low-end hardware and flaky low-bandwidth high-latency connections. But if you're targetting rural Africa fairly aggressive optimisation seems like a no-brainer, right?
Their homepage loaded this 2M gazillion by gazillion pixel image downscaled to 500 by 1000 pixels with CSS. It got worse from there. I don't recall the exact JS payload size, but it was multi-MB – everything was extremely frontend-heavy, which was double ridiculous because it was mostly a "classic" template-driven backend app from what I could see.
I still applied because I liked the concept but the tech was just horrible. I don't really know why it was like this as I never got to the first interview stage, but it's hard to image it's anything other than western European developers not quite realizing what they're doing in this regard.
So you have a feature team that works on a feature for 6 months, does a 1 hour "KT Session" with the offshore maintenance team and hands them the code. The offshore team has some information on the feature but not enough to really manage existing tech debt, just to keep the lights on. And on top of this they know they are the lowest totem on the pole and don't want to get fired so they don't go out of their way to try and fix any existing code or optimize it, again just enough to keep the thing working.
Then this cycle repeats 100-1000x within an org and pretty soon you have a scenario where the frontend has 2M lines of code when it really should be 250k max. A new feature team might come on with the brightest engineers and the best of intentions, but now they have to work within the box that was setup for them. Say they have a number of elements that don't line up with their feature mockups. The mockups might be incorrect, there might have been an upgrade to the UI kit, or the existing UI kit might need refactoring. Problem is none of that is budgeted for so the team is told to just copy the components and modify them for their own use. And of course on handoff to maintenance team, the new team does not want to mess with the existing feature work so they leave it as is. Management is non-technical so they don't know the difference, and you end up with 50+ components all called "Button" in your codebase from years and years of teams constantly copy/pasting to accommodate their new feature.
Client Side Rendering ( Regardless of Frameworks ) is hip, and gets more media attention. Sometimes backed by VC. It is new, it is complex. And fits both the hype cycle, software engineers complexity attraction, and Resume Driven Development model. And just like the article stated, it is suppose to bring so many good things in its idealogy to the table.
Since majority of software developers wants to works on it, so their Resume gets a tick and could jump to another job later. Management now faces lots of application for these technology and zero for old and boring tech.
>great web programmers who don’t know much (and appear to not WANT to know much) about efficiency.
Remember when Firefox OS developers thought $35 dollar Smartphone will one day take over the world and CPU will be so much faster due to Moore's law, performance will soon becomes irrelevant.
I mean that is like Jeff hates Qualcomm, without actually understanding anything about Mobile SoC business nor the CPU behind it. And how ARM's IP works. A lot of people dont want to know "why" either.
A more accurate description and also a general observation. Most software developers and especially those on Web Development have very little understanding of hardware or low level Software engineering. Cloud Computing makes this even more abstracted.
Marketing team mandating inclusion of at least one "Tag Manager" (if they are especially bad, there will be multiple).
A "Tag Manager" is a piece of JS that is installed together with an API key in the site... and then it downloads whatever extra JS that was configured for given API key. The actual site developer often has absolutely no control over it (the closest I got once was PoC-of-PoC where we tried to put even inclusion of tag manager behind an actually GDPR-compliant consent screen).
Marketing team gets to add "tags" (read, tracking, chat overlays, subscription naggers, whatever), sometimes with extra rules (that also take time processing!), all without involving the development team behind the site.
I think you mean “programmers” not just “web programmers”. I’ve worked with plenty of bloated over-engineered Java and C# codebases that take several minutes to start on a very fast developer machine with 32 gigs of RAM. Sometimes, the worst offenders use “lower level” languages! The performance averse problem is endemic in the entire field, not just in the web.
instead of this nasty js feature detection that 99% of time no one does.
prefers reduce motion was a good start. although its rarely respected.
I browse the web on Firefox with uBlock Origin, 3rd party cookies disabled, and so on.
So I am missing the bloat most people talk about.
But still apps like Clickup are really slow. It's just bad software.
It ALWAYS starts at the top, no matter how you slice it. Why are the incompetent devs there in the first place?
I would like to have seen Amazon in the tests. IME Amazon's website is among the absolute worst of the worst on mobile devices more than ~4 years old. Amazon was the only site I accessed regularly that bordered on unusable, even with relatively recent high-end mobile hardware.
I daily drive a OnePlus 5 running Android 14 through LineageOS and the user experience for non-gaming tasks is perfectly adequate. This phone has 6GB of ram, so it's still on par with most mid-range phones nowadays. My only gripe is that I had to replace the battery and disassembling phones is a pain.
Meanwhile a Galaxy S8 with the same SoC, 4GB of memory and stock Android 9 with Samsung's modifications chugs like there's no tomorrow.
I can understand that having two more gigabytes of memory can make a difference but there is a night and day difference between the phones. Perhaps Android 14 has way better memory management than Android 9? Or Samsung's slow and bloated software is hampering this device?
Either way it's irritating to see that many companies don't test on old/low-end devices. Most people in the world aren't running modern flagships, especially if they target a world-wide audience.
Smartphones in my opinion are a major example of this. I can't tell you the number of people I've meet who barely even or don't even know how to use their devices. It's all black magic to them.
The largest problem is the over-dependence on the use of "Gesture Navigation" which is invisible and thus non-existent to them. Sure, they might figure out the gesture bar on an iPhone, but they have no conception of the notification/control center.
It's not that these people are dumb either, many of them could probably run circles around me in other fields, but when it comes to tech, it's not for a lack of trying, it's a lack of an intuitive interface.
https://support.apple.com/guide/iphone/learn-basic-gestures-...
I don't think (modern) technology is at fault here.
This is uniquely an iPhone problem, not a smartphone problem. It’s been one of my biggest gripes after switching from android. Where the heck is my back button? Home button? Any buttons? I really despise Apple’s obsession with minimalism and will be switching back to android when this phone dies.
font-size: 18px;
line-height: 1.5em;
max-width: 38rem;
Now look how readable (and beautiful) it is. I read a lot of Dan Luu's posts, and each time I have to do this sort of thing to make it readable.Seriously, techies, it's an extra 64 Bytes to make your page more readable.
That page is nearly fine for me but I just hit CRTL + to scale up. That works for me.
That page is pure text with no or at least minimal fiddling. You have your solution for your use case and I have mine. A blind reader will also have their solution, so they can even access it. Thanks to the simplicity of the source: all solutions to accessibility are also going to be reasonably simple.
I think that Dan understands how to communicate effectively - keep it simple and don't assume that eyes will read your words. You can trivially (and you do) fiddle with the presentation yourself for your own purposes.
I think that if you don't like the presentation of something like this then you could reformat it yourself, prior to engagement. Dan has kindly provided his message as a simple text stream that can be trivially fiddled with.
> I read a lot of Dan Luu's posts, and each time I have to do this sort of thing to make it readable.
You shouldn't have to. You should be allowed to add a CSS file which can apply to multiple files, and then use that, instead of having to do it for each file individually.
> Just as an aside, something I've found funny for a long time is that I get quite a bit of hate mail about the styling on this page (and a similar volume of appreciation mail). …
Also wish his pages had dates on them (one or both of first posted / last updated) AFAIK he intentionally leaves them out, I don't get why.
The conclusion I came to is that the audience is very tech-savvy and is used to activating Reader Mode when they encounter pages like this.
I've had to remove "max-width"'s from a ton of sites using my filtering proxy. My window is this big, I expect your content to fill it!
For cases when you don't agree with styles there is Reader Mode. Your way works also, but Reader Mode just simplier, it is just one click away.
How is it readable when you're limiting text width and not taking advantage of the whole screen you paid for?
[Turning 48 next month and wearing glasses.]
Because we can’t just go around trying to understand basic web-based development without the frameworks … can we?
I'm not sure what youtube is doing (or everyone else for that matter.)
If we're serious about this climate crisis/change business, someone needs to cast a very hard look at google and meta for these sorts of shenanigans. eating CPU cycles for profit (ad-tech would be my off the cuff guess for why youtube sucks on these low power devices) should be loudly derided in the media and people should use more efficient services, even if the overall UX is worse.
By all accounts client devices' energy consumption is a rounding error in terms of contribution to climate change. Going after them to solve climate change makes as much sense as plastic straw or bag bans.
As another data point, YouTube a decade ago would've been perfectly fine on that hardware too. The culprit is web bloat in general, and more specifically the monstrosities of abstraction that have become common in JS.
Even for those who don't believe at all in "climate crisis", there is something to be said for the loss of craftsmanship and quality over time that's caused this mess, so I think it's something everyone across the whole political spectrum can agree with.
Maybe they could do that Consumer Reports style, or maybe it’s an add on the works a bit like Nielsen ratings.
E.g. On the OG Pinephone a 720p video on Youtube is running smoothly in Chromium, but not Firefox.
In your case, maybe pulling the video with yt-dlp then playing it works...
This article just felt too soft, too couched in internet fights, to really stand up.
But they do, don't they. Discourse's founder's words are just very illustrative. Have you used the web recently? I have. It's bloated beyond any imagination to the point that Google now says that 2.4 seconds to Largest Contentful Paint is fast now: https://blog.chromium.org/2020/05/the-science-behind-web-vit... (this is from 4 years ago, it's probably worse now).
You don't have to go far to see either Youtube loading 2.5 megabytes of CSS on desktop to the founder of Vercel boasting its super fast sites that take 20 seconds to load the moment you throttle it just a tiny bit: https://x.com/dmitriid/status/1735338533303259571
Dan's articles have usually been very good at that. The keyboard latency one for example makes few assumptions and mostly relies on data to tell its story. My point is that this article is different. It's an elevated rant. It relies on an audience that already agrees to land its point, hence my criticism that it's too couched in internet fights.
And that's before getting into when The Business wants that sweet, sweet analytics data, or those sweet, sweet ad dollars.
I don’t think I’ve ever seen a company take performance seriously. No one scoffs when a simple API service for frontend has 500ms response time! How many engineers even know or care how much their cloud bill is?
Programming languages and hardware both offer poor support for fine-grained parallelism and it's very hard to speed up classical software using parallel approaches.
What contention? If anything, Luu is being rather generous–Knuth was just whining that the decades-long free lunch program was being cancelled.
Google recently retired their HTML Gmail version, mind you, it still worked on a 2008 256MO RAM Android phone with an old Firefox version and it was simply fast... of course the new JS bloated version doesn't, it just kills the browser. That's an extreme example, yet low budget Phones have 2GB of RAM, you simply cannot browser the web with these and expect reasonable performances anymore.
Mobile web sucks, an it's done on purpose, to push people to use "native" apps which makes things easier when it comes to data collection and ad display for companies such as Apple and Google.
Partly for sure, but Amazon for example? Or Decathlon? (a big sports/outdoor chain in europe)
Their sites are just horrible on a mobile (or in Decathlons case also on a Desktop, that is not high end), but they also don't offer me their app in plain view, so I have to assume it is just incompetence. The devs only testing everything on their high end devices connected to a backbone.
Pretty much every company out there employs oxygen wasters who need "engagement" to justify their promotions/salaries. They don't care whether said "engagement" translates to actual profit.
If bloating the page or adding some annoying cookie banner allows them to come up with some random number that goes up (no matter whether the measurement is even correct) they'll happily take that opportunity even if would cause actual profits to go down.
RIP Google.
The new Reddit is unusable, and the old is well too old.
Twitch is borderline usable, with chat and video stream problems...
The list is long...
All changes are bad when you have the final formula because they are job security.
Eventually the monkeys on this ball of dirt will realize that jobs and money don't exist, but then it will be to late... oh that is now!
RIP Humans.
What's wrong with the old Reddit UI?
Maybe a quality service really does cost that much? But the gap in performances and usability is so great, it seems that something else must be at play sometimes.
> Why haven’t other sites figured this out?
i suspect that most ppl cannot appreciate efficiency
I've said for a long time, devs should be forced to take a survey of their users' hardware, and then themselves use the slowest common system, say, the 5th-percentile, one day a week. If they don't care about efficiency now, maybe they will when it's sufficiently painful.
My point here is not every phone which is more than a few years old stops working or cannot browse web sites.
But TeX was designed to run on a single CPU-core, so no surprise here. I wonder what TeX could become if all Knuth had at the time a multicore machine with cores managing maybe 0.1 MIPS each (or even lower). Like what the world would become if we lived in a counterfactual world where Intel and its buddies starting in 1970s boosted not the frequency and instruction per second per core but number of cores?
My take we'd switched to functional-style programming at 1980s with immutable data, created tools to describe multistage pipelines with each stage issuing tasks into a queue, while cores concurrently picking tasks from the queue. TeX would probably have a simplified and extra fast parser that could cut input into chunks to feed them into a fullblown and slow parser which would be a first stage of a pipeline, and then these pipelines somehow would converge into an output stream. TeX probably would prefer to use more of lexical scoping, to reduce interaction between chunks, or maybe it would make some kind of a barrier for pipelines where they all stop and wait for propagation of things like `\it` from its occurrence to the end.
This counterfactual world seems much more exciting to me than the real one, though maybe I wouldn't be excited if I lived there.
I wish software engineers cared to test in less than ideal conditions. Low speeds, intermittent connectivity, and packet loss are real.
For software this means designed on top of the line hardware, with fast low latency internet. TFA describes the consequences.
For hardware it means designed inside climate controlled dust free offices and cars for people with long commutes to work on straight roads where you don't have to pay much attention.
Think phones shutting down if you have a real winter. Think smart turn stalks that can't signal a left turn on a crossroads that's not at 90 degrees. Think ultra thin laptops where the keyboard is so dust sensitive it lasts 3 months if you use them outdoors. Think a focus on audiobooks and podcasts because you're stuck in traffic so much.
Unless it's somehow regulated that people test less than ideal conditions it won't happen, yet most people (myself included) don't really want that either.
Even going back so far that modern OS support is absent, snappiness can be found. My circa 2000 500Mhz PowerBook G3 running Mac OS 9.1 doesn’t feel appreciably slower than its modern day counterpart for more than one might expect, and some things like typing latency are actually better.
- using more clear English with simple sentence structures should make the content more accessible to people who don’t read English with the fluency of an educated American
- reducing the number of requests required to load a page as latency may be high (and latency to the nearest e.g. cloudflare edge node may still be high)
In practice this pretty much requires pure SSR and "multiple page" design, given the amount of network roundtrips on typical SPA sites. (Some lightweight SPA updates may nonetheless be feasible, by using an efficient HTML-swapping approach as seen in HTMX as opposed to the conventional chatty-API requests and heavy DOM manipulation.)
We worked really hard to optimize our forum load times, and it handedly beats the pants off of much we've tested against.
But that's not much of a brag, the bar is quite low.
Dan goes on and lambasts (rightfully so) Atwood for deriding Qualcomm and assuming slow phones don't exist.
Well, let's chat, and talk to someone whose team really does dogfood their products on slower devices...
At the same time, while a 10s load time is a long time & unpleasant, it doesn't seem catastrophic yet.
The more vital question to me is what the experience is like after the page is loaded. I'm sure a number of these sites have similarly terrible architecture & ads bogging down the experience. But I also expect that some of those which took a while to load are pretty snappy & fast after loading.
Native apps probably have plenty of truly user-insulting payloads they too chug through as they load, and no shortage of poor architectural decisions. On the web it's much much easier to see all the bad; a view source away. And there is seemingly less discipline on the web, more terrible and terribly inefficient cases of companies with too many people throwing whatever the heck into Google Tag Manager or other similar offenses.
The latest server-side react stuff seems like it has a lot of help to offer, but there's still a lot of questions about rehydration of the page. I'm also lament see us shift away from the thick-client world; so much power has been embued to the users from the web 9.9 times out of 10 just being some restful services we can hack with. In all, I think there's a deficiency in broad architectural patterns for how the thick client should manage it's data, and a really issue with ahead-of-time bundles versus just-in-time & load behind code loading that we have failed to make much headway on in the past decade, and this lack is where the real wins are.
There is a special place in hell for every web developer who does that.
Granted the main reason such a technique is needed is designs that avoid pagination.
The difference between a 2MB and a 150KB CSS file can be a lot of bandwidth.
The difference between a bad and good framework can be a lot of CPU power and RAM.
Companies pay for this. But I guess most have no clue that these costs can be reduced.
And some companies just don't care as long as money is coming in.
I actually pulled the plug on a wordpress site for my company last week. We now have a static website. It's a big performance improvement. But the old site was adequate even though it was a bit slow to load. So, nobody really noticed the improvement. Making it faster was never a requirement.
What is worth optimizing for is good SEO. There's of course a correlation between responsiveness and people giving up and abandoning web sites. That's why big e-commerce sites tend to be relatively fast. Because there's a money impact when people leave early.
What I find ironic is that the people complaining about this stuff are mostly relatively well off developers with disposable incomes and decent hardware. If they use crappy/obsolete hardware it's mostly by choice; not necessity. Some people are a bit OCD about performance issues as well. They notice minor stutters that nobody cares about and it ticks them off.
2MB is nothing. I'm saying this as somebody who used cassettes, and later floppy disks with way less capacity. But that's 35 years ago. The only time when this matters to me is when I'm on a train in Germany and my phone is on a really flaky mobile network that barely works. Germany is a bit of a third world country when it comes to mobile connectivity. So, that's annoying. But not really a problem web developers should concern themselves with.
I agree with you about frameworks, though. So much waste in creating everything as (e.g.) a React app when there’s no need. Sadly the industry heavily prioritises developer experience over user experience.
When looked at from that angle, bloat is a feature.
It's not reasonable to have an expectation of quality when it comes to the web.
But I doubt companies purposely increase their hosting costs as some kind of firewall to only include the rich. More like they just don’t care. Same reason for technical debt, everyone wants to grow and move needles.
If a company could magically make their site more available and efficient for free I am sure they would jump at the chance. But spending a million on that vs. a million on ads wont seem worth it.
Not everyone cares about phones.
In contrast AMD and Intel use the same (or sameish) CPU arch in all of their lineup in a given generation, the absolute cheapest laptop I could find used a Pentium 6805, which still has a GB6 score of well over 1000, sold in a laptop that's cheaper than most budget smartphones.
In contrast, Qualcomm and Mediatek will sell you SoCs that don't even have half of that performance as a latest-gen 'midrange' part.
I think every OS now has tools to let you simulate shitty network performance these days so it’s inexcusable that so many sites and even native apps fail so badly anytime you have anything less than a mbit connection or greater than 50ms latency :-/
This stuff is simpler than we let it be sometimes, folks.
Meanwhile watches a team build a cathedral when all they needed was a shack.
Perhaps the falling salaries for programming in the US could be a good thing in that regard. So many people get into this career because they want to make it big, which seems to drive down the quality of the talent pool.
I think the relative disadvantages of a poor American compared to their wealthier peers have increased as there’s more competition (as the degree is seen as more desirable by motivated wealthy parents) and the poor student likely won’t even have a non-phone computer at home where all their wealthier peers probably will. Possibly they could work around the competitiveness of computer science by going via some less well-trodden path (eg mathematics or physics) except that university admission isn’t by major. They may also be disadvantaged by later classism in hiring. Meanwhile a middle class Pole will have access to a computer and, provided they live sufficiently near one of the big cities, access to technical schools which can give them a head start on programming skills (and on competitive programming which is a useful skill for passing the current kind of programming interview questions). To get the kind of good outcome described in the OP, they then need to get hired somewhere like Google in Zurich (somewhat similar difficulty to in the US except the earlier stages were easier (in the sense of being more probable) for the hypothetical Pole) and progress from there (maybe impeded by initially not being at the headquarters / fewer other employment opportunities to get career advancement by changing jobs). Class will be less of a problem as the hypothetical middle class pole isn’t so different in wealth from other middle class Europeans and you get much less strong class-selection than when (e.g.) Americans are hiring Americans.
So, what happens? Your device slows down to a crawl, pages take forever to load, and sometimes, it just gives up and crashes. It’s like being stuck in traffic when you’re already late for work. And let’s not even talk about the data usage. It’s like your phone’s eating through your data plan like it’s an all-you-can-eat buffet.
Now, if you’re on the latest and greatest tech, you might not notice much. But for folks with older devices or slower connections, it’s a real pain. It’s like everyone else is zooming by on a high-speed train while you’re chugging along on a steam engine.
So, what can we do? Well, we can start by being mindful of what we put on our websites. Keep it lean, mean, and clean, folks. Your users will thank you, and their devices will too. And hey, maybe we’ll all get where we’re going a little faster.
It's a persistent complaint among readers of SlateStarCodex (a blog which made a high-profile move to Substack from an old WordPress site). Substack attributes the sluggishness to the owner's special request to show all comments by default, but the old WordPress blog loads all comments by default and was fine even on older devices.
https://www.reddit.com/r/slatestarcodex/comments/16xsr8w/sub...
https://www.reddit.com/r/slatestarcodex/comments/1b9p55g/any...
But the Substack devs are aware of this. [They know it's a problem](https://old.reddit.com/r/slatestarcodex/comments/16xsr8w/sub...).
>I'm much more of a backend person, so take this with somewhat of a grain of salt, but I believe the issue is with how we're using react. It's not necessarily the amount of content, but something about the number of components we use does not play nicely with rendering content at ACX scale.
>As for why it takes up CPU after rendering, my understanding is that since each of the components is monitoring state changes to figure out how to re-render, it continues to eat up CPU.
They know—but they do nothing to fix it. It's just an impossibility, rendering all those comments.
I don't access this site a lot, but I remember until very recently they had other front-end, it worked great. Honestly, I think they will follow the path of medium.com, and start to make the user experience worse and worse.
It's a site where people post text, a few images, maybe 1 or 2 videos per post. It shouldn't be complicated.
What most impresses me is that this happen on many markets that should be competitive by any sane rationale. Like group buying or hotel booking. Yet, they also do that kind of shit, and people still have nowhere to go.
The world economy became integrated and incredibly rigid.
More than anything I think it’s because corporate IT has had to modernize due to security. Security now wants you to update constantly instead of running old vetted software. You also cannot demand user use an old version of a browser that still supports some old plugin. And as a vendor it’s not profitable to support people who maintain that mindset.
Also “update to the latest version” is the new “turn it off and back on again,” when it comes to basic IT help.
https://github.com/avodonosov/pocl
The unused javascript code can be removed (and loaded on demand). Although I am not sure how valuable that would be for the world. It only saves network traffic, parsing time and some browser memory for compiled code. But js traffic in the Internet is neglidgible comparing to, say, video and images. Will the user experience be signifiqanty better if browser is the saved from the unnesessary js parsing? I don't know of a good way to measure that.
It makes me very sad to see that reddit's new design is so heavy it can't even be accessed by part of the world. It's like parts of the internet are closing theirs doors just so they can have more sliding effects that nobody wants.
Or maybe I'm just a weird one who prefers my browser to do a full load when I click a link.
Btw there was a time everyone kept talking about "responsive" web design and, having used only low-end smartphones and tablets, I kept finding it weird that there was such focus on the design being responsive for mobile devices when those mobile devices were so extremely slow to respond to touch to begin with. Of course I know that's not what they meant, but it still felt weird.
Welcome to the Wide Web, where bloat is the norm.
And while I appreciate that engineers can often afford to be blunter than people in other disciplines, I also think that a founder of two successful companies should have a bit more restraint when posting. Writing "fuck company X" (unless we're talking about a grossly unethical company, maybe) just seems like very immature behaviour to me.
I’d happily pay $100/month to access the internet similar to that of pre-2005ish
As in, banning almost all commercial activity
I truly believe Google isn’t getting worse, just the incentives behind the creation of web content have become progressively maligned with that of the user’s desires
I want a high quality internet, and am willing to fork out large sums of money to access it
I hope I’m not alone
I do despise many aspects of the current internet, but I think that it's the fallibility of man that poisons the nice things, and I don't think that it was ever too much different in this regard.
For a different internet, there are ways to go about it. I'm not sure how much of it you already know.
Millionshort provides alternative search results to queries. I think this is similar to what you're looking for, and it's free.
Alternative networks spring up from time to time, like the Gemini network. I'm not sure how much of a content desert they are, as I'm not a frequent user.
Generally if you hang around in free software / open source spaces, they have a lot of people with an alternative take on the modern things, including people taking part of an internet that's not mainstream, for example by excluding running any JavaScript. This can lead to other places, forums, and so on.
I wish you luck. But be prepared that the past is gone. Maybe never existed in the first place.
> Another common attitude on display above is the idea that users who aren't wealthy don't matter.
If you want to make money, then this is the correct attitude. You need to target the users who have the means to be on the bleeding edge. It may not be "fair" or "equitable" or whatever, but catering to the masses is a suicide mission unless you have a lot of cash/time to burn.
This post reminds me of the standard Stallman quip "if everyone used the GPL, then our problems would be solved"
Anecdotally, Google Search loads ~500ms faster than DuckDuckGo on the OG Pinephone.
How we achieve lightweightness? Currently our only sin is, our inclusion of jquery, that is just to have some cross browser way of interacting with DOM, then we hand craft required JS code based on features used in the form builder. We then ship a lightweight runtime, whose whole purpose is to load necessary JS code pieces to have a functional form that is lightning fast. Ps: we havent gone to the last mile in optimizations, but we definteley will. Even with current state, it is the most lightweight form builder out there.
It is open source, MIT licensed, built on modern stack(react, node.js, Kubernetes and Google Cloud) and we are also hosting a freemium version.
I think, there will be ever increasing need and market for lightweight products, as modern IT means a lot of products coming together. So each one should minimize their overhead.
Give our product a go and let us know what you think?
That would be an interesting direct comparison.
I am running on a relatively new Lenovo Legion (~ 18 months old) with 64kb of ram running windows 11. About 6 weeks ago I began getting the BSOD every time I streamed a live hockey game (I watch maybe 3 games a week from Oct to Jun via Comcast streaming or 'alternative' streams).
The crashes happened multiple times every game. After maybe 10 games of this, I began closing and reopening the browser during every game break. I've experienced zero crashes since doing that.
When the crashes started, I was using Chrome - but I still experienced BSOD crashes when I switched and tested Fox and Brave. Just very odd to start happening suddenly without any changes to my machine that I could pinpoint - no upgraded bios or nvidia that I can recall.
I hope you mean GB.
For example, when Musk took over Twitter, he actually fixed this issue for some time, I tested it. But now they have regressed again. The website will simply not show your timeline on a slow connection. It will show an error message instead. Why would slow connections result in an error message?!
A simple solution that e.g. Facebook (though apparently not Threads) and Google use, is to first load the text content and the (large) images later. But many websites instead don't load anything and just time out. Probably because of overly large dependencies like heavy JavaScript libraries and things like that.
Both the $999 Librem 5 and the $1999 Liberty Phone (latest models) have an i.MX8M, which means they have similar processing power as the $50 phones the article is talking about.
I tried to log into Pastebin today. The Cloudflare check took several minutes.
When I load a bloated website on an iPhone 15 Pro Max over a Unifi AP 7 Pro access point connected to a 1.2Gb WAN, it’s still a slow bloated website.
If you build websites, do as much as you possibly can on the server.
As an industry, how can we get more people to understand this?
After application evolves bloated, it's difficult to go back and un-bloat it.
Bloat is often introduced accidential/y, without need, and unnoticed just because developers test on modern and powerful devices.
If developer's regular test matrix included a device with minimal hardware pewer that was known to run the product smoothly in the past, the dev could immediately notice the newly introduced bloat and remove it.
A bloat regression testing.
I call this "ecological development".
We should all do this. No need to aim for devices that already have trouble running your app / website. But take a device that works today and test that you do not degrade with respect to this device.
It will be hard to get to pristine quality, but there ought to be some amount of low hanging fruit, where minimal changes bring noticeable improvement.
That or better crafting for web applications. It feels painful to me when I see payloads in excess of 4mb of compressed JS. It makes me really want to embrace wasm frameworks like yew or leptos. Things are crazy and nobody seems to notice or care.
I run a relatively dated phone (Pixel 4a) with text set to max size. So many things are broken or unusable.
No matter who it is, when people visualize how to solve a problem, they see how their area of concern contributes more clearly than others'. It's easy to visualize how our contributions will help solve a problem, and also hard to look past how doing something else will negatively impact your tasks. In reality, this medium requires a nuanced balance of considerations that depend on what you need to communicate, why, and to whom. Being useful on a team requires knowing when to interject with your professional expertise, but also know when it's more important to trust other professionals to do their jobs.
The web is clearly not designed for or tested on slow connections. UIs feel unresponsive and broken because no one thought that an action might take seconds to load.
Even back home in Germany, we have really unreliable mobile internet. I designed the interactive bits of All About Berlin for people on the U-Bahn, not just office workers on M3 Macbooks with fiber internet.
Just waiting on it to be practically usable
The problem isn't the technologies available to us. Majority of devs just have no desire to write efficient code.
Yes! I've definitely felt like this while using his website. Of course, today I just fixed it with
main { max-width: 720px; margin: 0 auto; }
but tbh, I don't want to install an extension to customise the css on this one site...
It takes several seconds to load, even with moderate hardware and fast internet connections.
As far as I know, nothing changed on the video detail page to justify such a huge performance degradation. There's still a player, there are still comments, there are ads and suggested videos.
Everyone working on that pile of shit should be ashamed. They would've been better off literally doing nothing and just enjoy the incremental performance gains as the hardware got faster.
https://gitlab.com/edneville/gzip-disk
It doesn't stop client CPU burn, but it might help get data to the client device without on-the-fly compression a bit quicker, which in my experience is helpful from the server side too.It is a minimal, though modern-looking web chat. The HTML, CSS and JS together is 5024 bytes. The Rust backend source is 2801 bytes. It does not pull in anything from anywhere.
Not just the quote but the whole piece. I am glad this was brought out by Dan, and gets enough attentions to be upvoted. ( Although most are focusing on Server Rendering vs Client Side Rendering; Sigh) A lot of what it said would have been downvoted to oblivion on HN. A multi billion dollar company CTO once commented on HN, why should I know anything about CPU or Foundry as long as they give performance improvements every few years.
Not only Jeff Atwood, there are plenty of other Software developers, from programming languages authors, backend and Frontend Frameworks authors, with hundreds of thousands of followers, continue to pump out views like Jeff on social media. Without the actual understanding of hardware nor the business or selling IPs or physical goods.
Hardware Engineers has to battle with Physics. And yet gets zero appreciation. Most of the appreciations you see now around Tech circle are completely "new". For a long time no one heard of TSMC. ASML wasn't even known until Intel loss its leading node. Zero understanding of CPU design nor even basic development cycles. How it will takes years just to get a new CPU out. And somehow hate Qualcomm because they didn't innovate. A company that spends the highest percentage of revenue on R&D in tech industry.
Part of the plan was that they will remake our static homepage in Wordpress bc it will be easier to manage it for them and also easier to add a blog, which was part of the new plan. I know Wordpress is slow and i would say unnecessary also but i said yes bc i did not want to micromanage them.
A year later we parted our ways and i was left with WP where the page load was abysmal(3-5 seconds) and about 10Mb of bs. There was something called "Oxy" or "Oxy builder" which would add a tons of style,js and clutter to the markup and kind of SPA page load style but horribly failing.
So now i migrated the site to Jekyll, got rid of all the bs and it's back fast. And for me also again possible to really improve.
So for my businesses i'm not touching WP ever again and that will be a huge bloat reduction in itself
That's what operating systems are for.
Just give native apps what made the web popular in the first place:
• Ability to instantly launch any app just by typing its "name"
• No need to download or install anything
• Ability to revisit any part of an app just by copy/pasting some text and sharing it with anyone.
All that is what appears and matters to users in the end.
--
But I suppose people who would disagree with this really want:
• The ability to snoop and track people across apps (via shit like third-party cookies etc)
Nice work, webdevelopers!
Could you give an example? I used a shopping website yesterday, both on a laptop and on an android phone, and apart from cookie banner popups (design choice, not hardware limitation), did not have any significant inconveniences.
Aahh yes, the “I’ve loaded in my 38 different loading-shimmer-boxes, now kindly wait another 30 seconds while each of them loads more”
Can we go back to “your page is loaded when _everything _ finishes loading” and not these unhelpful micro-metrics web devs are using to lie to themselves and users about the performance of their site?
how does this even have 200 upvotes? i cant count more than 1 or 2 websites that doesnt have infinite bloat for useless nonsense like the cookie popup social media whatever 10 meme frameworks and 100 js libs injected into the page. HNers just read "bad stuff bad", respond "yup" like a zombie, and continue doing bad stuff
LetsEncrypt is stopping serving Android 7 this year. Android 7 will be blocked from 19% of the web: https://letsencrypt.org/2023/07/10/cross-sign-expiration The option is to install Firefox.
Users with old hardware are poor people. Nobody wants poor people around, not even using their website.
“Fuck the user”, that's what we heard from a PO when we tried to defend users, imagine if we tried to defend poor users.
The actual websites where React is useful can be measured in single-digit percentages (effectively a full-blown application requiring a desktop-like experience, think a trading terminal). It is overkill for everything else.
What's the acronym?
Unfortunately acronyms are context sensitive and many users here are not in your context... Maybe try to avoid using acronyms!
Remember this the next time marketing asks the frontend team to implement that new tracking script and everyone assumes that users won't even be able to tell the difference.
When the goal is to make people pay, a base strategy is to target user who are already spending money. So "fast enough on a current [device sales team is using]" becomes the baseline, and optimizing for older/weaker/cheaper environments isn't an proposition that will convince.
Except when you're ad supported. Then the balance will be a bit more in the middle.
The performance tests were created to mimic user behaviour but only involved company APIs. Not third party requests. No one in the top level, cared about this bit of information. We ran this performance test and saw the the response times are almost the same so it's time to pat ourselves on the back and move on ...
I mean, maybe they can but the business doesn't care. If you polled "users" of cable television I doubt anyone would say they prefer the experience of commercials.
We should just tax ad and spying on users bandwidth and front/backend end resource use.
The internet has grown, and the free sharing is still going strong. Have a look at Wikipedia, Hacker News, Arxiv.org.
To be honest, the stuff that was shared freely in 2000 was not all that great, and most of that which was, is still available. Remember that you had to buy a subscription to Encyclopaedia Britannica back then, and to all the academic journals.
Granted, there are some non-free information silos, but generally I'm pretty happy with the procrastination advice on Reddit being surrounded by annoying ads that drive me away.
When all this time, lightweight CSS and anchor links and some PHP was all we needed.
Can’t even post inline videos, bro.
\s
Jokes aside, I do miss this type of interaction. Especially for open source projects. It made finding solutions to common issues much easier when documentation was lacking or has not been updated in a long time.
Now all or most projects have adopted some form of: discord channel, slack group, subreddit, twitter. I remember searching for my similar issue in a slack channel only to realize the chat history has been limited because the owners did not pay the extra amount to archive messages beyond what was given for free.
It's the websites/web developers that are the problem.
obvs a good coder optimizes their own theme to get 100% score on lighthouse.
Lemme just give my grandma a list of instructions for doing this so she can get to Facebook. I'll let you know how it works out.