Not just load time, but "time to read content" has exploded. Once the webapp has downloaded and it can start doing REST like requests for the actual content, it also needs to start loading pop-ups and the "continue reading"-button, that can hide the content after it is loaded.
So once all that is done, the user needs to click away cookie consent banner, newsletter sign-up and the continue reading button. And only now can we stop the clock on "time to read content".
This is a big reason why I read comments first. I click and get straight to content.
EDIT: I just realized that the "time to ..."-moniker works really bad in my phrasing here. Maybe "time to start reading" would have been better.
NoScript gives you a 90s style web experience. It's vastly superior to what passes for normal these days and blows away AMP pages on page load performance.
I was a huge fan of NoScript when it first came out and depended on it extensively until FireFox changed something on their backend and it broke NoScript. Then NoScript released an updated version of the extension and honestly I had a terrible time trying to figure out how to use it.
IIRC there was some kind of grid format used that was entirely opaque to me; yet the developer must have thought was an improvement over the previous "allow X.domain.com temporarily" vs "allow X.domain.com permanently." that I was used to.
I should give it another try, maybe it's not as obscure as it once was.
EDIT: I've just reinstalled it, and it is much more intuitive then it was before. Thank-you for reminded me about it.
Yup, many sites just read faster without the cruft.
For me, everything has continued to get faster for the past 30 years. Better modems, service, dsl, cable. 15 years ago, installed button on browser at work to turn off scripting (all or nothing). Used until NoScript came out.
Most news sites, NYTimes, WPost, CNN, even HN - you don't even need scripting to read the text, and it loads like lightning. I don't even bother with an add blocker these days. Want to see pics? Tweak the pic link yourself, or google the article title. Worth it, because it's so much faster.
On HN, I finally got a log in and enabled scripting for ycombinator.com - it's usually always fast anyway.
- I just enable "scribblemaps.com". Don't need "azure.com", "google-analytics.com", or "visualstudio.com".
Most sites I leave default, no scripting at all. If I really want to see missing content, I might try enabling some, or even all, if I trust the site. Most of the time I can read everything I want without wasting the time.
What the network tab in your browser's DevTools when you click it, and you'll see.
Even if the whole text is loaded with the initial page, you'll see a request to somewhere to record that you clicked. Your engagement has been measured. This can be helpful for the site directly (which articles do people actually care about after the first paragraph) and that people are engaged enough to click for more is something they can “sell” to advertisers. A better designed site will have the “read more” button be an actual link so if you have JS disabled (or it fails to load) instead of the content reveal simply failing it falls back to a full-page round-trip so you are counted that way.
This could be done with picking up on scroll events or visibility tests on lower parts of the article, instead of asking the user to click, but those methods are less accurate for a number of reasons (people with big screens, people with JS disabled or JS failed to load, …)
Once upon a time, web browsers were equipped with a STOP button. As soon as the thing you were interested in was loaded, you could press it and...everything else on the web page would just stop loading. Unfortunately, now days the thing you are interested is hiding behind mountains of cruft and usually the last thing to load.
It isn't as much to claim specifics about what you do wrt targetting.
It is to try prove they have engaged users who are looking at the screen rather than, for instance, opening it in a tab then closing it later without ever reading any of it.
You might link that to what adverts were shown, but only if they know that information (they may not if the advertising space is farmed out to 3rd parties which is very common).
Is it really that ineffective? Let's say I get 1 million click-throughs and 100k of them click "read more", which I send as conversions to Facebook. Won't Facebook's algorithm start targeting people similar to the 100k that "converted", making the next 1 million clicks contain more people that hit "read more"?
Maybe, maybe not. It could all be a huge cycle of cons with each part of the advertising and stalking business making crap up about what is effective and convincing the next people in the cycle. But certainly some think it is effective, or at least are hoping that it will be.
It could be like junk email: there are companies and individuals who make money from sending it. It doesn't actually matter to them if it is effective, as long as they can convince others buying their services that it is, or likely might be, effective, and they get their money whether it actually is or very much is not.
In theory on a list of stories this would give you the excerpt and help you scan the list for interesting pieces.
In practice if editors don’t write excerpts, this is the first paragraph, and if there are no other stories, well it’s a measurement of engagement at that point.
Originally, they saved bandwidth. High res images would take time. I believe it continues because they want you to see below at other potential articles/ads.
”So once all that is done, the user needs to click away cookie consent banner, newsletter sign-up and the continue reading button. And only now can we stop the clock on "time to read content".”
You forgot the paywall that you will see at this point.
Maybe there is also a customer service bot saying: ”Hey! Ask me about our special offer on 12 month subscription!”
And the banner asking you to install their PWA because you wanted to read one article on their site. Also don't forget to enable push notifications so they can tell you when they post a new update.
haha.. i am building a browser extension that does login and bypass captcha by sending the captcha image to a server and getting a response. that roundabout takes ~6 seconds. the "normal" way of handling was designed with "username<tab>password<tab><captcha send><show captcha getting banner><spinner><captcha get><captcha paste><tab><enter>
this "felt" too much work so i thought of redesigning the workflow so we ended up with
<captcha send>username<wait><tab>password><wait><tab><show captcha getting banner><wait><captcha paste><tab><enter>
we made the entire process take time to accommodate the ~6 seconds of captcha which currently does not "feel" as taking that time because people are now not happy with loading and wait spinnners generally or stuff taking time, they want everything to be instant. this is just gaming the system so that we can work around technical limitations
I believe we are almost at peak GUI. The endgame here is that all these crappy GUIs that are getting worse every year will be relegated to a role of being APIs for AI agents.
Instead of clicking around and filling out forms and waiting for loading spinners all the time, we'll just tell a large language model what we want to do in English, and it will go off and screen-scrape a bunch of apps and websites, do all the clicking for us, and summarize the results in a much simpler UI designed to actually be fast and useful, vs. designed to optimize the business metrics of some company as interpreted by a gaggle of product managers.
This isn't unprecedented. Plaid screen scrapes terrible bank websites and turns them into APIs, though without AI. Google Duplex uses AI to turn restaurant phone numbers into an API for making reservations. DeepMind's Sparrow[1], just announced today, answers factual questions posed in plain English by performing Google searches and summarizing the results. But it's going to be a revolution when it becomes much more general and able to take actions rather than just summarize information. It isn't far off! https://adept.ai is pretty much exactly what I'm talking about, and I expect there are a lot more people working on similar things that are still in stealth mode.
You mention it in your response, but this whole paradigm looks like an extension of what we have with Google Search.
And Google Search is so utterly weak. Not just because of the neutering of search options or the weird priority conflict inside Google, but just because even with litteraly all the data in the world about a specific user it doesn't seems like it can wrangle what a request actually means.
It can tell me the time in Chicago, but not what computer would actually be the best for my work. That search will only be spam, irrelevant popular results and paid reviews.
Same if I asked for a _good_ pizza recipe, it would probably not understand what that actually means for me.
The whole model of "throwing a request in the box and expecting a result" seems broken to me, I mean even between humans it doesn't work that way, why would it work with an advanced AI ?
PS: even with more back and forth, I'm imagining what we have now with customer support over chat, and while more efficient than by phone, it's definitely not the interface I want by default
I have a web app that is essentially a full OS GUI in the browser. The load time in Chrome with state restoration is almost exactly 0.3 seconds, which includes asynchronous gathering of file system artifacts and rendering display thereof.
At the same many primarily text sites struggle, such as news and social media, struggle to load in 15 seconds.
My connection measures about 920mbps down so 15 seconds is really ridiculously slow. This is certainly not a technology problem evidenced by my own app that is doing so much more is such shorter time.
You are right. It is not a technology problem. It is a problem of incentives. The people writing the software don't have the right incentives to make it pleasant to use.
It's not the incentives that make this site load in 15 seconds. The site just doesn't have the incentives found in the majority of sites to make it any more complex than it has to be.
Using a LLM as an agent will be comical, like a supervillain trying to explain a menial chore to a dimwitted henchman: “No, you fool, that’s not what I meant when I said bring me the head of R&D!”
Then, maybe LLMs will get more intelligent and it will be less comical, and more like having an actual slave. An agent intelligent enough to do all these things is probably intelligent enough make me queasy at the thought of being its master.
Your point about more people working on similar projects in stealth mode is likely an underappreciated notion. And thank you for introducing me to Adept; looking forward to keeping my eyes on that company's progress.
> we'll just tell a large language model what we want to do in English
Language is an imprecise tool, it has inherent ambiguity. Language is also laborious and one dimensional (stream of bits over temporal dimension). A tool such as the one you describe would be extremely frustrating to use.
If you imagine asking Siri or Google Assistant to do things for you, of course that would be incredibly frustrating; they suck. That style of HCI is a dead end for sure. However, asking a human personal assistant to do things for you wouldn't be so frustrating. Especially if they know you well. That is the kind of experience I'm talking about. Yes, I do believe it is possible in the not too distant future. Maybe 10 years or so. It won't be as good as a human assistant at first, but it will not be like the speech interfaces you're used to.
Somewhat related, but I recently discovered the Calibre "Fetch News" function. It parses the articles (similarly to archive.org I assume in that it also bypasses paywalls) and puts them into a nice EPUB format. I run it in server mode on a RPi so every morning I can just load up the Calibre web reader on my phone and read the news in pure text form.
We can wish that crappy websites didn’t get more bloated every year, but as long as they still load fast enough most people don’t know the difference or care. Everything has an opportunity cost, so once things are good enough the resources that could be spent optimizing will be spent elsewhere instead, and bloat that can be added to solve other business goals will be added.
It’s understandable to get frustrated by this, but at some point you realize it’s pointless.
This is true in many, many facets of life. Household possessions tend to expand to fill the available square footage. Cities sprawl haphazardly until commute times become unbearable. Irrigation expands until the rivers are depleted. Life expands to the limit, always.
I blame the devs before I blame the platform. Relational databases are mature enough and yet devs still find ways to create queries that time out with only a few thousand rows in their tables.
Businesses don't need to provide a perfect experience to every one of their customers. If they did, they would. Like previously said, businesses are good at satisfying customer needs as dictated by their customers' wallets.
I thought about exactly this when I saw this headline. Extra bandwidth just means we can have video header images rather than a still. Here, have a few more tracking scripts.
Throughput of networks is increasing but latency doesn’t improve as much (although 5G wireless is a big improvement over 4G LTE). Also TCP slow-start limits how fast an HTTP connection can go, and most are short-lived so the connection is still ramping up when it is closed. That’s one of the supposed benefits of QUIC a.k.a. HTTP/3.
And then there is bloat, the scourge of JavaScript frameworks and what passes for front-end development nowadays.
> and then there is bloat, the scourge of JavaScript frameworks and what passes for front-end development nowadays.
It keeps getting worse.
When I do web app security assessments, I end up with a logfile of all requests/responses made during browsing a site.
The sizes of these logfiles have ballooned over the past few years, even controlling for site complexity.
Many megabytes of JS shit, images, etc being loaded and often without being cached properly (so they get reloaded every time).
A lot of it is first party framework bloat (webdev active choices), but a lot is third party bloat - all the adtech and other garbage that gets loaded every time (also without cacheing) for analytics and tracking.
Yes, and it's not as if tools like Google's Lighthouse/PageSpeedInsights or Mozilla's Firefox Profiler haven't been available for years.
Economists and lawmakers have determined that the economic benefits of personalization accrue to the ad middlemen like Google, not to the publishers who have to encumber their sites with all the surveillance beacons, but the reality of the market is publishers have no leverage. That said, most of those beacons are set with the async/defer attribute and should not have a measurable on page load speed.
> but a lot is third party bloat - all the adtech and other garbage that gets loaded every time (also without cacheing) for analytics and tracking.
This is also amusing from a change management process at large organizations: want to tweak an Apache setting? Spend a month getting CAB approval and wait for a deployment window.
Want to inject unreviewed JavaScript onto every page in the domain? Login to Adobe…
On mobile latency has constantly improved.
GPRS/EDGE was often +100ms ping --> 3G 400-50ms depending on the day --> 4G/LTE 50-30ms and now I'm often getting sub-20ms ping on 5G connections.
Yes, moving from voice-centric to IP-centric network technology has helped, and 5G paid laudable attention to latency. Their target for 5G is actually 1ms, but of course backhaul will dominate that.
I had heard the 1 ms number also and did some research some time ago. As far as I understood the 1 ms is for specialised low latency connections and devices not for the every day browsing.
Yes, I subscribe to Dean Bubley and he is a very useful corrective to the telco boosterism on things like overselling 5G, network slicing, the dumpster fire that is RCS and so on.
Still, it's important that latency is top of mind for the designers of 5G, as it gets short shrift far too often.
Yes, backhaul (the connection from the tower to the Internet via the carrier's central facilities) dominates, as well as queueing latency for packets waiting to be delivered to phones, since traffic is overwhelmingly downloads.
Desktop bandwidth is improving over time, but as I understand HTTP Archive is still using a 5 Mbps cable connection.
From their FAQ/changelog [1]:
> 19 Mar 2013: The default connection speed was increased from DSL (1.5 mbps) to Cable (5.0 mbps). This only affects IE (not iPhone).
There was another popular article on HN a while ago [2], claiming mobile websites had gotten slower since 2011. But actually HTTP Archive just started using a slower mobile connection in 2013. I wrote more about that issue with the HTTP Archive data at the time [3].
Regarding "4 seconds wasted" per visit: HTTP Archive also publishes real-user performance data from Google, and only 10% of desktop websites take 4 seconds or more to load. (And I think that's not the average experience but the 75th percentile.) https://httparchive.org/reports/chrome-ux-report#cruxSlowLcp
The Google data uses Largest Contentful Paint instead of Speed Index, but the two metrics ultimately try to measure the same thing. Both have pros and cons. Speed Index goes up if there are ongoing animations (e.g sliders). LCP only looks at the single largest content element.
Is the quote attributed to Bill "why should I refactor code when CPUs get faster, drives get larger" an internet legend or a terribly paraphrased line said by Bill?
Computer speed is a lot like driving traffic times. The amount of time it takes is pretty fixed as it’s based on what people find acceptable which doesn’t change. With faster computers just comes more features at the same speed.
This website loads an exceptional amount of data for what it is, at least for me. On my browser it makes calls to a site called streamlitapp.com every 100 ms. It appears to be using about 100MB of bandwidth every 10 seconds from what I can see
Streamlit is the framework I used to build the app at the bottom of the article with. It does unfortunately load a decent amount of JS. However it should be non-blocking, which means it won't interfere with how quickly you can see or use the page.
It pings back to Streamlit to keep your session state alive as it's running a whole Python interpreter on the backend for each session.
The speed index for this page hovers between 1-2 seconds when I test it.
The source for that is some stats from speedtest.net, which I assume is calculated from the users who used their speed test? So it's probably heavily skewed towards power users who have a fast connection and want to check if they are really getting what they are paying for. Most "casual" users with shitty DSL connections are happy if "the internet" works at all and are pretty unlikely to ever use this service...
This is why Netflix started their own (fast.com), making it more difficult for ISPs to throttle NF video content (or just prioritise speedtest traffic) and blame NF for poor performance (or poor quality because it was using more highly compressed streams to deal with low throughput) because “if you run any speedtest you'll see your connection through us is fine, it must be NF being busy”.
The irony of this post is that the single heaviest resource loaded by this page is a 750kb image used only for the meta tags as a sharing image which most people consuming and downloading the page will never see.
What's baffling to me is how people love to spend seemingly infinite time playing with tech stacks and what not but then pay very little attention to basic details like what to load and how many resources do they really need.
I maintain that "booting a Mac, loading Chrome, loading Google Docs, and getting ready to type", takes as long as "booting DOS, starting Windows 3.1, loading Word for Windows 2.0", takes as long as "loading GEOS from floppy disk on a C64, loading geoWrite", and so on, and so forth.
If anything, it probably got slightly slower over the years.
Reminds me of that time when we switched from writing by hand (and sometimes typing on a typewriter) all kinds of forms and reports to composing them on a computer and then printing it: initial time savings were pretty huge and so, naturally, the powers that be said "well, guess We can make you fill much more paperwork than you currently are filling" and did so. In the end, the amount of paperwork increased slightly out of proportion and we're now spending slightly more time on it than we used to. A sort of a law of conservation of effort, if you will.
No, c'mon. I still remember how it took ages for my old Windows to boot up and even get to the desktop. Maybe DOS was faster without GUI but it was god damn slow at one point. And all that weird noise your PC would make while reading from the disk non-withstanding the dance with the modem. With my current Mac I'd say it takes about 15s to open Docs.
Speaking from experience, at shipping time of a new site performance testing is done, and the developers are asked to improve performance until it is just good enough. So it doesn’t matter how big or small the site is, unless by shipping time it is already faster than desired it will only get optimized to run as fast as every other site, but no faster.
I got a new M2 Macbook and it's astonishing how much faster the web is. It seems a lot of the lag must just be javascript execution time and not content loading.
oh it does not make me feel happier either. Its just funny that they know that its broken and dont even bother fixing it and instead just slap a message.
I wish my browser to save the full state of js app on every action firing which use to alter the state. No matter how much storage is needed for this approach.
This data is not for RAM, it may be done using an HDD or even cloud. This data is not for reading but for storing only. I mean, the concept of browsing history was born when the HDDs used to have memory of a fruit fly and a price of an elephant, I really do not need headers only in my history because most of them become dead in 3-5 years. Wouldn't it great to read my 10-years old interactions with web or to save some big SPA for interacting with it later maybe when no online will be available?
OpenRTB is capped at 100ms for the auction and in practice much less than that. One of the few areas of web development or assimilated where serious attention is paid to performance.
Jevon’s paradox: “…occurs when technological progress or government policy increases the efficiency with which a resource is used (reducing the amount necessary for any one use), but the falling cost of use increases its demand, negating reductions in resource use.”
Developers will therefore always maximize resource usage as more becomes available.
Before I upgraded my macbook air 2019 to an m1 I could barely visit most "big" websites. I remember a redesign of a specific store that went from "perfectly usable albeit a bit outdated in term of design" to "10x slower, looks nicer but usability is dog shit"
I've seriously always wondered exactly what the purpose of a cache for web pages in a browser is. Why is it there? It takes up many megabytes (or even GB) of space. Yet it seems to serve no purpose whatsoever: every time you navigate to that page, it always reloads it from the web server, even if you just briefly (mis-)click on a link and then click on "back". A lot of disk space could be saved by simply eliminating these caches.
Because for some files developers can set a max time it should be cached. Just open developer tools and go to the Network tab, make sure "Disable Cache" is unchecked and then reload the page. In the column "Transferred" you can see, which things are loaded from cache
Well we could start here and now by reporting load sizes/site footprint in bytes which wouldn't look out of place on hn, along with badges for cookie consent dialogs, ga usage, non-responsive design, high energy consumption flags for sites that suck the last power out of your mobile, and other non-desiderata. Or just mark a site as requiring JavaScript so we can avoid it. DDG should be doing the same.
It is possible that website loading is bottlenecked by latency and an irreducible number of round trips needed. Bandwidth is not obviously a bottleneck.
It'd be interesting to know why load time hasn't improved.
In the comments I mostly see "because of js and adtech", but is there a factual analysis somewhere ? How much is due to the recent massive deployment of https and related latency ? Is it a problem of latency or bandwidth ? What type of contents is causing most of the waiting time ? Images, css, js ? Just wondering
> In the comments I mostly see "because of js and adtech", but is there a factual analysis somewhere ?
I'm not sure what sort of analysis you're looking for, but different sites have different problems. I'm not convinced that averaging them makes sense, and it's very difficult to create a reasonable metric. As soon as you start measuring some specific metric, people will optimize for it whilst still making the site unusable. Unfortunately "usable state" is too hard to quantify without it being game-able.
> How much is due to the recent massive deployment of https and related latency
Very little, you can check here [0] and see for yourself. Obviously it depends on your distance to the server you are reaching, but the added latency of HTTPS isn't really a factor when you're looking at 10s for a page to load.
> What type of contents is causing most of the waiting time ? Images, css, js ?
Lets look at CNN (only because I happen to remember that a lite version exists thanks to someone on HN). The lite[1] version loads entirely in 350ms for me. The normal version[2] with adblock on finishes loading everything after 1.43s. The normal version with adblock off, finishes loading after 20s and reflows a bunch of times as ads get loaded.
So I agree with the rest of the comments, it's "because of js and adtech".
Disclaimer: I'm in South Africa at the moment on 4g, my internet isn't the best :)
In the past computers (incl. hard drives and CPUs) were orders of magnitude faster than the communication lines so it made sense to compress everything as hard as possible and cache that. Now I have a 10 Gbps line, a 1 Gbps network card (I don't feel like I need a faster one), a 200 Mbps SSD and the CPU often is near-100%-loaded.
Making general software faster is saving the planet, both by saving human waiting time and carbon footprint on electricity. We are not measuring on this domain enough and we should start doing so. The added bonus is that faster software/website makes better UX, and we saves time on doing "UX research" as well.
Good enough is good enough. Just like faster computers don’t make new apps any faster (even at the peak of scaling decades ago), they make sure we can write more complex apps without making them too slow, or equivalently, add more things to apps and sites if there is any performance headroom left.
Oh to be a mere average computer user. I work with files that can still take some non-instant time after hitting save to complete. Conversely, it still takes some non-instant time to open said file. As long as there's such a thing as progress bars, count downs, spinning wheels, beach balls, etc, there is always room to make things faster.
I develop very complicated software for a living and as always, there are some features that will take an unreasonable amount of time. On large documents, you have customers wait 5 seconds for a regular operation (that you may need to complete dozens of times in a row).
And yet when you ask customers whether they want more features, or a faster program it's invariably features. Fix a bug or add a feature? Add a feature. Improve perf or add a feature? Add a feature.
My own tolerance for delays is tiny, but my "average users" seem to not suffer from it at all. I guess the reason is this: they know how much time something took before. They know that if this takes 10 seconds and it took them an hour to do on paper, that's quick. Meanwhile for me I'm in the IDE having a 200ms keystroke delay and I'm almost having a heart attack.
>And yet when you ask customers whether they want more features, or a faster program it's invariably features. Fix a bug or add a feature? Add a feature. Improve perf or add a feature? Add a feature.
Of course this is what they want. To the user, the damn thing should have been working when you released it. To the user, you shouldn't have to ask to have something that's broken but is meant to be a feature to be fixed. If it's not working, why is it there in the first place. Fix it. Duh. But also add new features before your competitor does and takes your users. This is such a weird excuse on discussions about a progress bar.
Go re-watch "Office Space" from the 1990s, in particular the scene where the main character is trying to save his work and shut down before the boss comes by and asks him to work over the weekend.
25 years later, progress bars are no better: they steadily go to 15%, then stop there for a while, suddenly zoom to 80%, then slowly progress to 99%, then stop there for a long time.
Writing a progress bar is basically still impossible. If you are doing a single slow thing like rendering or uploading etc then you can make a progress bar.
But if you are making something that has multiple phases and you want to use a single progress bar then that isn't goingt to progress nicely from 0 to 100 it's just impossible.
You'll either have to make an overall progress bar for the different phases, or just indicate that this is phase 4/5 and the progress of that phase is 82%. This solves the jumpy progress bar issue, but doesn't solve the underlying issue of actually showing an estimate of time remaining. You have no idea whether phase 5/5 is going to take 1 second or 1 minute.
When a progress bar stops at 99% it's just because some final task that was expected to not take very long, did. E.g. it could be deleting a file at the end of some install process, and that for some reason blocks. There is obviously no way of knowing the actual time that will take without trying it, at which point it's too late for the progress bar to adjust of course.
So: we'll have general artificial intelligence on smartwatches, before we have smooth multi-phase progress indication (because that's never).
>Writing a progress bar is basically still impossible.
So then why try it?
I would much rather see some sort of update like when you run "yum update" and it spits out 3/15, 11/15, etc. You don't have to show all of the lines scrolling, but you could do similar to a "\r" instead of a "\n" in the progress window with an update that is very intuitive. You know how many steps you must take to accomplish the user's request. I don't need to see how long each step is taking per se, but if you showed me the total number of steps and show each one ticking off would be much more useful than the typical blue bar race.
Your alternative was already attempted with Windows 98.
During startup, the console would display the modules after it loaded them. People attributed failure to load the next module as a failure of the last one visible.
This ended with mup.sys being blamed for every failure.
>During startup, the console would display the modules after it loaded them. People attributed failure to load the next module as a failure of the last one visible.
Then why didn't they print a message before loading a module? This is really simple stuff, and would immediately show the problem. This is pretty normal in printing to logfiles in software: print messages both before and after an action is taken, so if it gets stuck in the action, you see that it never succeeded though it was started.
I don't know the specifics to mup.sys you mentioned or Win98 at all, but isn't this pretty much the same for every OS/application debugging? The message can't be updated to the screen until the process has completed. I thought it typical debugging knowledge that you look at the processing after what ever the last completed message was. It's kind of common sense when you actually think about the logging process.
> There is obviously no way of knowing the actual time that will take without trying (...)
How is that obvious? Deleting a file doesn't just block for no reason. The OS (usually) or disk hardware (rarely) are the ones that decide to block it, and they have the information needed to know how long it will take.
What actually happens is that the advantages of showing a correct progress bar simply don't justify the complexity needed for it, and a decision to show a crappy incorrect progress bar is made.
Let's take another example. E.g. if you have a progress bar for doing a set of 5 git operations you don't know whether the 3rd might start some housekeeping. For some tools (such as git) it might be possible to force this automatic housekeeping off in order to make a predicable progress bar. But in others it might not be. In some tools you may be able to predict if it will happen, and in others maybe not.
Another example (from the real world this time): I make a progress bar for an iterative optimization of an design in a program. The number of iterations until the design completes can't be reliably estimated. It's not completely underterministic of course, but the complexity of making that estimation isn't just high, it's likely to be so high that it approaches the complexity of the optimization itself.
Your second paragraph is basically what I meant: The complexity is just too high. This is especially true when downloading data from the internet is involved.
But the first example, git housekeeping, depends only on information readily available locally. git could just give this information to any calling program that needs it, but my guess is that nobody thinks that progress bars are worth it.
Actually, in today's world, I'd be happy if progress bars (or even indefinite loading indicators) would even show me when the process has crashed and won't ever finish, but they'll happily show "progress" that will never finish.
No website I use does take 6 seconds to load. And I have 50 Mbps downlink. Can anyone name a website that does take that long to load? Github for example does load in 4.37 seconds with cache disabled in developer tools. CNN does take 3.58 seconds.
You aren't loading all the adtech webshit that makes up the majority of a page load.
Given that network wide adblock/tracker blocking saves upwards of 60% of bandwidth (for web traffic) on the average network, its pretty obvious where the problem is.
Latency: Part of the page loads, and then the page asks for more data. In some cases, (such as loading a page hosted on another continent,) this is bound by the speed of light.
Poor data access (database) code: Sometimes this is due to lazy or incompetent programmers, other times its due to the fact that "not instant" is "good enough."
Writing a web page to load everything very quickly in a single request is surprisingly hard, and will often break modern and easily understood design patterns.
> Latency: Part of the page loads, and then the page asks for more data. In some cases, (such as loading a page hosted on another continent,) this is bound by the speed of light.
This problem is exacerbated by the fact that web pages are just built as giant JavaScript applications for no reason. With a page pretending to be an app, the browser has to download, parse, and execute the JavaScript core before the browser can do anything. All of the resources are hidden somewhere inside the application and the browser is stuck with its thumb up its ass unable to load or do anything.
Sites using a bunch of JavaScript to "render" everything client side are causing their own stupid problems. I just built a toy React app that only displays Hello World. It's the most trivial app that isn't just a blank project. A production build of it weighs in at 143kB for just the JavaScript portion. It's also multiple resource requests just to load that crap. Even bundled into an HTML skeleton it's still 145kB of JavaScript to run before the browser can do anything else.
Served locally it takes about 20ms to load that React app and draw something on my screen. An HTML copy of Frankenstein (463kB) loaded from the same server loaded in 5ms. A plain HTML document three times the size of the toy React "app" loaded in a quarter of the time!
> Writing a web page to load everything very quickly in a single request is surprisingly hard, and will often break modern and easily understood design patterns.
I find this to be an odd take. This nearly 4,000 word CNN article[0] including graphics weighs in at 70kB. The HTML alone including a bunch of inline styling (tables, font tags, etc) weighs only 55kB. With no graphics loaded it is still a perfectly readable article. Loading the HTML of that page in my above test it still loads in 5ms and is 100% readable.
Not just that but I can navigate with the sidebars and headers. In less space than just a toy React app I've got a completely usable page that can display as close to instantly as my eyes can determine. There's nothing about "modern and easily understood design patterns" that requires hundreds of kB of JavaScript or even extra CSS. It would be trivial to replace the table and font tags with CSS in the header and likely get the whole document even smaller while keeping 100% of the functionality and navigation.
The CNN article example coincidentally shows how stupid the JavaScript bloat problem is because several of the images are not found and the 404 pages CNN is returning in their place are a megabyte.
I wonder if it is time to explore alternative syntax parsers with a more generic API to accommodate other markup formats. At least initially this could be 1:1 with HTML but eventually could support new functions not limited by HTML itself so that the features and languages can move at separate paces.
Being able to render an enhanced markdown or JSON or YAML page in the browser without any generators would be phenomenal and resolve a lot of long-standing issues with structured data.
The title of this post is annoying: Typically we say "faster broadband", when we talk about bandwidth, not about "speed" (which would be latency). So obviously, as long as your website is not larger than your bandwidth capacity, nothing is gonna get "faster", when you upgrade your broadband bandwidth.
This is the same as saying "Despite larger pipes every year, water still doesn't reach your house any faster".
If a website is transferring more data to render content, or worse, before starting to display content, then bandwidth matters as it will move that data more quickly.
If a website requires multiple round trips to complete a given request, then latency will also matter, and sets an absolute minimum floor to time-to-display (TTD) regardless of bandwidth. The higher your latency, the slower that process.
In theory it's possible for an SPA (single-page application) to be more responsive despite an overall larger page weight as it can incrementally request and present additional content. In practice such pages often perform worse on time to display due to both increased total data transfer and round-trip request requirements. A lightweight HTTP/2 HTML+CSS only site can be far more performant if it's based on static pages and request/load dynamics.
> Contrary to popular belief, the average car is not in fact that much more fuel-efficient than older cars. Still, to this day, the average vehicle has a range of between 20 and 30 miles per gallon; a stat which was very similar in the 1920s. But, why is this? Well, cars are a whole lot bigger.
Recently I've been wondering why my internet seems to be getting so slow. It then dawned on me that webpage bloat has progressed to the point that my 2015 MacBook (the small one with the rubbish processor) really struggles to load a typical webpage in a reasonable amount of time.
Actually curious, what do you mean exactly by "doesn't perform better" in this context? My experience doesn't go as far (10-15 years), but while I agree a whole subset of softwares don't feel much different (text editors, web browsers), in some other domains I can feel the difference (video games, programing IDEs and the tools they offer). Where I imagine I agree is if a computer hardware becomes 10x more performant, there is not a related 10x improvement performance on softwares
I started software professionally in 2008 and I honestly can't tell a difference between literally anything in this time period. I was using Netbeans and doing Java EE / JSF and the feedback loop feels about the same as it does today. I do remember going from Java EE to Play Framework and it being a little faster feedback loop. Sublime Text still works about the same as it did on Leopard. The only noticeable speed bump I've felt in this time period was going to an M1 from 2019 Intel MacbookPro. I think the reason is the 2019 Intel Macbook pro is one of the slowest computers to ever be released and while throttled (99% of the time) it was slower than my 2015 Macbook Pro and maybe even my 2013. I'm sure the M1 will be eaten up with React and Electron apps soon enough.
Because that represents the patience of the typical user. For the most part, apps/sites/whatever have always hovered around such a limit. It takes that long not because of tech, but because of people.
Your network packets are making a round trip between your computer and the nearest server the site is on, so there's always going to be a hard limit on site speed based on distance. That has to happen a few times for DNS, OPTIONS, a GET for the HTML, maybe more for any blocking resources. Add on parsing and rendering and it's probably getting close to impossible to get much under 100ms for for websites these days. 5 times that isn't great but it does seem a little unreasonable to complain.
So once all that is done, the user needs to click away cookie consent banner, newsletter sign-up and the continue reading button. And only now can we stop the clock on "time to read content".
This is a big reason why I read comments first. I click and get straight to content.
EDIT: I just realized that the "time to ..."-moniker works really bad in my phrasing here. Maybe "time to start reading" would have been better.