@9point6@lemmy.world
link
fedilink
75
edit-2
1Y

Wouldn’t it be great if there was a way for all these electron apps to share the same runtime so people don’t have to bundle it with their applications.

You know, I bet if the applications without the runtime are small enough, you could probably stream them directly from the internet without even downloading anything up front!

I guess that shared runtime would need some way to browse the applications…

^(vscode gets a pass)

You’d better be talking about code oss

@xavier666@lemm.ee
link
fedilink
English
221Y

You mean instead of downloading the app, we could just browse through them? That’s a revolutionary concept. We could call them hyper-apps!

Outside of PWA shortcomings, I believe there’s a way to have a .NET application run a WebView with Edge (Chromium). I believe Windows 11 has both pre-installed now.

I don’t even want to run NodeJS anymore. I would run all my server apps on headline Chromium if I could.

Use the system webview, you cowards!

Developers bundle all of Chromium, because they’re afraid the OS webview will have a different browser engine. Testing is too hard…

This is such a terrible excuse — usually the same app runs in browsers too, so it already has to deal with even wider variety of browser engines.

I mean even for something like .NET, apps install the version of the runtime they need in a shared space, so that they can be used by everyone desiring that specific version.

Ooh! Just unlocked a memory of a computer I was setting up and one piece of software assumed its version of .NET would be present and just failed install every time because it wasn’t. I ended up just installing it later once I had other stuff installed

Tauri moment

@9point6@lemmy.world
link
fedilink
12
edit-2
1Y

I will say that unless something’s changed in Windows recently, the win32 API webview is still a vestigial version of internet explorer due to Microsoft’s obsession with non breaking changes (not saying that’s a bad thing)

Given I lived through those years as an engineer, I completely understand people wanting to avoid that particular ancient eldritch horror.

Edit: apparently there’s webview2 now based on edge (and therefore chromium), I take it all back

Don’t bundle your app, let the CDNs do their job. God damn, that’s revolutionary.

Hopefully your idea takes off like the idiot that started the “monorepos” craze.

To your credit, your idea is actually good.

haruki
link
fedilink
9
edit-2
1Y

Well, people tend to pick the easiest way to achieve an objective, even though the solution is not simple nor optimised.

Andrew
link
fedilink
111Y

Wait until Tauri will gain popularity.

Yeah, then we can have marginally more responsive web apps.

Seriously though, web apps are usually just optimized like shit in addition to using chrome.

Andrew
link
fedilink
11Y

Do you know what this even is? It’s not marginal at all. Check the comparisons of Tauri and Electron. And it does not use Chrome. Electron also doesn’t use Chrome.

It’s chromium, which is basically chrome lol

Andrew
link
fedilink
01Y

Basically, but not basically. After all, Chromium is (F)OSS, and Chrome is proprietary.

I think most people are more upset about the engine being the only thing devs target now, similar to the old IE days, not as much on the chrome vs chromium aspect when it comes to this.

Tauri is the exact same problem, just done a bit more cleanly.

The problem is the evolutionary dead end that - hopefully - is web framework based “desktop” apps. There is already a framework for desktop apps, and unless you’re still used to those, you wouldn’t notice just how slow any web framework is by comparison. It’s mostly the user interactions, that small but noticably delay on every interaction, every click, every type, everything. Funnily enough, my actual web browser (Firefox) shows one of the shortest delays when typing into web pages like this compared to all the “native apps” I got installed that are just web pages, too.

Tauri is an improvement. To the problem. It’s not a solution.

Andrew
link
fedilink
-11Y

We just not there yet. Tauri tries to be Electron or React, where you write only once and use everywhere. This is very cost efficient. So even though it’s of course not perfect overall, but it is the perfect alternative, that brings web apps closer to native-like experience. Small but important step to greatness.

In the end the question is: Election or Tauri? And not a debate on whether web frameworks are bad etc.

I was pleasantly surprised to find a tauri app in the wild at my work. Our time tracking software uses it, at least for the Linux version.

We use flutter and the app on iOS and Android look great. The web version looks and works like shit though

