plural & stuff
๐Ÿฆš

avatar from Floraverse


lexyeevee
@lexyeevee

i think everyone i've ever seen say "just make a native app" has been a windows user, i.e. someone who can safely take for granted that a native app would actually target their platform

how would your opinions on electron change if your options were "electron thing" and "thing that probably only runs on linux"?


wavebeem
@wavebeem

imagine a world of all native apps. oops, you can't use your bank with this new phone! or this new laptop! linux users utterly disenfranchised. heck, even macs would be in a wildly different position right now.

chromium has its problems, and i hate google as much as the next person on cohost, but electron is solving a very real engineering problem right now. yes, i would prefer to see desktop operating systems invest in progressive web apps so we can phase at electron. but until then, this is what we get. the incentives for developing a native app are basically nonexistent for most companies. nerds can cry about it, but only nerds know enough to really care what UI system underlies the apps they're using.


mintexists
@mintexists

my opinion is that electron sucks but its basically the best easy thing we have rn besides websites (Which dont work for a lot of things) so we might as well use it while working on something next thats better


qznebula
@qznebula

In my of brain think contemplate out the of my opinion.

The thing with native apps is, unless they're designed and individually implemented with the specific libraries and design languages which pertain to the given target OS, they just end up feeling off in little (and sometimes big) ways, maybe on all supported operating systems. Have you ever used an app GUI programmed with Java's standard windowing libraries, especially if you're on a Mac? It just doesn't feel right! We've had tons of libraries for coding cross-platform UIs for many, many years, and they're all extremely commendable efforts, but none will ever meet the specialized polish of native apps because they aren't specialized. You're not making a Windows UI or a Mac UI when you use a common library, you're making a cross-platform UI.

So with that in mind, Electron doesn't serve to replace or succeed native apps. Electron succeeds cross-platform libraries by bringing the extremely specific and open standards of the web to the desktop. Apps made in Electron still don't quite feel like native apps, but they do generally put up a more convincing facade, since Chromium is mostly quite well tuned for whatever OS it runs on. The language for web design, HTML and CSS (and arguably various JavaScript frameworks as well as JS, DOM, and other web APIs themselves), are well specified and very powerful, so apps are generally not restrained by the technology they can access.

On its own, this is an abundantly good thing for cross-platform desktop (nowadays even mobile!) development. Web standards are open standards, so generally speaking, in areas where capability is lacking, it's a much more inclusive process moving forward. There's a very active online realm of people coding UI libraries and JavaScript frameworks which make developing robust cross-platform apps distinctly more accessible than it was 10 or 15 years ago โ€” not to mention a vast collection of tutorials online, and a generally high standard of documentation for the popular libraries and toolings. It's tricky to wrap your head around how much improved cross-platform development is from Yon Olden Days.

Electron has its share of issues as well โ€” most obviously it being a major resource hog on older devices, and web developers tend to have a narrow if not elite perspective on what counts as "newer"; plus myriad social issues and the inherent problematics in centralizing a whole field of development โ€” and while those are absolutely worth addressing, criticizing, and working to improve, it's also worth recognizing how different a landscape cross-platform application development is compared to not so long ago. Where we we're at now is by no means perfect, but many of the changes have been genuine positives, and it's worth recognizing that so we understand where we come from and where we have the choice to go in the future.


You must log in to comment.

in reply to @lexyeevee's post:

also i think the worst offender is mac only software.

linux only software? gWSL and youre good to go

windows only software? wine and youre good to go

mac only software? lol buy a mac or pray that your CPU is compatible with a VM

An important point of nuance is that these tools have only matured into broadly compatible and polished states relatively recently!

Wine has been a long and slow development process until recently when Valve took an interest in it for their Proton fork and the state of compatibility dramatically improved for everyone.

WSL is a recent development too, before that you could port to MinGW32 or Cygwin or Interix but those are discrete platforms and not a drop-in compatibility layer.

And then Darling... exists. It can just about run unmodified Xcode CLI tools, but now that you must have a real Mac to sign binaries it seems a lot less useful...

as someone who got fed up with explorer and just started using a linux file manager on windows, yes, unironically this (if you're targeting people who know how to install WSL)

to be clear i would rather use something relatively well supported by WINE/wsl over electron any day of any week, because even run through those the "native"-ness of the interface is still far, far, far closer to anything electron could shit out even on the best days

i think this is true if you have a relatively powerful computer, but as someone who uses a pretty old laptop, electron definitely doesn't count as 'targeting my platform' since it would probably freeze my computer even if the program can technically run.

in reply to @wavebeem's post:

I'm sort of amazed how many people haven't looked into it enough to realize it's not election vs native app, but electron vs just a website/windows app thats always 18 versions behind and that's it, because of the need to justify 7-30x the time investment if you already have the webapp. if we want better things there needs to be way more solidarity with app devs, not shitting on how they did what was possible vs the alternative, just releasing to the web and being even more bloated and pulling down the huge js blob every visit. because people would write good software if the pressures weren't there, in general, and yet.

i remember feeling blessed in college that the only course i took that required some kind of obscure software (a logic class) at least had it written in java, so i was able to miraculously open the jar on linux and actually use it. these days it'd probably just be a website and Just Work across most platforms with relative ease...

it just feels like we have a lot of people spending a lot of energy yelling at the wrong people about the problems we have lol. definitely agree with "solidarity with app devs".

also like... i don't like electron but a lot of the memory hog stuff about it is like, 300mb isn't much these days, but that's also prefetch/preallocation and outside of the chrome bug that was (i think? i hope.) fixed a few years ago, it gives up chunks of it as free ram gets low, because that's how that just like, works as an OS concept, at least in windows and parts of Linux

and this is really noticable when the same apps use 170mb on my 4gb linux Chromebook.

so, idk. it feels like when people railed against cross platform java applets because they looked bad in the default gui library and ran slowly, but those are business problems, not dev ones, and not inherent to even 2003 java.

I think another part of this is like, I have multiple machines across multiple OSes and settings are just, there. And that's possible with every other UI/app thing, but no one actually bothers in the same way electron performance is left on the table.

and many of them don't even let you transfer configs.

oh yeah. you're gonna have 2-3 separate teams and how are you gonna convince them to even use the same config format. windows will probably use XML i guess, but not necessarily the same .plist XML that a mac would use...

idk it's like the whole concept of an operating system as a suite of 3rd party apps isn't so strong any more. what are they gonna do, have HIG cops that block your app if it doesn't follow proper UI & UX? i mean i guess apple would on iOS, but...

while i dont care what UI system is being used except for when im being a nerd, i do always care that it runs at a speed where i can use it, which electron apps / web apps increasingly dont. not because they can't mind you, but because people working on them don't try them out on slower systems like mine. with electron and web apps, you don't stumble into performance, you have to work hard for it. you have to fight for it. I know because I've done that. with native UI toolkits you're much more likely to be in the "useably performant" range on accident. (though, there's certainly exceptions)

the root cause here isn't electron of course. it's an easy scapegoat. but the larger trend is that people by and large do not intentionally write efficient software unless they're forced to use slow computers or they're just a meganerd about efficiency. it's incredibly hard to do unless you have the feedback loop of it being slow enough to perceive at the personal level.

there's some web apps that get it right. i love those. shoutout to pinafore.social for outperforming many native mastodon clients for example