156 points

I fucking hate Electron

permalink
report
reply
96 points

If given a choice between an electron app and nothing, I choose the electron app.

permalink
report
parent
reply
57 points

same. still dont like them tho

permalink
report
parent
reply
16 points

I choose nothing.

Or a website

permalink
report
parent
reply
6 points

I’ll talk nothing over a terribly implemented Electron app that devours system resources and brings every other Electron app down when it inevitably OOMs.

permalink
report
parent
reply
47 points

You hate electron or you hate developers who make inefficient electron apps? Some examples? (Serious question, because I make electron apps)

permalink
report
parent
reply
104 points

There’s no such thing as a efficient electron app. First electron apps have 80MB of overhead since electron needs to bundle a whole ass browser. Also in runtime this requires 120MB of ram.

If you really want to use webviews to make an app use Tauri.

permalink
report
parent
reply
19 points

The literal most popular IDE amongst software developers is VS Code that’s built on Electron.

permalink
report
parent
reply
3 points

This comment feels like it just stepped out of a time machine. I can’t remember the last time I fretted over 200MB of overhead/memory usage.

I’m in no way judging you, merely commenting on how different our use cases and expectations are.

permalink
report
parent
reply
1 point

How much Rust do I need to know to use Tauri?

permalink
report
parent
reply
28 points
*

Mainly electron itself. For example the discord app (which uses electron) is less memory efficient (and much more restrictive etc.) than just a separate Firefox instance. It also had many problems with being up to date, but that’s due to the discord devs deciding they want an own, custom electron, based on an outdated version. The main problem with electron for me stems from the chromium base, as basically any large app based on chromium (discord, spotify and steam) has massive flickering and performance problems on Wayland+Nvidia. A special combination, but still a factor for a ‘cross platform’ framework.

On the other hand, stuff like Signal never had any problems on my machine.

So, just use the stock electron, optimally the system one [electron binary], and see if you can enable wayland compatibility natively (otherwise we need to use environment variables etc., which works moderately at best).

permalink
report
parent
reply
4 points

So, just use the stock electron, optimally the system one

What? The system what?

permalink
report
parent
reply
8 points

Developers who make inefficient apps. Most apps are sadly utter garbage

permalink
report
parent
reply
2 points

Capitalism forces developers hands into taking the cost-cuttingest approach to everything over doing it right.

permalink
report
parent
reply
6 points

Often times there’s just no reason to package a web app into an app container.

permalink
report
parent
reply
5 points

PWA needs more support.

permalink
report
parent
reply
5 points

Yes

permalink
report
parent
reply
136 points

A pile of HTML + JS is the only cross platform GUI toolkit that’s practical to deploy.

I’m not really happy about it myself, but realistically there’s not any other option than just bundling a website into a wrapper.

And to pre-empt any replies; your proposed solution must support Windows, Linux (X11 and Wayland), MacOS, iPhone, Android, Chromium and Firefox.

permalink
report
reply
40 points

Java, of course. /s

permalink
report
parent
reply
43 points

3 billion devices can’t be wrong!

permalink
report
parent
reply
29 points

Real talk; if Java didn’t have their head up their own arses, it would have been the real solution. But Oracle does what Oracle does.

Do not anthropomorphize Larry Ellison.

permalink
report
parent
reply
19 points

And to pre-empt any replies; your proposed solution must support Windows, Linux (X11 and Wayland), MacOS, iPhone, Android, Chromium and Firefox.

If you are a website, that’s easy, you are actually making the correct choice with Electron insofar that you want a browser.

If you’re doing an application not a webpage, then we’re walking W+L+Mac+Phones, that’s more tricky. I’m assuming for a second you want a usable UI (otherwise we’d be using Electron again :P ) so we’re talking two applications at least, one for mobile, one for desktop + maybe iPads.

And then it’s usually already too pricey to bother:

  • Web frontend devs are far cheaper than application developers.
  • Might as well just do a website, runs in everything. Only need to develop once.
  • Updating is immediate with a website, don’t have to do any deployment/upgrade/downgrade plans.
permalink
report
parent
reply
15 points
*

I think Flutter and Avalonia both tick all those boxes.

permalink
report
parent
reply
3 points

Does Avalonia support Wayland? Last time I checked it wasn’t complete yet.

permalink
report
parent
reply
6 points

Just checked, and unfortunately no, Wayland is still in preview.

permalink
report
parent
reply
10 points