Folks in this thread complaining about Electron I think miss the point. It is a trade-off. It is designed to allow engineers who have a web dev skillset to write desktop apps. For those like me who want to write the occasional hobby app - it’s great. It’s also great for orgs to be able to have cross functional teams. Just like React Native allows this for the mobile world. This could be because they’re small and can’t afford specialist native engineers for each platform they want to support - or it could be that they want to spend their money in other areas and happy to trade off app performance. If it was as lean or as performant as native apps there would be a lot of people in this thread looking for work.

I Cast Fist
link
fedilink
English
81Y

Electron is just the “easiest, most common option”, because things like TauriJS and NeutralinoJS exist, which do what electron does without having to bundle a whole-ass Chrome browser.

Xusontha
creator
link
fedilink
01Y

It’s not terrible, electron is good for stuff like what you discuss

I just like native apps better haha

Native apps have the potential to be better than electron apps for sure. I get that.

This is a surface level thing though - the question is: would THIS app, written by THAT organisation be better if it was native? Unlikely because they don’t have the skillset for it…otherwise it would have been a native app. Its also likely that less apps would even exist because the barrier to entry is higher without electron and similar.

But this is just a meme and I’m taking this way too seriously!

I love having multiple copies of Chromium installed on my system at the same time. 250 MB internet messengers please!

Xusontha
creator
link
fedilink
601Y

label

250 MB internet messengers please

Hum… Make them some of those large-sized megabytes if it’s Teams.

Teams is truly exceptional, more so because the same company has VSCode.

Both show the inherent lag and sluggishness of Electron apps, but they’re on totally opposite ends of the spectrum. Which is wild. It’s like a case study or something.

@masterspace@lemmy.ca
link
fedilink
English
201Y

You ever notice how everything installs and uninstalls super cleanly and easily these days and software gets consistent regular updates?

That’s because developers stopped min/maxing storage and started bundling all of an application’s dependencies with it instead of trying to rely on globally installed packages and frameworks that can break or be missing or lead to dependency hell.

No one likes larger download sizes and more storage being used but the tradeoff is by and large worth it.

Pretty sure that’s more about a switch from physical distribution where storage is expensive (CDs) to digital where it’s cheap.

Otter
link
fedilink
English
251Y

Isn’t this about performance and not storage?

Making and managing an electron app is easier, but it is possible (with more work) to have clean install/uninstall, a nice UI, and consistent regular updates while still being fast and efficient.

Better programs will always need more work to create.

I am curious about what other options there are, and why Electron is what a lot of people go with.

People choose Electron because they already know how to write Chromium apps (web dev). It’s really just ease of development, using another framework takes more specialized skills than using Electron.

That’s why everything is Chromium these days.

That’s why everything is Chromium these days.

The root cause is one step deeper, tbh: Web apps are cheaper. You take BSc’s and make them create web pages, and hey, with Chromium they can also be your desktop app devs. No need to have costly MSc’s for backend or full-stack work.

I mean this might vary depending on where in the world you are, but web devs earn a fair bit less over here.

@masterspace@lemmy.ca
link
fedilink
English
0
edit-2
1Y

No need to have costly MSc’s for backend or full-stack work.

Lmao where are you seeing backend shops just full of MSc’s writing new sorting algorithm and arguing about the BigO notation of their problem?

I’ve worked at Fortune 500 and MAANG companies, and the overwhelming vast majority of backend engineers that I’ve seen have BScs at best.

It doesn’t even make logical sense in the context of your argument given that Electron is purely a frontend technology. It has no bearing on your backend costs or how many backend engineers you need if you’re building your frontend natively or with Electron.

It doesn’t even make logical sense in the context of your argument given that Electron is purely a frontend technology. It has no bearing on your backend costs or how many backend engineers you need if you’re building your frontend natively or with Electron.

Yeah, that’s what I said.

@masterspace@lemmy.ca
link
fedilink
English
11Y

You take BSc’s and make them create web pages, and hey, with Chromium they can also be your desktop app devs. No need to have costly MSc’s for backend or full-stack work.

?

In this situation you never needed MSc’s…

@masterspace@lemmy.ca
link
fedilink
English
18
edit-2
1Y

Options:

