this post was submitted on 11 Sep 2023
718 points (100.0% liked)

Programmer Humor

854 readers
7 users here now

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

Rules:

founded 5 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] masterspace@lemmy.ca 24 points 1 year ago (3 children)

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.

[–] otter@lemmy.ca 23 points 1 year ago (1 children)

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.

[–] masterspace@lemmy.ca 14 points 1 year ago* (last edited 1 year ago) (2 children)

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
[–] aksdb@feddit.de 5 points 1 year ago

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

[–] TehPers 3 points 1 year ago

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

[–] RaivoKulli@sopuli.xyz 10 points 1 year ago

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.

[–] master5o1@lemmy.nz 0 points 1 year ago

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