Such is the state of Electron.
I'm slowly stopping to care about web apps, however the amount of shit Electron causes is through the roof. Discord, Element, Signal, even Steam is full of it, so you just end up having 8 different "programs" running with every single one using at least around 400MB of RAM.
Can't wait to see something using Rust and Tauri. Graphite wink wink
That's how software used to be distributed and that's where the terms DLL / Dependency Hell come from and why programs used to not uninstall cleanly and break other programs, etc.
It's more efficient, but it's also brittler and a lot more complex to manage. Conversely, bundling everything together with all its dependencies is a lot easier to manage, and a lot more robust overall, but comes at the expense of storage capacity and network bandwidth.
I really want to see the zygote approach worked out for electron. It's working really well for android but with electron there are just too many different versions used by the different programs for that to make sense.
Of the apps you mentioned, I can use Discord and Element in my browser. WhatsApp even installs as a PWA. And Steam games can be launched through Lutris afaik?
With Discord in browser, you lose Krisp, RPC ipc socket support (aRPC might work, no clue), and from what I remember screensharing only worked with browser tab capture.
Element will eat your RAM no matter where it's running. You could add it as a Nextcloud app to triple your RAM usage! Woo
And you can't run Steam games without the Steam client running. That's how their DRM works. (Unless you use the goldberg steam emulator, which is a whole another thing to talk about)
Using an E2E chat app in your browser necessarily makes the keys and decrypted messages available to your browser. They would have the ability to read messages, impersonate users, alter messages, etc. It would defeat the purpose of a secure messaging platform.
It's because it's an electron app. So in addition to the chat app itself, it also includes a full Chromium runtime. Worse still, the Electron architecture doesn't really lend itself towards reusing electron itself; this means you might have several copies of the same version of electron on your machine for various apps.
People complain about the sizes of things like flatpaks and snaps, but tbh the whole architecture of applications is like this these days. Ironically, flatpaks and snaps could help with this because their formats can work decently with filesystem level deduplication.
This is because they don't retain your (encrypted) messages on their servers right? Is this for storage reasons, or more just security philosophy of not being able to access past chats when you login from elsewhere?
Okay, but can't it be an optional feature? I'd like it if a new device could download message history from an old device by having both online at the same time.
Optional how so? It's a rotating key. Unless you have all of those keys to export into your computer, then you'll be stuck with the current synced key.
It means that if you have chats on one device and install Signal on another one, the chats don't transfer to it. After you link new device, new chats do sync perfectly fine.
Signal's desktop app is as horrendously unusably bad as the project as a whole is good, tbh.
It's no wonder people prefer stuff like Telegram. It has native apps and all. Or can be used in a browser. Meanwhile Signal is only used in a browser, but you have to download it and it fucks up font scaling and it shits the bed on font antialiasing and it can't even get UI design consistent with the OS it's running on and it won't even use the OS emoji font.
Let's not even mention how you still cannot use Signal on a tablet.
telegram has an "advantage" of not having e2e encryption by default, which makes stuff like sync much easier as chats are fully stored on the server (encrypted with your user password).
and if you enable encryption (aka start a secret chat), the chat will only exist on the device you started it on and stop getting synced
im still amused by the fact that discord mobile uses two yes, you read that correctly, TWO emojis sets, it uses one in app, and the selector, and then uses another for the text input line, because.
And anytime you clicked on a link or image in the chat, you'll have to click into the message field again (or press Ctrl+t) to be able to type a reply. I don't understand how this absolutely infuriating thing hasn't been fixed in years. Is nobody bothered by this? I want to be able to alt+tab into signal and just start typing ffs.
For the most part, I don't care about App Size. Storage is cheap. What I miss with the Signal Desktop App is the option to save everything in an encrypted container.
Wouldn't having full disk encryption achieve most of the benefits of that? In case of someone having access to your unlocked machine what is stopping them from launching the app and looking though it?
Yes, full disk encryption helps against intruders with device access, but not against the files being indexed by other application. My phone is encrypted, but I still use a signal client that is encrypted again.
That's why I am so happy that I switched to Matrix - selfhosted with Signal and WhatsApp Bridges(amongst others) and now I only need to keep one App on our mobiles, Notebooks,desktop,etc. but I can still communicate with everyone.
(we have have a few mixed groups now)
Is Matrix another one of those apps that when you click on a download link it takes you to a page full of tech jargon shit like "nightly signed beta configs here, just unjibble the .trag file and recombobulate with a python scrab to mambo directory: AAATGFHHOLLLM56888NGAAA.tar.gz" ?
with the new encapsulator all you need is to reconfigure your turbomutator to allow electrostabilizer executable to directly read instructions from your self-hosted AI model.
Who even uses python to scrab anymore? Install podman dude.
It's website seems to have had a graphic designer look over it. It seems to do the best of both worlds where you can download the default user friendly client or choose to go down the jargon route if you want to.
I self-hosted it few months ago, and it's actually surprisingly easy! Someone has made an Ansible script for Matrix with Element and some bridges, that (at least a month ago, IaaC tends to be pretty fragile) worked out of the box on a first try. I just set up some config values (mostly about enabling bridges I want) based on their amazing documentation, and then ran it once and everything is working so far. I even updated it several times already, and every time it was smooth, and it was basically just running a single ansible command. Their documentation is pretty well written, and with my basic cloud, IT and Linux knowledge I had no issues with following it. All you need to know is how to set up cloud VM, get a domain and set DNS, and set up SSH keys to access the server.
In total it took me about two hours in total, from when I decided "I'm setting up Matrix tonight" without any prior knowledge, looking up my options and finding the ansible script, setting up cloud and getting Matrix up and running.
I'm renting a VM on Hetzner for like 6$ per month, and it worked without issues so far. I use it for Discord and Messenger, although the Meta bridge does have some problems, for example I didn't figure out how to message someone with whom I haven't had a conversation since I set up the bridge, since only then it creates the room for it. But that can be solved by keeping the Messenger app or usign the browser to send a first message, and it immediately shows in your Matrix bridge (and stays there forever).
Thanks,welcome to the club!
It can be a bit "tricky" at times (and I use a container manager,cloudron, meanwhile as I got too deep into the rabbit hole and now host too many things to maintain them myself) but once you get it set up it's rock solid.
And I am really optimistic for Element X/Matrix 2.0.
I'll give you a little anecdote. I joined a casual server on Matrix recently. Two minutes into the conversation, it turns out the person I was talking to is installing some Linux stuff and watching an episode of classic Doctor Who. That's two of my biggest interests right there that we immediately connected over. If there are only two users on Matrix, they're the only two I need.
Signal package has Electron (which is built on top of Chromium and NodeJS) + Signal app code and assets. So not surprised that it's bigger than Chromium.
Like I know native apps are always better, but why doesn't electron ship an installable runtime so we don't have to have a shitload of inert chromium installs on one machine?
May be, but I don't think apps use it. Afaik Teams, Discord and such are all epectron apps, yet they have not much in term of dependencies and large install sizes, so they must ship with their own versions.
You can still have separate processes and everything else with a shared runtime, you just save having all this wasted storage with every application bringing its own bundled runtime.
.net or Java applications work in a similar way, one Java app crashing won't take out another just because they're sharing the same runtime
Um, no? The 336 megabyte usb installation media contains everything you need to install base Debian. Most people will want a desktop environment and other packages, they can connect to the network to download those additional packages.
Haha, WeChat is even more outrageous than this. All your forwarded files will be automatically stored again. Your chat records will always be stored on the disk, but WeChat will tell you that the chat records have expired. In addition, it has recently been discovered that every Once you log in to WeChat, your avatar will be saved more than ten times
You can actually delete the data for good in both the android and windows software through the interface, and it works. But yeah the amount of data is staggering.
I've got a reminder in my calendar to delete the data on the first day of a new quarter, so this here is accumulated since April 1st:
"android is good" mfers when they have to manually set a calendar task to notify themselves to manually delete the bloated information for an app that they have installed.
no shade to you specifically, but it pisses me off how much android users circle jerk over it being better than IOS, even though it's like, moderately less annoying.
Given that they have a native, non-Electron iOS version, it’s a shame that they haven’t built a desktop macOS version using mostly the same code. (To make it look like a proper Mac app, they’d need different UI code, though even without that, they could build a version that looks like the iPad version with no changes, and it would look no worse than the Electron web-app UI and run an order of magnitude more efficiently.)
And that's also a lot for an app that doesn't have that many binary assets like images or videos. I do wonder what makes up most of these sizes. I see other apps that are arguably more complicated - like AntennaPod - using under 40MB; So I guess it has to do with actual native apps vs cross platform ones.
synapse also tried to automatically install itself through windows update, which i didnt appreciate, though im pretty sure that was windows fault, not synapse, though it still sucks so fuck synapse.
Sadly, it's the only way I can contact someone to buy a decent quantity of weed in this state. I get less even if I go to a state where it's legal and I pay more.
What's so sad about it? You have the ability to securely send E2EE messages for free. I'm very pleased with Signal after using it for years.
If you mean it's sad about the weed being hard to get / illegal... yeah, I concur. Hopefully Schedule III happens soon and nationwide Medical will be legal.
Windows doesn’t support deduplication itself (though ntfs does support hardlinks if someone wanted to do it). It actually won’t help here because every electron app bundles different versions in practice.
Yeah, I've been having a lot of issues with Electron which is basically a browser emulator. It has gotten huge, so applications using it have gotten out of control in size. I get that it's a quick way to build a cross platform application, but there really needs to either be a better way to distribute it that is more modular, or people need to start building on better cross platform front-end systems.
i am doing a full system upgrade and something wants to build chromium from source. i let it run in the background and cloning the repository alone has downloaded 33GB wtf 😭
Yeah, I had to move away from Arch Linux because lots of apps you have to build and Electron was one of the biggest culprits for using tons of disk space and time because it builds Chromium in its entirety from source. Electron is a great way to shift the cost of cross platform development from you to your customers.
I don't think people are worried about storing hundreds of Signal instances, this isn't a photo backup.
The concerns are bloat, optimisation, and memory usage.
That's the point. The storage is a bad metric. While it might indicate poor performance, it's not a direct indication of poor performance. The bloat and optimization comes from the usage of Electron. And people use Electron because it's far easier to make cross-platform deployments for Web and desktop using a framework like Electron. Show me the QT/JavaFX app that mimics Signal and we can compare the cost to develop it. Electron isn't the best choice for memory usage and reducing bloat, but it's the best choice for quick development (in my opinion but also proven out by the market share it has)
This is why I moved to Telegram. Idk if it's actually native, but often feels much more so, and less phone-centric than Signal which requires weird auth rituals involving the phone.
Personally, I'm a big fan of XMPP, due to the inherent resiliency in being decentralized/federated, and due to the security provided by OMEMO (based on signal's algorithm). Don't have to worry about third-parties messing with my data if it stays on my server that's in my house.
People want a chat app. If your secure chat app sucks as a chat app, it doesn't matter how secure it is. It failed the primary use case it was meant to be developed for.
But keep in mind, Signal's nature is no excuse to have shitty app implementations. In particular to have desktop apps as second-class citizens (and tablets as exterminated not-citizens). You can be a secure chat app. Signal got the secure part done, they're just struggling with the chat app part.
Signal is not an alternative to telegram and vice versa. Telegram has too many public communication features that people often use. The nature of signal will prevent it from having similar features.