Native app for each platform:

  • Pros: native code is going to be the fastest possible to run and have the smallest dependencies
  • Cons: have to write all your code 3+ times in different languages, have less time to develop new features and optimize existing code.

Progressive Web App:

  • Pros: single app, write once runs anywhere, no signing keys, no lock in, can be hosted anywhere, runs on everything
  • Cons: artificially limited by Apple on iOS, doesn’t have access to deep operating system resources, only what’s exposed through the browser, limited multithreading capabilities

React Native:

  • Pros: single app, write once, runs anywhere, similar enough to React Web that a lot of developers will have an easy time learning it
  • Cons: still kinda finnicky, not super easy to make it work and perform well across all platforms, you’ll probably still end up having to write some native code, not actually CSS / React Web so still a bit of a learning curve coming from there

Qt:

  • Pros: single app, write once, runs anywhere, low level / compiled means that it will be small and performant
  • Cons: written in C++, harder to find developers for, harder to implement modern out of the box niceties that CSS gives you for free, poor devX compared to react

.NET MAUI (formerly Xamarin):

  • Pros: single app, write once, runs anywhere, low level / compiled enough to be more performant than most web apps out of the box, well documented
  • Cons: written in C#, easier to find devs for but not many experts in it specifically, MVVM model is not as pleasant of a devX as React, again no css

Electron:

  • Pros: single app, write once, runs anywhere, has full access to operating system resources and deep multithreading if needed, can be as simple as web app in a container or as complex as something like VSCode.
  • Cons: takes up more storage and ram since you’re bundling chromium with your app

Flutter is quite nice too. Closer to web dev, but still pretty close to native.

TehPers
link
fedilink
English
31Y

Tauri is also a more recent option, which uses the native webview. Not sure if it’s suitable for production yet though.

RaivoKulli
link
fedilink
151Y

You ever notice how everything installs and uninstalls super cleanly and easily these days and software gets consistent regular updates?

Not really. Well maybe I take it for granted having switched to Linux.

I mostly hate Electron for the dumb RAM usage.

Well, Telegram uses 690 MiB on my system and Thunderbird uses 1.1 GiB.

darcy
link
fedilink
451Y

I HATE ELECTRON I HATE ELECTRON I HATE ELEC

Have you tried making a desktop application?

darcy
link
fedilink
11Y

yes. i used eframe/egui in rust, which builds to native. not saying its the best framework, but def better than el*ctron

Xusontha
creator
link
fedilink
211Y

Electron? More like cringetron

That’s why I got 32GB ram when I upgrade my PC. I don’t give a fuck to how many ram they use now.

Xusontha
creator
link
fedilink
31Y

I got 32 on my desktop so I’m fine there, but my laptop explodes if I try to run the same amount of stuff with 8GB ram

*dies in 4GB RAM*

Xusontha
creator
link
fedilink
11Y

Have you considered downloading more ram?

Yeah, but RAM is a bit costly, so saving up for it.

Xusontha
creator
link
fedilink
11Y

My friend… have you heard of our lord and savior downloadmoreram.com? You can DOWNLOAD more ram FOR FREE!

Hmm, what a great idea that totally doesn’t look like a scam!

Easy solution, get a laptop with 32 GB RAM/s

Seriously though, the problem is either on both or on neither. It’s an additional expense on the customer though, like everything else nowadays. I personally ended up getting a super powered laptop/tablet and relying on it for all my computing needs because laptops are good enough for most use cases nowadays and desktops are limited to specific use cases.

Thinking about it though, the reason it’s only limited tasks needing more power might be because everything else is electron.

@xavier666@lemm.ee
link
fedilink
English
161Y

This is the same coping mechanism as “just build another 4 lane highway. That should solve the traffic issues”. You are just shifting the problem.

I’m not shifting the problem if I have actually paid the money to build the 4 lane highway.

The point is that you’re not fixing the problem, you’re just masking it (and one could even argue enabling it).

The same way adding another 4 lane highway doesn’t fix traffic long term (increasing highway throughput leads to more people leads to more cars leads to congestion all over again) simply adding more RAM is only a temporary solution.