Why is Firefox a ‘platform’? I’m assuming chromium is for chromeOS devices, but I don’t know of any device that just runs Firefox.

permalink
report
parent
reply
21 points

they probably meant web versions of the app that run both on chromium and gecko (firefox) browser engines

permalink
report
parent
reply
5 points

As Communism said, yeah I was ment a web application. No need to spend dev time working on a different version of your app if you can just reuse the web version.

permalink
report
parent
reply
1 point
Deleted by creator
permalink
report
parent
reply
8 points

If you count browser engines, don’t forget Webkit.

permalink
report
parent
reply
6 points

Chromium and Firefox are web browsers, of course they only support HTML+JS. That’s what they were designed for.

permalink
report
parent
reply
10 points
*

of course they only support HTML+JS.

WebAssembly is becoming more popular, which lets you run code written in languages other than JavaScript in a browser. It’s not possible to do everything yet, so you still need some JS code and a bridge between the WASM and JS, but it’s getting there. Emulators that run in the browser often use it.

permalink
report
parent
reply
4 points

I don’t think, there’s currently any plans to introduce a non-JS API for accessing the DOM. It would just take an insane amount of implementation work + documentation.

But frameworks can generate access code for you, so you don’t actually need to write any JS yourself. Rust is quite far ahead in this regard, thanks to the wasm-bindgen library.

permalink
report
parent
reply
6 points

Avalonia and Uno Platform if you are working with C#

permalink
report
parent
reply
3 points

Raylib.

permalink
report
parent
reply
3 points

I know the guy working on makepad is trying to solve this problem along with vr headsets, Apple tv, etc. It’s really painful because of dependency bloat messing with build times so he ended up rewriting a bunch of things 🤷‍♂️.

permalink
report
parent
reply
1 point

qt?

permalink
report
parent
reply
1 point

JUCE is weirdly capable of non-audio related UIs and runs on all these platforms.

permalink
report
parent
reply
102 points

“Here’s a website that you needed to install on your phone to see!”

permalink
report
reply
47 points

They want you to install the app so they cand send you notifications/ads.

permalink
report
parent
reply
38 points

Yup. That plus steal all your contacts and anything else they can get direct or indirect permissions for.

permalink
report
parent
reply

using a phone to browse the internet

i seriously hope you guys don’t do this

permalink
report
parent
reply
7 points

Definitely! I work at a computer 8-10 hours per day, 5 days a week. The last thing I want to do when I’m done working is sit at computer some more. I do almost all of my browsing on my phone. Firefox Mobile Nightly, plus NextDNS, plus Nord VPN, plus uBlock origin, plus a fake user agent string. I’m pretty secure on my phone.

permalink
report
parent
reply
4 points

Bruh. Phones are just essentially ARM + Linux pocket PCs.

permalink
report
parent
reply
78 points

I though the same but I tried Tauri and it makes sense. Unlike electron you’re not shipping the entire browser with your app and the the low level stuff is just rust so the integration is nice and easy. And using webview for UI? Why not? The reactive libraries are actually nice to work with, it’s easy to customize, you have all the tools to inspect/debug your code. It’s definitely better then trying to fit GTK into rust.

permalink
report
reply
14 points

I’m using Tauri to play around with Rust. I like it so far.

I always thought it uses far fewer resources than electron.

permalink
report
parent
reply
1 point

What are you using from UI? JS or also Rust?

permalink
report
parent
reply
6 points

oh JS too, which kinda throws me off because I’m not bad with Web Dev, but I’m not good either and my UI looks like a bad web page than a good desktop app.

I’m actually trying to keep it simple and write my own launcher like Alfred, Albert, Kupfer but I want it to launch my own custom scripts that I can load in a directory as well.

permalink
report
parent
reply
49 points

If you don’t like webapps, make native UI frameworks easier to use and cross-platform…

permalink
report
reply
1 point

lol they did, that’s what webapps RUN ON. TBH I don’t get the original complaint. Lots of people have bad webapps; back when native apps were the norm, lots of people had bad native apps. It’s not really a problem with the runtime framework.

permalink
report
parent
reply
16 points
*

They run on them, but its not that easy compared to a web app. Why isn’t everyone programming in machine code? Every other language literally runs on it. There is a reason we use abscractions.

permalink
report
parent
reply

Programmer Humor

!programmerhumor@lemmy.ml

Create 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.

Community stats

  • 3.6K

    Monthly active users

  • 1.5K

    Posts

  • 35K

    Comments