- cross-posted to:
- [email protected]
- cross-posted to:
- [email protected]
Electron everywhere.
And analytics. And offloading as much computation to the client, because servers are expensive and inefficiency is not an issue if your users are the ones paying for it.
I saw an ad request with an inline 1.4 MB game. Like, you could fit Mario in there.
The Samsung shop hands out 1.4mb JSON responses for order tracking, with what I estimate 99% redundant information that is repeated many times in different parts of the structure.
Web “Apps” are also quite bad. Lots of and lots of stuff we’re downloading and it feels clunky.
Sometimes that’s bad coding, poor optimization, third party libraries, or sometimes just including trackers/ads on the page.
I vaguely recall a recent-ish article that an average web page is 30mb. That’s right, thirty megabytes.
It’s amazing how much faster web browsing becomes when I run PiHole and block most of it.
Suddenly the TV is pretty snappy, and all browsers feel so much smoother.
That’s straight up not true. It’s not even remotely close to that.
And I’m sitting here uneasy thinking how the hell I’m going to compress my map data any further so that my entire web app is no bigger than 2 mb. 😥
No, you need to go further: https://512kb.club/
Oh god, I’m not ready for the trauma and the emotional scars… D:
Some devs will include a whole library for one thing instead of trying to learn another way to do that thing.
Nowadays libraries are built with tree-shaking in mind, so when it’s time to deploy the app only the code that’s actually used gets bundled.
A whole library which was meant to to 10 things, but you only use one. And that for x libraries
from * import *
Cheaper & faster development by leveraging large libraries/frameworks, but inability to automatically drop most unused parts of those libraries/frameworks. You could in theory shrink Electron way down by yoinking out tons of browser features you’re not using, but there’s not much incentive to do it and it’d potentially require a lot of engineering work.
64kb should be enough for anyone
is that the size of doom or something lol
Its a reference to an old he said she said quote attributed to bill gates from the 1990’s
“640K ought to be enough for anyone” — Bill Gate
Yeah, though the joke is funny, this is the real answer.
Storage is cheap compared to creating custom libraries.
Also the storage is the cost for the user, and google in the case of play store. So the developers have no incentive to reduce the size.
Storage is cheap on a PC, it’s not cheap on mobile where it’s fixed and used as a model differentiator. They overcharge you so much. Oh, and they removed SD card slots from nearly all phones.
Nah it’s fine. Clean up used apps every once in a while. Base phones have more than enough space.
Yep. Apps are 20x bigger with no new features…that you are using.
Let’s not forget that the graphics for applications has scaled with display resolution, and people generally demand a smooth modern look for their apps.
In the case of normal apps like PayPal graphics shouldn’t be a huge factor since it should be vectorized and there is pretty much no graphics in apps like PayPal.
The issue comes from frameworks.
React
Why? Its libraries are a few kilobytes each.
https://bundlephobia.com/package/[email protected] - 7.3 Kb
https://bundlephobia.com/package/[email protected] - 3.6 KbIs that the JS bundle only? I think you’re forgetting the need to ship a rendering engine, a JavaScript engine, and the rest of the JS you inevitably bring in if you’re using something like React.
Oh, I focus mainly on web. ‘Forgetting’ to ship engines is my bread & butter. lol I see you meant React (+Electron).
The hp printer app says it needs your location to connect to WiFi. It says it needs your location all the time when not using the app, again to connect to WiFi
I think that’s to do with how permissions work.
Having wi-fi access can technically tell the app where you’re located so you need to give it location access
Which is stupid because it then also gets GPS access.
That’s one of the features Google should have stolen from Cyanogen/LineageOS long ago which had permissions differentiated between precise location and approximate
Can confirm.
Now, I just need to know why my calculator needs access to my contacts.
That’s because it gets lonely and needs someone to text.
It’s because one is the loneliest number.
You just reminded me of one particular calculator app which put “+” button behind a paywall
Bloatware, spyware, scope creep from middle managers feeling uncomfortable letting a dev have a slow day.
#include “the_entire_fucking_internet.h”
You know we’ve reached peak bloat and stupidity when JavaScript web apps have a compilation step, and I don’t mean JIT.
I’d rather take a compile step than having no type safety in JS, even as a user.
Except… the compilation step doesn’t add type safety to JS.
As an aside, type safety hasn’t been something I truly miss in JS, despite how often it’s mentioned.
I think they are talking about typescript which is compiled into javascript
Ok, that could be true. I assumed they meant the “building” phase that some frameworks go through.
If the goal is to not have apps be too large, you probably don’t want to send the full variable and function names and all of the comments over the wire every time someone loads a webpage. That would be a very inefficient use of bandwidth, wouldn’t it?
Don’t we have compression built into http already?
I guess it’s easier and safer to make a string replace for each function name beforehand than hoping the compression algorithm will figure that out.
Also, as SpaceCowboy points out, comments are completely useless for the final web page. There’s no need to even compress them.
Performance/optimisation wise is an environmental catastrophe…
Tap for spoiler
Get electroned
AHHH, please trigger warning
I’d rather have the Rickroll, please 😐
deleted by creator
isn’t it a combination of younger developers not learning to programme under the restrictions of limited memory and cpu speed, on top of employers demanding code as soon as possible rather than code that is elegant or resource efficient or even slightly planned out
Generally maybe but for apps specifically, it’s the default choice of IDE, Android Studio, bundling tons of libraries for added functionality bound to Play Services.
Which would probably be illegal in EU now, if any judge had the tech see-through for it.
Much the latter.
Plus everything better work perfecly out of the box on any hardware, and there is a lot of different hardware. Compatibility layers are often built into the package.
Java, for instance, recommenda that you package the whole (albeit slimmed down) JVM inside the package for the target platform, rather than relying on the java runtime installed already.
The users arent expected to know any of that anymore.
yep, a lot of apps are just repackaged chrome running a web page.
which begs the question to companies that require use of the app instead of just having a working website i can use on my copy of chrome/firefox that’s already on my phone…
why do you need hardware access to my device?
1 reason is that they want as much data as possible. They sell the user data. Or they use the user data to improve their targeted advertising. They want more ad clicks.
Re app versus site, many know how to block ads on browsers. With an app, the firm is hoping they can show you ads. Ads can be removed from some apps but the layperson doesn’t know.
Mostly the latter. We don’t do any optimizations on our product whatsoever. Most important thing is to say yes to all the customers and add every single feature they want. Every sprint is spent adding and adding and adding to the code as much as we can and as quickly as we can. Not a single second is allotted to any discussion about performance or efficiency. Maybe when something breaks, but otherwise we keep piling on more crap at full speed non-stop. I have repeatedly been told “the fast way is the right way” followed by laughter. I was told to “merge this now” on multiple occasions even when I knew that the code was shit, and told the team as much. I am expected to write code now and think about it later.
As you can expect, the codebase is a bloated nightmare. Slow as shit, bugs galore, ugly inconsistent UI, ENORMOUS memory use, waaaaaay too frequent DB access with a shit ton of duplicate requests that are each rather inefficient themselves. It is a rather complex piece of lab management software, but not so complex that it should be struggling to run on dedicated servers with 8 gigs of RAM. Yet it does.
Because the app stores keep adding new requirements that you have to add code to deal with and it gets worse every year and seemingly every day.
Isn’t it strange that a shop is demanding code?
Skill issue
Nailed it. Things have changed to allow cheaper (interpretable in several ways) developers to create “good enough” software as quickly as possible. If that involves inefficient frameworks, technology, and practices that unlock this, then so be it; if the “best” code is the code that makes money, and money is what corporations prioritize above all else, and there is a way to do that quicker and cheaper, the outcome is obvious and now ubiquitous. Furthermore, if nobody at the top cares, why should anyone on the ground care? The problem compounds.
Priorities are fucked.
inefficient frameworks
I’d like to object to that. Frameworks are often built by dedicated and paid developers, so they tend to be above average in terms of efficiency. But being frameworks, they have to facilitate lots of use cases, so they also tend to be bigger than what you would write if you had 6 months to roll your own. And 36 more months to kill all the worms that got out of the can, to mangle a proverb.
If it runs “fast enough” on a completely clean system that would cost the average user $1500, then companies assume that that means that it is a good product.
If you want better software, you have to give developers worse hardware to develop on, and more time to develop.
If you want better software, you have to give developers worse hardware to develop on, and more time to develop.
Shhh. There could be application development managers listening… (I’m joking… Mostly.)
deleted by creator
I wouldn’t say skill issue, more of time issue. You only get a week to implement something. Quicker to use existing libraries than try to optimise yourself.
It’s both, and they are in a sense the same.
Cheaper less skilled or less experienced programmers take longer to get similar results. One week with a a skilled programmer is a lot more value than one week with an unskilled programmer.
Even more if you want to invest some of that experienced programmer time to get the new guy up to speed.
Don’t worry, vibe coding is going to solve everything 😂
Duh, it’s because more and more code is ran remotely. Wait…
Usually, instead of having 8-bit art, you have epic songs and very high definition textures. That is a good deal of why.
I think the epic songs and 4K textures are missing in my MS Office.
That’s weird. Have you tried reinstalling?
Yeah but they made xlookup, that’s worth a few hundred megabytes
All hail xlookup
Backed devs: sweats
Textures and songs are not a thing on most apps right? For android, using Kotlin has created much bigger appsize than old java
Kotlin doesn’t have much impact on binary size.
For smaller apps maybe. I’ve seen apps that should take less than 1mb rise to 15mb or so
That’s not due to kotlin.
Why else?
How would I know without looking at the app binary?
Why are you asking? Are you trying to prematurely optimize these apps?
*shifty eyes* Um yes
They only came out 10 years ago. If we optimize now, how will we integrate an AI chat agent feature next year?
Why does notepad requires 320 GBs now?
Certainly not for running an LLM on all your files to figure out which ads to show you in the start menu. Why would you even imply something like that?