Developers use the excuse of people having access to more RAM as justification to produce more and more bloated software. In 5 years you’ll likely struggle even with 32GiB, because everything uses more.
That’s not sustainable, and it’s not necessary.

The same way adding another 4 lane highway doesn’t fix traffic long term (increasing highway throughput leads to more people leads to more cars leads to congestion all over again) simply adding more RAM is only a temporary solution.

How is adding more RAM a temporary solution? It would lead more workload to the CPU… which is good?

  1. People have enough RAM.
  2. Developers see people getting more RAM.
  3. Developers allow their software to use more RAM (either by doing more cool stuff or optimizing less stuff).
  4. People have little RAM.
  5. People buy more RAM.
  6. goto 1;

This also applies to CPU and GPU.

You’re giving the devs too much credit. They didn’t give a fuck even when we have not enough RAM. Otherwise this post won’t be such a common experience.

The point is that building the 4 lane highway is a poor solution

I don’t know much about car traffics but I don’t see how adding more RAM to solve the problem of not having enough RAM is a poor solution

The idea is that increasing road capacity will increase demand and basically make traffic as bas again and similarly “just add more ram”-ing will just lead to developers using less memory efficient practices leading the same situation down the line.

Which is a flaw logic as it implies

  1. The RAM capacity of any PC is a publicly available information like the road capacity; AND
  2. Electron app developers are checking info of 1. (if it’s somehow available) to decide how they optimize their app. Which doesn’t seems reasonable as electron apps are not games and thus not expected to use 100% RAM.

Of course the average amount of ram in computers isn’t some secret. What are you on about? It’s only thanks to the fact that we have gigabytes of ram these days that inefficient practices are possible. If developers didn’t know that, they would have no idea that was possible. How on earth do you think developers would ever optimise software and determine their performance requirements if specs were unknown? I’m not saying they’re snooping on YOU individually (although there’s a ton of telemetry these days everywhere and ram is probably a common statistic collected by software - Steam’s hardware survey is public and shows millions of computer’s specs. Any software you use knows your ram capacity - it’s not secret. The ram capacity of newly sold systems is public is obviously shown on spec sheets)…

@masterspace@lemmy.ca
link
fedilink
English
241Y

Electron is awesome, badly coded apps just suck. Look at Voyager for Lemmy, it’s great and it’s just a web app.

Xusontha
creator
link
fedilink
231Y

Electron apps are nice in some ways, but use a ton of memory

I usually don’t mind electron apps too much, but I do prefer native apps

Voyager is made with Ionic. The difference with Electron is that in Ionic, trough Swift/Kotlin, shows a WebView from the System Browser (mobile only) while Electron “installs” Chrome each time (desktop only).

WebApps are great, but Electron is just too much

No, it’s not nice. Looks good only on Windows where everything have unmaching look anyway.

@masterspace@lemmy.ca
link
fedilink
English
5
edit-2
1Y

Lmao, need more title bars to match macOS’ 90s aesthetic?

Uh huh. Electron apps look good on Windows. Sure.

No electron app ever looks good anywhere. They are consistent insofar that they look shit on all OS, equally. And alias their fonts wrong. And scale them wrong. And break accessibility.

Fedora
link
fedilink
11Y

They don’t break accessibility. Electron fares better in accessibility than some native app frameworks.

Carighan Maconar
link
fedilink
1
edit-2
1Y

Sure, there’s always a bar to clear. And yet Electron can’t even properly alias fonts if the creator doesn’t do it properly, as it tries to use Chrome’s broken font rendering by default. Nevermind scaling the size of anything, which just becomes a blurry mess if the app wasn’t created well enough (see the mess that is Signal as an example).

At this point JavaScript is Java. Write once, deploy everywhere.

Fonzie!
link
fedilink
181Y

And no, my fellow PHP devs, “Native” PHP’s also not it!

Web pages aside this is what Microsoft does with their pre installs on Windows

Elise
link
fedilink
91Y

Tja in a world where every OS has its own stupid little UI system, language and IDE…

Xusontha
creator
link
fedilink
31Y

What does Tja mean?

no idea if this is right or not, but lol

Xusontha
creator
link
fedilink
51Y

