Modern web bloat means some pages load 21MB of data - entry-level phones can't run some simple web pages, and some sites are harder to render than PUBG
At work we have this timecard management system that's an enormous pain to use. All the bottom rung employees hate it because it's anything but intuitive. For example, it has stupid things like weekdays sorted alphabetically and a scroll bar to select the day of the month in a form. It's like the interfaces were tested exactly one time and never visited again, so long as it works minimally.
What's this crappy app have to do with big web pages? That application is awful for us worker bees, but management loves it because it produces nice reports. Management is the real customer for which the product is optimized. Similarly, many web pages are awful because they're mainly rated on how it looks. Nobody is including how fast it loads in the contract, and at the product demo you bet those resources are cached in the browser.
Ask yourself: who with the money in hand is actually looking at how fast the page loads on a slow connection or low-end devices?
it has stupid things like weekdays sorted alphabetically
Holy shit, that's stupid. Why would you even do this in the first place?! I can't comprehend how anyone could come to the conclusion that that's a good way to sort it.
At my current dev role I try to do optimizations to make new system area pages pretty lightweight, but it's a bit of a struggle as I'm working with devs who have been in the same role for decades. WCAG is not prioritized, and they pull in a ton of JS libraries that usually aren't even used. A lot of the practices I see in use are from 10 years ago, but slowly tidying up the horror show with each dev product meeting.
Admittedly could be much worse though, at least our pages aren't 21MB large.
Ours doesn't even try at all, because we're largely a B2B shop and we know our customers (in the low thousands). It's still dumb, because we could totally hire a QA or developer who has some kind of need where accessibility would be helpful, and we even have a couple of colorblind people on the team, yet we don't prioritize anything. It's a little disappointing, but I guess the need hasn't arisen yet.
We build a very interactive web app with tons of data, and a fresh load is still well under 21MB (looks like ~5MB transferred over the network, ~15MB total). I don't understand how a typical website could use more than our app when we do lots of complex stuff (2D drawing library, lots of calculations, we're adding in 3D soon, etc).
The Opera browser of old had a menu with custom styles (a few default plus you could add your own), I think it had one that converted to sans serif, that plus a columns width one would be perfect for this site
The appendices of that post could use a rewrite. They read weird:
An example we've discussed before, is at a well-known, prestigious, startup that has a very left-leaning employee base, where everyone got rich, on a discussion about the covid stimulus checks, in a slack discussion, a well meaning progressive employee said that it was pointless because people would just use their stimulus checks to buy stock.
While reviews note that you can run PUBG and other 3D games with decent performance on a Tecno Spark 8C, this doesn't mean that the device is fast enough to read posts on modern text-centric social media platforms or modern text-centric web forums. While 40fps is achievable in PUBG, we can easily see less than 0.4fps when scrolling on these sites.
A lot of devs I know are purely ticket in ticket out… so unless someone convinced management there’s a performance problem and that they’d need to prioritize it over new features (good luck), then it will not be done.
Not to suggest you don't deserve to be paid more, but it feels like the issue would more be that the people paying for the site aren't instructing the people that develop it to make these accommodations.
Because I know plenty of devs that just straight up don't give a shit about accommodating low-end devices, regardless of what they're paid. It's like a point of pride almost.
Hell, that's the energy of the DontKillMyApp people: they just straight up think their app should use as many resources as it likes as long as it likes, and they shouldn't have to be considerate in development. Strain on device be damned.
I've seen some that straight up admit they don't even think the user should be able to kill an app process.
I know this isn't the main point of your comment, but DontKillMyApp is about much more than system resource management. It's about consistent behavior so that developers can program to a standard rather than a wild west of whatever a handset decides to do.
Either you write your app to accommodate every special case implementation of background execution requirements, or users get upset when the instant message isn't delivered and blame the app.
To make matters worse, many Chinese devices just kill everything in the background that's not on a hard coded whitelist. This is a failure of Android when it doesn't require consistent behavior. On these devices, applications that have a legitimate reason to run in the background just don't work correctly.
I think the situation is getting much better with recent Android versions.
When my title changed from web developer to software developer I got a 60% pay increase, but my job hardly changed in reality. I still only make just enough to do doordash on the side as an extra safety net and not as a necessity to afford food.
But when anyone asks what I do for work and I tell them, they immediately assume we're absolutely loaded and I'm picking up the check everywhere we go.
Yup. I do make a fair bit more than the average person, but I have a family, kids, and a lot of experience. I'm far from poor, but I'm not making what people seem to assume I make. I live in a middle-class area, my kids go to publicly funded schools, and I drive reliable, older cars (both ~15yo, will be replacing one soon for something <10yo).
I probably could make $200k+, but I'd have to work crazy hours doing unethical work. As it stands, I'm in the 12% tax bracket, so very much in the middle class, and I choose to make less in exchange for a better work/life balance. Fortunately, my wife doesn't have to work for us to make ends meet, and the same goes for a few of my coworkers (one legally can't because of immigration nonsense). If we both did what I do (my wife couldn't, she doesn't have the formal education or experience for that), we'd be rich, but that's just not the case.
I have been just bewildered at the proliferation of excessive scripts and garbage on seemingly every webpage over the last decade. I'm no web-dev, but I'm pretty positive that the vast majority of websites could remove 99-some percent of their javascript bs and their websites would function just fine. So many are pretty much unusable these days. It's atrocious.
I've been working at organizing a bunch of stuff I've been collecting over the years .... data, writing, lists, ideas, whatever ..... I kept using all sorts of services, apps, websites, cloud services and all sorts of crap to maintain them all but eventually it all becomes too complicated and breaks down.
I've since discovered just using simple text files and services that just use simple text mark down ... no special service, nothing proprietary, easily transferable and interoperable.
I started looking at websites the same way ..... I don't care what it looks like, I just want to read the information ..... you made it too hard for me to read your simple text info? You're asking me to turn off my ad blockers and turn on Java script? All to read 200 words on your site? I'll skip it and move on to the next site that will allow me.
I manage a web dev team. We try to optimise as much as possible but then there's all sorts of tracking that gets tacked on by personalisation teams, opti teams, things like Tik Tok, Facebook, Twitter/X scripts inserted too... It's pretty shit. And sometimes when things break it makes it super hard to debug too
I'm a web dev and yes they could. It's annoying that web devs get blamed for it though, the reason for all the javascript is mostly business decisions out of our control.
Mainly the tracking scripts which the marketing department adds against out will. But also it's a lot cheaper to have a client-rendered web app than a traditional website (with client side rendering you can shut off all your web servers and just keep the api servers, our server side processing went down 90% in the switchover). And it's more efficient for the company to have one team working in one programming language and one framework that can run the backend and frontend, so the frontend ends being a web app even if it's not really necessary.
A bunch of websites operating as web apps would help explain the bloat. Great idea if somebody is navigating a good chunk of your website. Horrible idea if 99% of your traffic is people being linked to a news article and then leaving afterwards.
I made a stupid little page that downloads a Pathfinder 2e SRD API, and then randomly combines an ancestry, background, and class from that list and displays it on screen. It's really nothing special, I hacked it together in an afternoon. But I showed it to a friend and they were blown away that I didn't use a framework for it. I was like, "it does three things. Why would it need a framework? What would I even use a framework for?"
People seem to forget that in the past you didn't run a constant antivirus on your computer constantly, and would just occasionally run a scan if suspicious activity happened. At least until malicious web activity became so bad and everyone HAD to run antivirus.
My simple home page is 10 KB now. And you might not think that's such a big deal, but it has more content than Google's search page and that rings in at a couple MB IIRC. 😁
On the contrary! I absolutely loathe how bloated webpages have become over the last few decades, so it's very refreshing and laudable to see a webpage that tries to keep itself as small as possible.
You see, stuff like this is why I never understood the wave of "Android Go" and "Lite/Go" apps a couple of years ago.
On my old low end phone, the native Twitter app ran infinitely better than the Web based "Twitter Lite". This applied to almost every "Lite" app compared to their regular versions.
I feel like whoever started that "Webapps are great for low end" concept never actually tried to run a modern Webapp on a slow phone.
Edit: My comment is focused mostly on the push of Webapps on low end phones. I'm sure there are great, proper "Lite Apps", and I quite like the idea of Android Go, I just think the implementation missed the mark and that a lot of companies pushed out a crappy, poorly thought out webview just to cash in the "Lite" trend without caring about the end user.
I only ever used the lite version of FB Messenger. Shit was much better than the full version, especially without all the bloated "features" that I didn't use at best and being annoying/battery drains at worst. Was noticeably snappier on both my old and new phones. Fortunately most of my friends started using Discord and/or Signal with better features (and one less Meta app to have running).
I think that the idea of having smaller and less demanding versions of lots of apps is a good idea. As so many apps are just not optimized and bloated. Just being coded to rely on higher specs to make up for said lack of effort in cleaning up stuff. The ads on ads on ads being part of the issue as well. Which is only getting worse with the close buttons not loading unless shit has been however many seconds. Seems that the "hit box" for the close buttons is getting smaller and smaller to guaranty the ads are clicked on and then open another app or a browser. Though optimizations and better coding won't fix dirty underhanded grifts.
The lite apps also take up less user storage. Which was a big issue for lower end phones at that time. Once you ran out of storage people struggled to install new apps. Even with external SD cards, as it wasn't an easy concept for some people to get over.
Of course an app that is compiled ahead of time to run natively on the cpu would run faster than a web app that compiles it bloated JavaScript code on the fly.
The web app versions was to avoid having to download large apps, not to be faster. They are slow because the companies tried to have feature parity with the native app and also stuffed it with tracker software. Web apps are supposed to barebones.
My old project I got to architect the frontend ran lean at around 300KB - part of our target audience had older phones so it was designed with that in mind.
At my new job 22MB is child's play. To be fair they might do it better with the next version.
Similar to me. Previous job we tried our best to squeeze any ounce of optimisation out of it. Mainly because I was on the SEO team and we had to focus on the core web vitals. Everything was deferred and every image was optimised.
I ended up using a static site generator for my personal site because I fucking hate JS and frameworks and WebComponents. The front page is 646 KB and it loads in 4 seconds. I'd love for it to be 1 second or less, but the fonts are a factor.
And I shrunk the shit out of that background too with pngcrush so miss me with that.
Haven't done this type of optimizing in a long time, I had a quick look at the network graph for your front page (F12 dev tools in desktop browser), my understanding is it looks like you are getting blocked from loading additional resources (fonts + background) until your style sheets are fully read --pink line is document loaded i believe.
It may be worthwhile to experiment with adding some preload links to the html template? or output? like below and assessing if it makes things faster for you.
Honestly, 4 seconds is really slow, especially with static HTML. I built my first companies' site myself, it includes a video on the front page and jquery, is built by PHP, and on descent Internet connections the front page will load in slightly over a second, other pages dip under that.
There are loads of tweaks you can make to -any- site, and total amount of bytes really isn't the only speed factor here.
Not that you'd want to because you hate JS and web components and all that, and there's nothing wrong with your website, but NextJS supports Static Site generation.
So, JS and frameworks and webcomponents can get the job done for simple stuff nowadays. My portfolio page has a load time of 631 ms using the SSG built into NextJS, and its really similar to your website.
I gotta say I came in here to flex and I learned so much. I am going to roll some of these changes really soon once I find out where to best add them to my Hugo template. I'm going to reply to some of them below to clarify some things:
It may be worthwhile to experiment with adding some preload links to the html template? or output? like below and assessing if it makes things faster for you.
This is the most interesting because I didn't even know this was possible with HTML5, so I want to add this right away.
I have a pixel 6 and notice some lag in scrolling. Could it be that you don’t use srcsets but instead huge screenshots no matter the device screen?
The background is a large image in the CSS via background-image, I don't know how easy it would be to change it to a srcset but I will give it a shot
The fonts can be loaded from another file that ends in the cache, lowering load time next time.
At the very least they need to load last because they are the largest burden
I'm not sure if the possibility is there depending on your use case (eg.: you are exporting the fonts) nor if the cost of doing it would be worth the shot, but you can send minified versions variants of fonts, too.
When ever I used to have issues with my internet I used to use news.com.au as a test to see if the issue was fixed, if that site loaded than anything would.
Lol. Many times you need 1 function. The "modern" approach is to use a library because it means someone else is maintaining and testing (ha!) the code. So instead of making your own complete with your own bugs, you install a library that does this thing.
But it generally doesn't just do one thing. It probably does 30 things. And that library was built on the same principle. So it needs 6 or 7 or 20 libraries itself to do its 30 things. And those need 20 more libraries to do their things. Etc.
Npm is a package manager. It installs the dependencies you need, as well as recursively installing the dependencies they need, etc. On a new project this can take a very very long time. And the force because of course none of the packages are maintained and they all have dependency violations between them but you just ignore the warnings and soldier on. Including a bunch of code that may or may not explode at any time because it's easier.
Thats mostly because of the overload quantity of ads, trackers, plugins, integrations, etc all websites have now. Using an adblocker halves your bandwidth usage. If you have a data cap, an adblocker is a must.
And then, optimization. As an Angular developer, knowing many websites nowadays are Angular or similar, the lack of optimization is a big problem. Most don't even use lazy loading, not to mention managing the module imports into different components. They import everything into the main component and don't do lazy loading leading you to websites that have 20-40MB (!!!) of initial load (when you open the website). This is so common that I think junior angular devs will slowly just kill angular popularity and give it a bad look. Takes work to optimize Angular, and many devs don't care enough and just rush it. And then there are companies that don't understand that web frameworks need optimization and just underpay devs or rush the dev time.
Please don't use Angular (or similar complex web frameworks like Vue or React) if you don't know how to correctly optimize it, or don't have time or care for it. And don't overload your pages with ads and integrations. You are ruining the web.
I'd hazard a guess and say it all stems from advancements in tech. There was a need to get the most out of something because of limited resources. Now that everyone's got some fairly serious hardware (yes, even the cheap shit), there's rarely that urge to optimize.
Rather than optimize each new technology as it comes along and gets adopted, it seems as though the mantra is "fuck it, add it to the pile". And it snowballs. As developers feel the need to optimize less, the lessons get passed down to the next generation, and so on.
So we're left with apps/end-user stuff that appear to have been on the opposite of a diet.
I always think it's unfair to compare things to video games. Video games are so inefficient they had to invent a separate processor with hundreds of cores just to run them. Of course they end up running well.
If cheap phones had a 128-core JavaScript Processing Unit, websites would probably run fast too.
Video game developer here. A lot of anti-optimiation sentiment are just excuses and/or part of some dumb trend.
Oh no, compiled languages require you to choose between variable types! Better use Javascript.
Why should we develop a proper portable app environment when we have Electron? It can even run in browsers. Imagine if you didn't had to go to your pops to install the word processor, instead he just types in wordprocessor dot app into the browser?
What if code was so easy to understand you didn't had to document it, and each macroblock of a function instead were a named function, so they'd be automatically documented?
And this is just the tip of the iceberg. I'm currently writing my own scripting VM, as most others have their own limitations, and would introduce a barely usable build system to my game engine (which are their own can of worms). Code as data is a very useful feature, but having to include DLL files as scripts would be very complicated due to platform differences, although also very fast. Issue comes when people treat scripting languages as full-fledged programming languages, and even scaring away beginners from compiled languages, because you have to compile them, you have to choose a type, etc.
The real irony is that you can make games entirely with Javascript (no backend server needed) and I wouldn't be surprised if some of those games, even with 3D rendering via three.js or babylonjs, performed better than certain websites
If you want scripting languages to be fast, there are options, so the decision should instead be made based on the benefits of each. For example:
scripting languages - generally better edit/reload experience, write once, run anywhere an interpreter exists
compiled languages - catch common errors before running, lots of fixes for various platforms
I'm super interested in Rust because it catches way more common errors than most compiled languages, so you're getting a lot more value for that compile step. My day job is Python + Javascript, though I have nearly 10 years with Go and most of my personal projects use Rust these days, so I feel like I'm fairly experienced here.
just excuses and/or part of some dumb trend
I agree. There are good reasons to prefer scripting languages to compiled languages and vice versa, but most people don't seem to decide based on those reasons, they often decide based on what's easier to hire for, what they're familiar with, or what's already being used.
I'm super excited about Rust gaining traction because it's basically the best case for a compiled language I've seen. Maybe it'll revise the trend toward higher level languages and encourage a bit more provable correctness.
Well, graphics rendering is very suited for parallelism. That's why GPUs were invented.
Most other tasks are not. Most of the cores in a 128-core JPU would end up being unused. Also why JPU? It's not like it's significantly different from a normal CPU task.
if you watch steve jobs' 2007 iphone keynote it's incredibly depressing now. he brags about how the iphone can load full, rich webpages instead of awful mobile versions; he loads the NYT website and gets the whole lush landscape desktop version, and taps to zoom in on certain elements. i used to be such a dork and so into tech in high school, it seemed so promising and wondrous.
i bet jobs could've yelled at spez about the API changes and gotten him to relent
i bet jobs could've yelled at spez about the API changes and gotten him to relent
Why would Jobs care? Reddit's app goes through the app store, Apple gets a cut of any premium users buy on it.
And why would Spez relent to Jobs? Everything Spez is doing is to get maximum payout from the IPO and then cash out. He doesn't give a shit about the actual site anymore.
Ignoring the shady practices of Brave Software, this doesn't really solve the problem.
Sites will still use way too much scripting to be flashy, and that will continue to be a problem for everyone, because some of these sites willbe needed for some and will require all scripts to function properly.
What might help more in the long run is complain to the site owners that their site, despite you having an up to date browser, does not work on your phone.
Sure, some of those complaints will fall on deaf ears, but even some changing means progress.