Front-End Developer Decries 'Garbage' Design Choices on 'The Bullshit Web' (pxlnv.com)
"Ever wondered why pages seem to load slower and slower? Or why it is that browsing seems to take just as long to load a page, even though your broadband connection doubled in speed a couple of months ago?" gb7djk, a long-time Slashdot reader, blames "the bullshit web" -- as described in this essay by Calgary-based front-end developer Nick Heer (who does his testing on a 50 Mbps connection).
A story at the Hill took over nine seconds to load; at Politico, seventeen seconds; at CNN, over thirty seconds. This is the bullshit web... When I use the word "bullshit" in this article, it isn't in a profane sense. It is much closer to Harry Frankfurt's definition in On Bullshit: "It is just this lack of connection to a concern with truth -- this indifference to how things really are -- that I regard as of the essence of bullshit...." The average internet connection in the United States is about six times as fast as it was just ten years ago, but instead of making it faster to browse the same types of websites, we're simply occupying that extra bandwidth with more stuff. Some of this stuff is amazing.... But a lot of the stuff we're seeing is a pile-up of garbage on seemingly every major website that does nothing to make visitors happier -- if anything, much of this stuff is deeply irritating and morally indefensible.
Take that CNN article, for example. Here's what it contained when I loaded it:
- Eleven web fonts, totalling 414 KB
- Four stylesheets, totalling 315 KB
- Twenty frames
- Twenty-nine XML HTTP requests, totalling about 500 KB
- Approximately one hundred scripts, totalling several megabytes -- though it's hard to pin down the number and actual size because some of the scripts are "beacons" that load after the page is technically finished downloading.
The vast majority of these resources are not directly related to the information on the page, and I'm including advertising... In addition, pretty much any CNN article page includes an autoplaying video... Also, have you noticed just how many websites desperately want you to sign up for their newsletter?
The essay also deals harshly with AMP, "a collection of standard HTML elements and AMP-specific elements on a special ostensibly-lightweight page that needs an 80 kilobyte JavaScript file to load correctly....required by the AMP spec to be hotlinked from cdn.amp-project.org, which is a Google-owned domain. That makes an AMP website dependent on Google to display its basic markup, which is super weird for a platform as open as the web."
It argues AMP is only speedier "because AMP restricts the kinds of elements that can be used on a page and severely limits the scripts that can be used," calling it a pseudo-solution. "Better choices should be made by web developers to not ship this bullshit in the first place.... An honest web is one in which the overwhelming majority of the code and assets downloaded to a user's computer are used in a page's visual presentation, with nearly all the remainder used to define the semantic structure and associated metadata on the page."
Take that CNN article, for example. Here's what it contained when I loaded it:
- Eleven web fonts, totalling 414 KB
- Four stylesheets, totalling 315 KB
- Twenty frames
- Twenty-nine XML HTTP requests, totalling about 500 KB
- Approximately one hundred scripts, totalling several megabytes -- though it's hard to pin down the number and actual size because some of the scripts are "beacons" that load after the page is technically finished downloading.
The vast majority of these resources are not directly related to the information on the page, and I'm including advertising... In addition, pretty much any CNN article page includes an autoplaying video... Also, have you noticed just how many websites desperately want you to sign up for their newsletter?
The essay also deals harshly with AMP, "a collection of standard HTML elements and AMP-specific elements on a special ostensibly-lightweight page that needs an 80 kilobyte JavaScript file to load correctly....required by the AMP spec to be hotlinked from cdn.amp-project.org, which is a Google-owned domain. That makes an AMP website dependent on Google to display its basic markup, which is super weird for a platform as open as the web."
It argues AMP is only speedier "because AMP restricts the kinds of elements that can be used on a page and severely limits the scripts that can be used," calling it a pseudo-solution. "Better choices should be made by web developers to not ship this bullshit in the first place.... An honest web is one in which the overwhelming majority of the code and assets downloaded to a user's computer are used in a page's visual presentation, with nearly all the remainder used to define the semantic structure and associated metadata on the page."
The standards are not really that bad (well, maybe CSS isn't great). But the problem is when graphics and art people get done with a site. For example, I built a simple, in house web tool for a customer. It had a bit of JavaScript (which I minified) because it was doing lots of processing. But it was maybe ~120K to load everything. I didn't even bother with stuff like jQuery since the set of browsers I'm running on is well controlled.
But it didn't look good. I'm color blind and have no interest in making things aesthetic; I made it functional. The powers that be wanted it to be made pretty. It's now ~2MB because it loads fonts, jQuery, bootstrap and all sorts of stuff from all sorts of external servers. Which defeats a requirement that this work even when the Internet connection is down. The server for this content is an embedded device, which the web interface controls so there is no need for external Internet whatsoever.
But that's no longer the case once the 'web fartists' got through with it. Perhaps people should worry far less about visual appearance and far more about functionality. Not that you can't even make a visually appealing site without piles and piles of third party libraries.
So once the development culture of tossing all sorts of third party stuff anywhere it can be hammered in is dissolved then the web will come back to its original vision.
Sure, you keep thinking that, and I will keep no adblocker, noscript, ghostery, etc tuned up to block this BS.
Going to complain endlessly that I am 'breaking your site'? fine, remove 90% of the cruft that is not needed to deliver what you need to, and I will have no reason to make this extra effort.
FWIW, yes, it makes a HUGE difference. I was pointing out to a client who wanted a pile of such cruft that while they were seeing 0.5 second load times from their office, that was most likely due to their 100mbit connection and 35ms latency to their servers. I could see 5mbit and 150ms, due to someone between myself and their servers having a borked network config (the endless funz of the internet), so the load time was more like 15 seconds..
Or perhaps you dont consider that 'a difference'.
Elegance is dead everywhere, even in the embedded world. To be elegant, you need to actually understand programming, and how to organize code. In the modern world, we use rule-based programming, like Java enforces in structure or Python enforces in syntax, and Golang enforces through convention. If you see a way to make things more elegant, your coworkers will tell you it's not the proper way to do things. We've lost taste in exchange for propriety. The result is that bad programmers are able to write acceptable code, but we're a bunch of prudes.
"First they came for the slanderers and i said nothing."
OK. So I'm not the only one noticing this! Accessing the web now is HORRIBLE. Especially on a phone. It's like the web is back to dial up speeds. And when the page is finally loaded, what you have is a screen full of irrelevant garbage, like a flashy picture, and you have to haplessly scroll. No clear idea of what you are supposed to click on. No clear idea of if the page is loaded or if right before you click on something the image shifts and you click on something else.
Then theres the damned newsletter screen! Why did people all of a sudden start signing up for newsletters?? Didn't they stop doing that over a decade ago, maybe two? WHO THE HELL IS DOING THIS? The worst thing is you kinda know it's coming, but it's still just as annoying every time. Like a fullscreen popup add but worse. You could literally be on a website trying to buy something FROM THE WEBSITE and a freaking newsletter screen will pop up preventing you from doing it.
Then there is the whole navigation thing. In all these years of the internet you would think they'd figure out a way so that back returns you to where you were. Only to realize back really just reloads the page again which will take forever AGAIN and MAY but likely will not return you back to where you were. And what sucks is that these are the biggest, richest companies. It supposed to be the state of the art, and it already sucks.
To me the "content" is the useful bit I'm coming to see. For a news site, typically the actual write-up conveying some tidbit of news. Even that is debatable, as some news outlets (*cough* bbc *cough*) have a habit of writing a longish text that says the same thing three times over and wastes your time never actually adding much extra information, certainly not worth the while reading the text beyond the first few paragraphs. The trick is to scan for this repetition and stop reading in a timely fashion. Sometimes there's a picture but more and more often it's a stock photo that has no direct connection to the incident. The more the site has a habit of showing big-ish pictures ("optimised for tablets"), the more likely it is the pictures are stock.
For, say, twitter the actual useful payload is "up to 160 characters". Okay, it's 240 now, and it took them years to get there when all it should have taken was adjusting a single value. Shows how well that thing is designed, but I digress. Just wget a tweet. It's on the order of 30 kB, for the unadorned (and quite useless) bare HTML. Now load that same tweet with the network waterfall. It's easily a couple megabytes. That's a very large cruft multiplier.
I don't count that cruft as content. So the people who put that in there are not "content authors". I tend to simply call'em web monkeys.
The problem, as you rightly point out and it's been endemic since september, is exactly the wish to create an often literally picture perfect website "experience". As in the webmonkey gets a picture and orders to make the website "experience" provide an identical look and feel across all borders.
And then it gets worse, reinventing interfaces in ways that aren't useful to me, but just happen to be popular. The dreaded "automatically load more as you scoll down" for one, turning the scrollbar into a nuisance instead of a useful tool, causing me to curse webmonkeys yet again for a bunch of PHP-grade tools taking my useful and expected tools away. And so on, and so forth.
HTML was never designed to do that "experience" thing. So the webmonkey "just has to" muck around with all sorts of bullshit to somewhat make that limp along. I don't agree that the problem isn't in the standards, it's where the problems got set in stone. But the root cause is that HTML is (a rather inept attempt at providing) a vehicle to convey content that might end up rendered differently across devices, not "experience". That was supposed to be a feature, but the webmonkeys oversold "experience" and providing it has become a rather large industry full of crap, crud, and idiot webmonkeys.
An entire industry providing only homeopathic concentrations of what I think of as "content".
A story at the Hill took over nine seconds to load; at Politico, seventeen seconds; at CNN, over thirty seconds. This is the bullshit web...
Heh...does anyone on Slashdot seriously run without at least at least script blocking in place?
I know some folks complain the web doesn't work right and it takes some effort at times. To each his own. The rest of us have a much different web experience.
Note - If noone loaded those elements, they would fade away from use.
--- Mercutio was right.
Eternal September.
You do realize that, at this point, MOST people using the internet have essentially no idea how ANY of this actually works, and couldn't figure out how to do script blocking even if you made them watch 4 hours of youtube videos explaining and demonstrating how to accomplish it?
The man has a point, which is, for the average user, none of the shit that has been shoehorned into, glued onto, and kludged under damn near every website on the net is actually useful, and generally actually detracts from the usability of the site.
I've decided to Diversify my Holdings. I've divided my cash between my left and right pockets, instead of all in one.