> other than AI stuff, where does a non powerful computer limit you?
Running Electron apps and browsing React-based websites, of course.
> other than AI stuff, where does a non powerful computer limit you?
Running Electron apps and browsing React-based websites, of course.
For real. Once I've opened Spotify, Slack, Teams, and a browser about 10GB of RAM is in use. I barely have any RAM left over for actual work.
I keep wondering why we can't have 2000s software on today's hardware. Maybe because browsers are de facto required to build apps?
We could, but most of the 2000s developers are gone. Or, we no longer have developers left with 2000s attitudes and approaches to software development.
I think that is a little bit unfair. I think plenty of developers, myself included wouldn't mind or would like to do native applications. Every time someone does those, a mountain of people ask "why" and "this shoulda/coulda been a web app." And some of that is somewhat reasonable. It's easier to achieve decent-ish cross platform. But also tons of consumers also just don't wanna download and install applications unless it comes from an App Store. And even then, it's iffy. Or most often the case, it's a requirement of the founders/upper management/c-suite. And lets be honest, when tons of jobs ask for reactive experience or vue.js, what motivates developers to learn GTK or Qt or Winforms or WinUI3?
Yep. I graduated in 2017 and jobs were already mostly web. I’d love to work on native applications but nobody is hiring for that and of course because nobody is hiring for that I don’t have a job like that and the Qt I learnt in university is not gonna get any more relevant over time but I don’t have a good reason to keep that skill up to date and if I have to solve a problem I might as well write a TUI or CLI application because that’s easier than Qt or whatever…
It's also reasonable from a business point of view to say "we can't justify the investment to optimize our software in the current environment." I assume this is what's happening - people are trying to get their products in customers hands as quickly as possible, and everything else is secondary once it's "good enough." I suspect it's less about developers and more about business needs.
Perhaps the math will change if the hardware market stagnates and people are keeping computers and phones for 10 years. Perhaps it will even become a product differentiator again. Perhaps I'm delusional :).
Real talk.
Well, some of the "old school" has left the market of natural causes since the 2000s.
That only leaves the rest of 'em. Wer dey go, and what are your top 3 reasons for how the values of the 2000s era failed to transmit to the next generation of developers?
There's no market for it.
That’s why I only run those on work computers (where they are mandated by the company). My personal computers are free of these software.
I rarely doge a chance to shit on Microslop and its horrible products, but you don't use a browser? In fact, running all that junk in a single chromium instance is quite a memory saver compared to individual electron applications.
It's not just electron apps or browsers, as I'd argue modern .NET apps are almost as bad.
I have an example.
I use Logos (a Bible study app, library ecosystem, and tools) partially for my own faith and interests, and partially because I now teach an adult Sunday school class. The desktop version has gotten considerably worse over the last 2-3 years in terms of general performance, and I won't even try to run it under Wine. The mobile versions lack many of the features available for desktop, but even there, they've been plagued by weird UI bugs for both Android and iOS that seem to have been exacerbated since Faithlife switched to a subscription model. Perhaps part of it is their push to include AI-driven features, no longer prioritizing long-standing bugs, but I think it's a growing combination of company priorities and framework choices.
Oh, for simpler days, and I'm not sure I'm saying that to be curmudgeonly!
I use a browser at home, but I don't use the heaviest web sites. There are several options for my hourly weather update, some are worse than others (sadly I haven't found any that are light weight - I just need to know if it would be a thunderstorm when I ride my bike home from work thus meaning I shouldn't ride in now)
Yr.no [1] is free, and available in English. Thanks to Norway. Apps available as well.
https://en.wikipedia.org/wiki/Yr.no
Try Quickweather (with OpenMeteo) if you're on Android. I love it.
https://f-droid.org/en/packages/com.ominous.quickweather/
I'm giving up on weather apps bullshit at this point, and am currently (literally this moment) making myself a Tasker script to feed hourly weather predictions into a calendar so I can see it displayed inline with events on my calendar and most importantly, my watch[0] - i.e. in context it actually matters.
--
[0] - Having https://sectograph.com/ as a watch face is 80%+ of value of having a modern smartwatch to me. Otherwise, I wouldn't bother. I really miss Pebble.
fun fact, you can kill all firefox background processes and basically hand-crash every tab and just reload the page in the morning. I do this every evening before bed. `pkill -f contentproc` and my cpu goes from wheezing to idle, as well as releasing ~8gb of memory on busy days.
("Why don't you just close firefox?" No thanks, I've lost tab state too many times on restart to ever trust its sessionstore. In-memory is much safer.)
Yeah, I found this out the other day when my laptop was toasting. In hindsight, probably related to archive.today or some Firefox extension.
You have to close Firefox every now and then for updates though. The issue you describe seems better dealt with on filesystem level with a CoW filesystem such as ZFS. That way, versioning and snapshots are a breeze, and your whole homedir could benefit.
FWIW: the Tab Stash extension has worked well for me.
Why would I need a browser to play music? Or to send an email? Or to type code? My browser usage is mostly for accessing stuff on someone else’s computer.
The only subscription I have is Spotify, since there's no easy way that I know of to get the discoverability of music in a way that Spotify allows it.
For the rest: I agree with you.
lastfm is still a great way to discover music, countless times I've gotten great recs from a music neighbor.
Plex or Jellyfin client access.
mpv + sshfs is the way.
I kind of hate how the www has become this lowest common denominator software SDK. Web applications are almost always inferior to what you could get if you had an actual native application built just for your platform. But we end up with web apps because web is more convenient for software developers and it's easier to distribute. Everything is about developer convenience. We're also quickly running out of software developers who even know how to develop and distribute native apps.
And when, for whatever reason, having a "desktop application" becomes a priority to developers, what do they do? Write it in Electron and ship a browser engine with their app. Yuuuuuuck!
We have an open, universal application platform. That alone is something to celebrate.
Yeah it's awful. Web apps are slower, they don't integrate well with the system, they are inaccessible if the network is down. A native app has to be truly abysmal to be worse than a web app. But far too many developers simply do not care about making something good any more. There's no pride in one's work, just "web is easier for the developer". And of course the businesses producing software are all about that, because they are run by people with a business ethic of "make the product as cheaply as possible, ignore quality". It's a very sad state of affairs.
Seems like the perfect target for ESG.
Companies love externalizing the costs of making efficient software onto consumers, who need to purchase more powerful computing hardware.
If only. At work I've got a new computer, replacing a lower-end 5-yo model. The new one has four times the cores, twice the RAM, a non-circus-grade ssd, a high-powered cpu as opposed to the "u" series chip the old one has.
I haven't noticed any kind of difference when using Teams. That piece of crap is just as slow and borken as it always was.
> If only. At work I've got a new computer, replacing a lower-end 5-yo model. The new one has four times the cores, twice the RAM, a non-circus-grade ssd, a high-powered cpu as opposed to the "u" series chip the old one has.
> I haven't noticed any kind of difference when using Teams.
If the device is a laptop, also the thermal design (or for laptops that are in use: whether there is dust in the ventilation channels (in other words: clean the fans)) is very important for the computer to actually achieve the performance that the hardware can principally deliver.
Yeah people love to shit on electron and such but they're full of crap. It doesn't matter one bit for anything more powerful than a raspberry pi. Probably not even there. "Oh boo hoo chrome uses 2 gigs of ram" so what you have 16+ it doesn't matter. I swear people have some weird idea that the ideal world is one where 98% of their ram just sits unused, like the whole point of ram is to use it but whenever an application does use it people whine about it. And it's not even like "this makes my pc slow" it's literally just "hurr durr ram usage is x" okay but is there an actual problem? Crickets.
I have no issues with browsers specifically having to use a bunch of resources. They are complicated as fuck software, basically it's own operating system. Same for video games or programs that do heavy data processing.
The issue is with applications that have no business being entitled to large amount of resources. A chat app is a program that runs in the background most of the time and is used to sporadic communication. Same for music players etc. We had these sorts of things since the 90's, where high end consumer PCs hat 16mb RAM.
"chrome uses 2gb of ram"
these days individual _tabs_ are using multiple gb of ram.
Don't know about chrome, but Firefox has an about:memory special page that will let you know which tabs are using the most ram. Of all the sites I use, youtube is the only culprit. When I am done watching a video, I use the about:memory to kill the associated process (doesn't destroy the tab (in case I want to come back to it)). I assume it is all the javascript cruft.
The issue isn't usage, it's waste. Every byte of RAM that's used unnecessarily because of bloated software frameworks used by lazy devs (devs who make the same arguments you're making) is a byte that can't be used by the software that actually needs it, like video editing, data processing, 3D work, CAD, etc. It's incredibly short sighted to think that any consumer application runs in a vacuum with all system resources available to it. This mindset of "but consumers have so much RAM these days" just leads to worse and worse software design instead of programmers actually learning how to do things well. That's not a good direction and it saddens me that making software that minimizes its system footprint has become a niche instead of the mainstream.
tl;dr, no one is looking for their RAM to stay idle. They're looking for their RAM to be available.
I dunno man, I have 32gb and I'm totally fine playing games with 50 browser tabs open along with discord and Spotify and a bunch of other crap.
In not trying to excuse crappy developers making crappy slow ad wasteful apps, I just don't think electron itself is the problem. Nor do I think it's a particularly big deal if an app uses some memory.
You're right, Electron is not inherently bad and apps need RAM. There's no getting around that.
The issue with Electron is that it encourages building desktop apps as self-contained websites. Sure, that makes it easier to distribute apps across systems and OSes, but it also means you've got front end web devs building system applications. Naturally, they'll use what they're used to: usually React, which exacerbates the problem. Plus it means that each app is running a new instance of a web browser, which adds overhead.
In real life, yeah, it's rare that I actually encounter a system slowdown because yet another app is running on Electron. I just think that it's bad practice to assume that all users can spare the memory.
I'll admit that my concern is more of a moral one than a practical one. I build software for a living and I think that optimizing resource usage is one way to show respect to my users (be they consumers, ops people running the infra, or whatever). Not to mention that lean, snappy apps make for a better user experience.
Lazy developers can make bad apps that waste RAM no matter what framework. But even conscientious developers cannot make an app with Electron that compares favorably to a native app. Electron is inherently a problem, even if it isn't the only one.
The problem with having 32gb of RAM is that there is no mechanism to power off part of it when it is unneeded (plus RAM constitutes a significant fraction of a device's total power consumption) so if the device is running off a battery and is designed to keep device weight to a minimum (e.g., battery as small as practical), then battery life is not as good as it would be if the device had only 16gb.
This is why the top model of the previous generation of the iPhone (the iPhone 16 Pro Max) has only 8 GB of RAM, bumped to 12 GB for the current top model (the iPhone 17 Pro Max at the higher tiers of additional storage). If Apple had decided to put more RAM than that into any iPhone, even the models where the price is irrelevant to most buyers, they would not have been serving their customers well.
So, now you have to pay a penalty in either battery life or device weight for the duration of your ownership of any device designed for maximum mobility if you ever want to having a good experience when running Electron apps on the device.
The web browser on my phone instantly gets killed the moment I switch to another app because it eats up so much ram.
I think it's a correlation vs causation type thing. Many Electron apps are extremely, painfully, slow. Teams is pretty much the poster child for this, but even spotify sometimes finds a way to lag, when it's just a freaking list of text.
Are they slow because they're Electron? No idea. But you can't deny that most Electron apps are sluggish for no clear reason. At least if they were pegging a CPU, you'd figure your box is slow. But that's not even what happens. Maybe they would've been sluggish even using native frameworks. Teams seems to do 1M network round-trips on each action, so even if it was perfectly optimized assembly for my specific CPU it would probably make no difference.
Nearly all apps are sluggish for a very clear reason - the average dev is ass. It's possible to make fast apps using electron, just like it's possible to make fast apps using anything else. People complain about react too, react is fast as fuck. I can make react apps snappy as hell. It's just crappy devs.
Yea, these applications are typically not slow just because the use Electron (although it's often a contributor). But the underlying reason why they are slow is the same reason why they are using Electron: developer skill.
The people I trust to give good security recommendations (e.g., the leader of the Secureblue project) tell me I should completely avoid Electron (at least on Linux) because of how insecure it is. E.g., the typical Electron app pulls in many NPM packages, for which Electron does zero sandboxing.
It seems like as hardware gets cheaper, software gets more bloated to compensate. Or maybe it’s vice versa.
I wonder if there’s a computer science law about this. This could be my chance!
Is your name Wirth?
Dangit! Always the bridesmaid, never the bride
Sorry to burst your bubble:
https://en.wikipedia.org/wiki/Wirth%27s_law
Not exactly the same (it's about power rather than price). But close enough that when you said it, I thought, "oh! there is something like that." There's also more fundamental economics laws at play for supply and demand of a resource / efficiencies at scale / etc. Given our ever increasing demand of compute compared increasing supply (cheaper more powerful compute), I expect the supply will bottleneck before the demand does.
Ah, so you think there’s a point where actually bloat slows because we eventually can’t keep up with demand for compute?
I guess this might be happening with LLMs already
That's actually a good point, haha. The worst-case scenario of computers being thin clients for other people's servers dissolves when you realize that chromium/electron IS, nominally, a thin client for HTTP servers, and it'll gladly eat up as much memory as you throw at it. In the long term, modulo the current RAM shortage, it turns out it's cheaper to ship beefy hardware than it is to ship lean software.
This is the way