Oh of COURSE, how could I be so stupid

That is hilarious though, I got some German friends I need to ask about this

Elise
link
fedilink
41Y

Ach ja

It is also widely used to express something like “I told you so” or “I already warned you that this will happen. You did this to yourself.” in a single word.

E.g. “Did you hear about my anti-vaxx aunt Hildegard? She died of Covid last month.”

“Tja.”

PureTryOut
link
fedilink
7
edit-2
1Y

Dutch people use it (although I doubt it’s an official word), meaning something like “that’s what you get” or “oh well”.

Also used in German

Xusontha
creator
link
fedilink
41Y

OK that makes sense, though I wonder why they mixed Danish and English; maybe that’s common and I’ve just never seen it before

deleted by creator

@crow@beehaw.org
link
fedilink
English
141Y

If I have to load elements from the web just to use the electron app properly, I’d rather use a web app and load the whole page each time and not have the tracking.

That’s why I use discord in a separate FF instance and spotify-tui with spotifyd

Sadly the audio quality sucks for discord web for me on Linux. Maybe because there’s either little or no audio processing unlike in the desktop app with krisp or whatever

Audio chat is “not supported” by discord in Firefox last I checked. Are you spoofing user agent also?

It works for me.

I did originally have some issues and did some searching that there used to be firefox issues that are now resolved. Mine were fixed by restarting my VPN, but otherwise no problems.

Oh cool, I’ll check again

Damn, I didn’t even think about running Discord in a separate FF instance like that. Been looking for a more privacy focused approach then installing from the .deb. Thanks man!

I use a separate FF profile. It has no addons, apart from Vencord and a custom userChrome.css to hide the top tab bar (as full screening it would obstruct swaybar). I then just made an xdg .desktop entry which opens canary.discord.com with firefox using that profile.
Overall it somehow uses less RAM (albeit with another FF instance open, so maybe some resources are shared) than the official App and all other forks (eg. custom electron version) I looked at. Nearly everything works, but:

  • File upload for the soundboards is greyed out, switching user agents to chrome results in some obscure error
  • Game activity does not work as the browser version cannot access the process list (Though that never even worked acceptable on Linux anyway)
  • I did not manage to get xdg-desktop-portal to run properly for screen sharing on Wayland with Nvidia, as - bummer - the latter misses something in their driver. So no screen sharing for discord either
  • You sometimes suddenly ‘rejoin’ a call/VC, which produces a very annoying sound every time. It’s either a problem with my connection or the browser version of discord (or both). Disabling join/leave sounds ‘fixes’ that

Overall all of those problems are a better alternative to the constant flickering that happened with all electron apps on my system if they are not interacted with for a few minutes (eg. by being on another monitor/workspace). That’s just distracting as hell and often even breaks functionality. And of course, Nvidia is at fault again. Like for 90% of other problems with my system.
::: spoiler Little rant: Some issues that happen on my Nvidia system (wayland) that are not present on my Dell Laptop w/ Intel HD graphics. I spent hours and days researching those Problems with potential solutions, very few improved some things a bit.

  • Electron apps flicker
  • Generally, windows with less than 60 FPS will flicker, with transparent stripes letting you see the background/wallpaper
  • Firefox sometimes just freezes whole websites, you need to un- and reload the site to continue using it. May be related to hardware accelerated mode tho.
  • One update temporarily let games in full screen freeze. Even after killing them. And it still displayed after switching to a tty and back. And it even persisted killing the wayland session. It was just a frozen picture on output 2 forever, while in graphics mode.
  • Features such as sharing the screen via xdg-desktop-portal do not work :::
LaggyKar
link
fedilink
11Y

The main thing that keeps me from running messaging applications in the browser is the lack of a tray icon

Create a post

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

  • Posts must be relevant to programming, programmers, or computer science.
  • No NSFW content.
  • Jokes must be in good taste. No hate speech, bigotry, etc.
  • 1 user online
  • 61 users / day
  • 247 users / week
  • 417 users / month
  • 2.88K users / 6 months
  • 1 subscriber
  • 1.53K Posts
  • 33.9K Comments
  • Modlog