10 ms·
Ask HN: Why does the modern web hate users?
Twitter takes 20 seconds to load on my phone made in 2020. It then takes about 5-10 more seconds for me to close all the popups and that's IF it doesn't fail along the way (which it does sometimes), IF I don't misclick anything (which the website makes painstakingly easy).
All of that to load a list of 280 chars text messages, occasionally with a picture or a video. How come even my pocket supercomputer with 8 cores and 8GB RAM takes that much time to display just some text and pictures?
It's yet worse with reddit.
I do understand that some companies may be motivated to break their own websites to force users to install spyware ("it's better in the app!"), but making a broken website doesn't take dozens of megabytes of JS. Same slowness could be achieved with a few setTimeout()s. What's more, websites are slow even when they aren't trying to push an app down your throat - e.g. the desktop versions of those same websites are hardly better, and even websites that don't have an app to "offer" are oftentimes just as overengeneered.
What I'm trying to understand is what is the motivation behind this? I wouldn't have any questions if webpages required manpower and optimizations to be fast - but on the contrary, anyone with most basic html skills can come up with a faster frontend than twitter's[1] AND cover that same functionality (text, a few images and a couple of forms - ALL of this is covered by HTML alone, doesn't even need a single line of JS!). This means that companies pay people to make their websites worse, and to do that in a laborious manner - again, not just some setTimeouts()s, but dozens of megabytes of code (and that's compressed!). And I can't help but wonder - what is the incentive for that? Why? A business should generally save money wherever possible and only spend it to make profits, shouldn't it? I just can't see how the crime against everything decent that is the twitter frontend could possibly benefit the company, or anyone for that matter. If anything it would harm it. And it costs it money.
[1] - see e.g. Nitter, Invidious, Teddit - all of those much more robust than the sites they grab data from. Also pretty sure that even if the people behind these did get paid, it was orders of magnitude less than what the people these companies have working on their frontends get paid.
- yen223 5y agoA more interesting question would be why haven't users punished "slow" websites by not using them?
- TheMonarchist 5y agoI guess they are addicted in spite of the flaws.
- marcos100 5y agoPunish how? The problem is that there are no alternatives to those services.
- fsflover 5y agohttps://joinmastodon.org/ https://joinmastodon.org/ https://joinpeertube.org/ https://joinpeertube.org/
- wusspuss 5y agoIf voting changed anything, they'd make it illegal. You can't vote twitter or youtube out of power. You can't code their wealth away https://www.youtube.com/watch?v=FEU632_Em3g https://www.youtube.com/watch?v=FEU632_Em3g
- marcos100 5y agoMastodon an alternative to the technology, but not to the content. The power of those very large platforms are their content, not their tech.
- jen20 5y agoBy installing ad blockers and content filtering.
- sylvain_kerkour 5y agoThe answer lies in entropy. A mix of misaligned incentives (users are not the customers), tyranny of metrics and the fact that developers use overpowered machines (compared to the rest of the world) [0]. Add on top of that the inevitable bureaucracy and conflicts of interest of any large organization, and you end up with these bloated apps. Developing good software and fighting entropy (apps bloat) require a lot of efforts, and you can't achieve this when nobody is accountable (high churn), or even have that goal. [0] https://www.reddit.com/r/RedditEng/comments/qzoxp0/mobile_developer_productivity_at_reddit/ https://www.reddit.com/r/RedditEng/comments/qzoxp0/mobile_de...
- jqpabc123 5y agoIn a word --- greed. Despite what Gordon Gekko told us, it isn't always good. Working to wring every last dime out of any system leads to self destructive behavior. In the end, Gordon Gekko himself served as an example.
- throwawaynay 5y agoHave you checked your phone for malware? I have a very crappy phone, a 120$ samsung, and I don't struggle that much. Have you tried using an adblocker?
- praash 5y ago> Have you tried using an adblocker? Users shouldn't need adblockers to have a decent web experience! I find it just gobsmackingly absurd that ads make users pay with crippled load times and annoyance.
- throwawaynay 5y agoHomeowners shouldn't have door locks to have a decent homeowner experience! it's just the state of the world, there is nothing you can do about it
- wusspuss 5y ago>Have you checked your phone for malware? Unfortunately there are no phones without malware in the form of at the very least android on the market, you can't even remove the malware. And reddit's and twitter's programs, including those written in js, are malware too. I was just wondering why do they over-engineer malware that much Not that android's not over-engineered though
- archerx 5y agoModern front end javascript frameworks are made to offload the compute from the server to the end user. This saves the company money while giving the end user a worse/slower experience and drained batteries. However when I point this out react zealots get angry but never hit back with good counter arguements. Blame Facebook and Google for starting this awful trend.
- gandutraveler 5y agoExactly. A simple html page that can be served immediately requires UI framework engine load, multiple pre fetches, data calls and then the final render/re-renders. SSR/Hybrid does slightly better but still the time to first interaction is becoming worse every year.
- tonyedgecombe 5y agoYes, I find it strange that the advocates of modern JavaScript based sites say they are faster when my experience as a user is the complete opposite, even on modern hardware.
- tdeck 5y agoWhile this is true, what compute does something like Twitter's UI really need? It's only displaying a list of short messages, which doesn't seem like a heavy task even for a netbook.
- ChuckNorris89 5y ago>Modern front end javascript frameworks are made to offload the compute from the server to the end user Which is why I roll my eyes every time someone recommends using vintage laptops from the days they were user upgradable (ThinkPads, MacBooks, etc) and scream from the top of the hills what a great experience that is and why everyone should join in on that. Yeah I get it, as a HW engineer and tech enthusiast and big right to repair advocate, I also appreciate how upgradable older machines were and how easy to repair they were and I still keep some old machines kicking around, but the modern web is simply a jarring experience on those old machines compared to the experience on modern machines with the latest processors that I cannot in good conscience recommend it to people, if they can afford something decent. If you live in Vim and the terminal and just use your laptop to SSH into stuff then yeah, they work just fine, but for consuming content on the modern web or heavy productivity tasks I can never recommend staying on vintage HW if your time has any value and if you can afford the upgrade to newer HW. It's just not a nice experience and with most web-devs using M1 class machines it doesn't look like things will improve for the users on less powerful hardware which I guess here lies the problem. In Hollywood/Netflix productions, video mastering is done on super accurate $50K monitors but they use in parallel a $300 Walmart grade TV, set to the shitty "Vivid" setting to make sure the final content also looks good on the average TV average consumers have in their homes. I think the same thing should be done in web development. Feel free to develop the front-end on your kitted out $6000 M1 MacBook Pros but testing should also be done on your average $500 Walmart laptop to check it runs well.
- galoisgirl 5y agoYou're talking about the functionalities shown to the user. I'm pretty sure Facebook tracks what you look at and what you scroll past, wouldn't be surprised if Twitter did too, for example.
- pjc50 5y agoThe desperate search for monetization. Twitter is free, so it will get worse until you stop using it or they somehow manage to get you to click on an ad. Same with Reddit. Sometimes this is the desperate attempt to neutralize a competitor by cloning it. That's why Twitter copied "spaces" from Clubhouse, and Youtube and Instagram have copies of Tiktok in them (mostly hosting content with tiktok watermarks on, hilariously)
- wusspuss 5y agoGetting you to click on ads does not takes megabytes of JavaScript diarrhea.
- amatecha 5y agoYeah but a completely-dynamically-rendered web app slathered in frameworks for A/B testing, feature flags, analytics & tracking, cookie permissions, media middleware, localization, theming and browser compatibility sure does.
- wusspuss 5y ago>completely-dynamically-rendered web app slathered in frameworks for A/B testing, feature flags, analytics & tracking, cookie permissions, media middleware, localization, theming and browser compatibility Getting you to click on ads does not take that. The only point in the list that makes money is spying I mean "analytics and tracking" but that doesn't take dozens of megabytes of js diarrhea and a thousand frameworks calculating DOM diffs and whatnot
- WolfOliver 5y agoBecause todays web development is all about developer experience not user experience. It is insane when you think about how much memory has been used to fly to the moon and how much it requires to run todays favorite chat app.
- wusspuss 5y agoI wouldn't call having to learn a million frameworks with a million layers of abstraction to accomplish the same stuff you could accomplish with plain html in a both human- and machine-time-consuming manner a pleasant developer experience. Quite the contrary I find it almost insulting to have to spend time on this.
- WolfOliver 5y agoI do not claim the developer experience is a success story. But it is how the frameworks are trying to win developers.
- Tenoke 5y agoI just checked and on my 2020 phone Twitter opens and loads in about 1-2s on Chrome Android. Functionality of some mobile sites like reddit and Facebook is limited but the js bloat argument seems exaggerated and if it's that much slower for OP I'm guessing it's due to their connection or some other issue.
- throwaway22032 5y agoNote that most of the open source / hobbyist web actually works properly. I don't think the answer is primarily that it's a matter of money - I think most large companies end up with "web design by committee". If Zuckerberg redesigned the entire Facebook homepage from top to bottom it'd probably be a hell of a lot faster than it is now. But instead it's the product of an enormous corporate structure and there is no-one to step in and say "guys, this is shit, start again and let's do it properly, no you can't have your 1 meg tracker in there, not even one of them, write a barebones one". One man or small team software projects in general are better for this reason as well, with a massive team over time cruft accumulates.
- jqpabc123 5y ago... with a massive team over time cruft accumulates. A massive team only occurs with a large corporation attempting to monetize and wring every last dime out of the product. So in other words --- greed.
- escapedmoose 5y ago>One man or small team software projects in general are better for this reason as well I think these fall on both sides of the bell curve. One person can design something clean and beautiful, and one person can also be a one-man mess of bad decisions. I've picked up after both.
- wusspuss 5y agoOne man would hardly ever design something as abhorrent as twitter or facebook frontend - he just wouldn't have the time
- wusspuss 5y ago>"guys, this is shit, start again and let's do it properly, no you can't have your 1 meg tracker in there, not even one of them, write a barebones one". Is it even really about trackers? Even with adblocker on purging 50% of the page, these things are still slow.
- tyingq 5y agoI think a fair amount of it is just organizational dynamics, game theory, human nature, etc. When you build an organization around one of these sites/apps, as the product ages, each work group ends up trying to justify their existence. It's very rare that anyone periodically tries to see if the current headcount and budget for any group still makes sense, and reduces or eliminates groups as that happens. This spread and growth also means the groups all end up with different ideas of what the overall goals, measures, etc, are. So they all grow based not on whether they need to, but because it's human nature to empire build. And to do that, you need to be "busy". That busy work eventually pushes out to prod, and ends up as more bloat. Multiply that by each group, and you get what you're seeing.
- wusspuss 5y agoI thought Office Space (1999) was an exaggeration. Maybe back in its day it was but apparently today it is an understatement. I'd like to see an Office Space remake where the main character's job isn't the 2000 switch but building a bloated frontend with React.js + Vue.js + Soy.js with blockchain, machine learning, dependency injection, inversion of control and scrum+agile as well as the revolutionary framework buzzword.js weighing just under a 100 megs.
- juanani 5y ago
- marginalia_nu 5y agoI think it's largely Parkinson's law. Computers are faster so it becomes viable to build slower, more complex and less efficient systems. By large, computer systems have similar capacities as they did 20 years ago, and similar performance too; only difference is that back then we accomplished the same thing on a potato processor, and today we use a world brain.
- wusspuss 5y agoThat doesn't explain over-engineering. I would understand building slower and less efficient systems if that took less resources. Or more complex systems if it achieved something. But modern web takes more resources to develop and achieves nothing
- marginalia_nu 5y agoI think it does. Having an enormous hardware resources means we can piece together software from components others have built, which in turn are pieced together from components others have built, and built on frameworks built from libraries built from components built from dependencies. Today if you want to print "1 item" or "2 items", many would probably pull a library. 25 years ago, you would either build the logic yourself, or consider the logic unnecessary clutter and write snprintf(buffer, 25, "%d item(s)") The resources available means most developers don't even consider performance until it's unbearably slow. I do think this is dumb, we could do so much more if we gave it half a consideration, but as things are, we don't. But I totally get your frustration with how shitty web services are these days. Just to prove to myself how ridiculous it is to wait for pages to load as long as they do, I built a personal wrapper[1] for Reddit that uses static rendered HTML. reddit.com has like a 6 second page load. I'm at like 300ms at best if you have high ping to my server, and usually serve sub 10 Kb-pages (to Reddit's nearly 10 Mb-payloads). [1] https://reddit.marginalia.nu/ https://reddit.marginalia.nu/
- wusspuss 5y ago>Today if you want to print "1 item" or "2 items", many would probably pull a library. 25 years ago, you would either build the logic yourself, or consider the logic unnecessary clutter and write snprintf(buffer, 25, "%d item(s)") Well that's what I am talking about. Hardware resources allow devs to be lazy, to not optimize. But snprintf(buffer, 25, "%d item(s)") is easier than learning and setting up whatever library it is you want to pick, and thus is the lazy solution. You don't need to think about optimization to pick it. On the contrary you'd need some good reason to not pick it. Growing hardware resources can explain the growing popularity of higher level, interpreted languages for example - they take resources and save time. But it can't explain e.g. twitter, and that's what my question is all about. It would actually be the lazy solution to make the frontend in pure html. Yet they chose whatever unholy mess it is they chose. It took them more time and resources to build AND it takes more computer resources. So it's like anti-optimization - but it still takes dev time. And I can't wrap my head around it, why would they do this? You'd think it works like this: you may trade features and dev time for optimizations. But they trade dev time for the opposite of optimizations, and essentially no features. It's like if they paid a street sweeper to make streets messy. And they didn't just pay this one guy to run around the whole city throwing garbage around - they hired teams of guys to meticulously lay out litter in the streets. Nobody asked for that litter, it achieved nothing, didn't even profit the people doing it. But they spend tons of money on paying those guys, training them, team building, organizing scrum meetings...
- canyonero 5y agoI think this question embeds two assumptions that aren’t constructive. First of all, it associates the “modern web” with Twitter and Reddit. There is more to modern websites and apps than those two companies. There are a lot of beautiful and useful websites that are built with modern tools. Second, the question assumes users are hated. Quite the opposite is often true. We should assume most app and website builders want users to return and want to appeal to users interests. Designing with users needs is central to the practice of UX design and research. I think this question could be rephrased to. Why do twitter and Reddit use perceived anti-patterns instead of good UX? The answers being they can be effective tools to drive ad revenue, increase time spent with the service and increase user base to name a few.
- wusspuss 5y ago>There are a lot of beautiful and useful websites that are built with modern tools. Mind sharing some? >Why do twitter and Reddit use perceived anti-patterns instead of good UX I'm by far not talking about UX alone.
- scarface74 5y agoWhich mainstream website is actually nice to use? The only one that I use on a regular basis that is pretty good is GitHub. The AWS console is slowly getting more consistent.
- canyonero 5y agoPlenty of sites I use daily have nice features and reliability and while they aren't all perfect -- they help me do my job, learn and communicate. It's pointless to go down the rabbit-hole of identifying which sites I find useful or interesting with those that I don't enjoy using. Opinions will vary, but my point is that it's not in any way helpful to make generalizations about the "modern web" hating users. The "modern web" is a meaningless term that (in the OPs question) seems to define as the definition of "modern web". These two sites do not represent all modern websites in any way, they are mainstream content driven apps with the end goal of monetization, eyeballs, and user persona profiling. How are nitter or teddit not also the modern web?
- rank0 5y agoAd monitization and development abstractions. Platforms gotta monetize by gathering/selling user data. Developers want abstractions to make programming more pleasant. It’s kind of hilarious that our advances in HW just means that our software resource usage expands to fill the gap.
- tzs 5y ago> Twitter takes 20 seconds to load on my phone made in 2020. I think they expect you to be so enthralled with it that you will keep it open, only having to actually go through loading it when you reboot the phone for OS updates.
- Graffur 5y agoFacebook has always been poorly made. Remember when notifications and chat was just _broken_ all the time? I think Twitter used to be better and Reddit certainly did. I blame poor engineers (just because they're paid a lot doesn't mean they are good)