47MB for the UI & boilerplate around the business logic.
I get that this may be the easiest way to develop and publish an application today, but it's sad that this is the direction we have taken in recent years.
47MB for the UI & boilerplate around the business logic.
I get that this may be the easiest way to develop and publish an application today, but it's sad that this is the direction we have taken in recent years.
Business logic size: ~20 bytes Total app size: ~47 MB = 47,000,000 bytes
Bloat factor: 47,000,000 / 20 = 2,350,000
Let’s scale this up and say the business logic is 1 pound.
Then the whole app would weigh: 1 lb × 2,350,000 = 2,350,000 pounds
What weighs ~2.35 million pounds?
- A fully loaded Boeing 747-8: ~987,000 lbs
- Another fully loaded 747-8: ~987,000 lbs
- A blue whale: ~330,000 lbs
TOTAL: ~2,304,000 lbsThe business logic is like shipping a 1 lb object (a book, a flash drive, whatever) by loading it into two fully loaded 747s and strapping a blue whale on top.
Just to run 20 bytes of logic.
At peak it’s 1/4 to 1/3rd the time.
Cars are slow around town.
If anything, I feel like traveling at rush hour is actually strictly better for me. Cars being slow doesn't slow me down, but with the average speed being so much lower during rush hour, it seems like it makes it so if a driver hits me, it would be at a lower speed.
[1] https://www.census.gov/newsroom/press-releases/2022/urban-ru...
1 year ago, I lived in San Rafael (Marin county, Bay Area). I occasionally needed to go to Palo Alto for work meetings. The fastest public transit option was to take a 40 minute bus to Larkspur Landing, then a 30 minute ferry to the SF Ferry building, walk for 20 minutes, and then take Caltrain for 45 minutes or more and then walk from there. With transfers, at minimum it was a 2.5h journey, but typically 3+h
All to cover a 60 mile / 100 km distance
Edit: Also Google Maps says San Rafael to Palo Alto will take 2 hours give or take a few minutes on public transit, with 3 buses, but the middle one you could easily cut out with a bike or a 4 block walk. That doesn't really seem absurd at all for an occasional trip. People do 2 hour drives for an occasional trip and no one bats an eye.
If you live directly next to the San Rafael central station, that'd be easiest/fastest. But San Rafael is much bigger than that. I'll get into that in a second. There are 2 basic options to do this trip:
Fastest option 1 was to go to San Rafael Station (I'll call it SR here on out) then bus to SF, then bike/walk to the Caltrain station, which was about a 25 minute walk. The buses from SR to SF ran often as rarely as once per hour, and occasionally they just don't show up at all. The ride took 30-60 minutes depending on traffic. There weren't always bike spaces on the bus, so sometimes you needed to lock your bike up in SR and you were going to be walking in SF to Caltrain. But because of the variability on traffic times, you have to leave incredibly early if you want to catch the fastest train to Palo Alto. And if you're going to California Avenue (which was where I was going to), the express option basically doesn't exist.
Here's how that plays out: 10 minute bike to SR station (or 30-40 minute walk, depending on your walk speed), you have hopefully timed things right to get on a bus leaving once every 30-60 minutes and that the bus is actually showing up: otherwise, you're waiting 30-60 minutes for the next one. Then a 30-60 minute ride into SF. Then a ~5 minute bike ride or 15-20 minute walk to Caltrain. Then a 45-60 minute ride to Palo Alto, but again the transfers aren't timed (they couldn't be, given the difference of where the bus dropoff is)
The second real alternative is replacing the first bus leg with a ferry leg by going to Larkspur Landing. There is the SMART train that goes there, but for some wild reason drops people off a 15 minute walk from the ferry and then has no timed transfer.
I did the journey dozens of times and never completed it in less than 2h 30m but more commonly was 4h and had more than 1 occasion where it took much longer than that.
Short errands are much nicer with a bike: less effort than walking, much faster than walking, no parking headache at destination, cool breeze in your hair, and free (no gas, insurance, parking, tickets…)
(I'm from Italy originally).
My wife and I left a meeting in a business park in Phoenix and decided to walk the 5 mins to the local shopping mall, have a look around and then get a taxi back to the apartment in which we were staying (We'd taken a taxi to the meeting).
We were about 2 minutes into our walk when a car pulled up and it was one of the people from the meeting. People in the office had spotted us walking and assumed there was some kind of emergency or our car had broken down.
We had to be very politely insistent that we didn't need a lift to the mall and were perfectly fine.
That being said, the fact that quick maths can give you a 6 orders of magnitude difference between functional code and the package is probably reason for concern.
When you have so many processes on a modern machine competing for resources, when every app chooses to be bloated and slow it really adds up.
How far we’ve fallen.
I think this is not the case. E.g., we replace our computers every few years, but not because the new ones can do things that you can't do with your current computer. It's because the software you use to do the same things keeps getting more resource-hungry.
Then multiply by the number of people who use a piece of software (eg slack) and we’d get a figure for the externalised cost of a piece of software.
The aggregate waste in battery wear and watts spent is pretty staggering when you think about it, all so google could spend a few cents less per 100 streams.
Not to mention the fact that a mobile radio would have to be kept on high power constantly to pull in that 1Gbit/s stream.
You can be snarky all you want, it was a terrible move by Google.
;)
Qatar might even give you a plane!
Upgrades shouldn’t ever break things, bugs and vulnerabilities never exist, and Rube-Goldberg machines should work 100% reliably day in and day out.
Unfortunately reality doesn’t work that way…
And to top it off, the dual flights and whale would need complex orchestration too!
We just call it Kubernetes…
Mass is a nonsense analogy that doesn't reveal anything useful.
Of course, the real cost-saving is in labour—web development presents a radically lower barrier to entry compared to even non-native, cross-platform UI/UX platforms such as Qt, or Flutter, or what-have-you, let alone simply managing multiple native applications.
So this is not a bill-of-materials kind of analogy, it's a statement about talent.
Web leaders have grown complacent; at times, it seems they don't take things seriously. I mean, just take a look at something like SvelteKit. I'm not a web developer, however I happen to like Svelte a lot, but also despise SvelteKit equally as much.
Every major release is like "fuck you."
Using Electron to package your application often saves time over writing a native app.
Giving a regular user a ready-to-use app saves them time, because they aren't googling "how to use terminal" for five minutes or trying to copy-paste the magic command out of their notepad app.
Under some circumstances; arguably, in only a handful of circumstances. The colloquial 10xer may as well as get the job done at a fraction of the labour cost associated with a 10-man senior (but really, comparatively junior) team, whereas the latter would spend months rewriting, refactoring, troubleshooting, triaging, bug-hunting, what-have-you...
Much can be said about inefficiencies of engineering teams.
The business logic for humans is a single reproductive cell.
A single sperm weighs 2.3 x 10^-11 grams. If the average male weighs 75kg the. The bloat ratio for a human male is 3.2x10^15
Getting back to the app there is huge value in not needing to run the command yourself. Sure it’s wrapped in a UI that comes with “bloat” but honestly who cares. When was the last time someone needed to worry about hard drive space, when it comes to a 40mb file.
All of which sucks up your compute resources and battery. Repeat for every such little utility app you have on your Mac. Some may implement that random stuff inefficiently (eg very frequent telemetry), which sucks even more. Some of it may even be wrong, vibe coded, or copy pasted.
Personally, puts me off installing random utility apps, even if the single utility would be useful.
Tk has no color management, unlike newer frameworks, which was good in this case because I asked for (255,0,0) and got (255,0,0). When I exported to JPEG and views on a web browser though I got something like (186, 16, 16) because on my wide gamut monitor the native primaries are more saturated than sRGB primaries so some white gets blended in to make them less saturated. Turns out in Windows, screenshots are in the color space of your monitor! It’s something you’d never notice unless you made stereograms because that little bit of green and blue goes to the wrong eye.
I tried to build some of my tools without Electron, it's always a battle of multiple documentations for multiple systems and creating a bespoke system or having to deal with UI documentations that are glorified API references without examples.
The last few tools I built used PhotinoNET, which gave me an electron-esque framework but not bundling it's own chromium, instead using the browser already on the system. And even that required a complicated build script so I can just export a simple flatpak, exe and dmg...
There are two obvious answers. The first is portability. And sure, but Electron provides an answer here, so why can’t we provide one with PWAs? We could even have OSes define this interface for different browsers to target in a standardized way. Yes, you need platform specific code, but that’s often the situation with Electron too.
The other answer is security. But how is Electron / any other installed app any better? Because we require more explicit consent before installing a “real” app than for installing a PWA? OK so, just let’s just do that for PWAs too.
This is not 'an app to change MAC address' but an app to 'overcome WiFi time limits'.
Thing is, most x-platform frameworks still require a big download. Java and Python runtimes are in the same ballpark as Electron.
There's great power in abstraction. Disagree?
Your point is that an operating system, and its shell, all running on a machine, and a collection of apps, are somehow smaller than a wrapper application.
I'm curious the amount of bytes the entire stack, minus the chrome which is the complaint I believe, how many bytes that is. I would say probably a gig.
ps: I love both space stations and Unix
That all said, a simple GUI API provided by the OS for simple programs like this would be nice, just to give the user better feedback on the process. Is it done? Is it doing anything? Did it run correctly? Etc.. Zenity on linux kinda does that but is not guaranteed to be installed...